Ενότητα 4 - Τμήμα 1 - Επανάληψη "While" και Συναρτήσεις
4.1.7 - Περισσότερα για τις συναρτήσεις
- Αμέσως μόλις επιστρέψει μία τιμή η συνάρτηση, σταματάει την εκτέλεση της. Οποιοδήποτε τμήμα κώδικα που είναι μέσα στη συνάρτηση μετά την δήλωση return δε θα εκτελεστεί ποτέ.
Αντιγράψτε τον παρακάτω κώδικα στο Thonny και αποθηκεύστε τον με όνομα add3Numbers:
def addNumbers(x, y, z):
total = x + y + z
return total
print("This won't be printed")
Στη περιοχή γραμμής εντολών γράψτε:
>>> print(addNumbers(4, 5, 19))
Όπως μπορείτε να δείτε η συνάρτηση επιστρέφει μία τιμή και η εντολή print που βρίσκεται μετά την return δεν εκτελείται.
- Στον προγραμματισμό, ένα docstring είναι ένα σύνολο χαρακτήρων που έχει συμπεριληφθεί στον πηγαίο κώδικα, και χρησιμοποιείται σαν ένα σχόλιο, για την τεκμηρίωση ενός συγκεκριμένου τμήματος κώδικα. Αντίθετα όμως με τα σχόλια που τοποθετούμε στον κώδικα, τα docstrings δεν αφαιρούνται κατά τη διάρκεια διερμήνευσης των εντολών αλλά διατηρούνται καθόλη τη διάρκεια εκτέλεσης του προγράμματος. Αυτό επιτρέπει στον προγραμματιστή να τα παρατηρεί κατά την εκτέλεση του προγράμματος, για παράδειγμα ως ένα αλληλεπιδραστικό σύστημα βοήθειας.
Η επόμενη συνάρτηση επιστρέφει το πηλίκο και το υπόλοιπο της Ευκλείδιας διαίρεσης. Αντιγράψτε το παρακάτω σύνολο εντολών στο τμήμα προγράμματος του Thonny και αποθηκεύστε το σαν euclidianDivision.
def division(x, y):
'''
This function takes two INTEGERS and returns the quotient and the remainder
Args:
x (int) : The first number
z (int) : The second number
'''
quotient = x//y
remainder = x%y
return quotient, remainder
Μεταξύ της 2ης και της 7ης γραμμής της συνάρτησης υπάρχει η τεκμηρίωση της. Όπως είπαμε η Python δεν αγνοεί την τεκμηρίωση. Μετά την εκτέλεση του προγράμματος, μπορούμε να το δοκιμάσουμε.
>>> print(division(8,3))
>>> print(division(47,4))
Το αποτέλεσμα είναι κάτι σαν λίστα (που ονομάζεται πλειάδα - tuple) και μπορούμε να εμφανίσουμε χωριστά τις τιμές της, όπως κάναμε και με τα στοιχεία μίας λίστας:
>>> print(division(47,4))[0] # Το 1ο στοιχείο είναι το πηλίκο
>>> print(division(47,4))[1] # Το 2ο στοιχείο είναι το υπόλοιπο
Επίσης μπορούμε να εμφανίσουμε την τεκμηρίωση της συνάρτησης.
>>> print(division.__doc__)
Αυτό είναι κάτι πολύ χρήσιμο όταν χρησιμοποιούμε τον κώδικα κάποιου άλλου ή όταν έχουμε ξεχάσει τι κάνει ο κώδικας που χρησιμοποιούμε!!