Πώς να καλέσετε μια συνάρτηση Python (Παράδειγμα)

⚡ Έξυπνη Σύνοψη

Λειτουργίες σε Python είναι επαναχρησιμοποιήσιμα μπλοκ κώδικα που εκτελούνται όταν καλούνται, ορίζονται με την πρόταση def. Δέχονται ορίσματα, επιστρέφουν τιμές και βασίζονται σε συνεπή εσοχή για να ομαδοποιήσουν τις προτάσεις που ανήκουν σε κάθε συνάρτηση.

  • 🧩 δήλωση def: Μια συνάρτηση ορίζεται με def, ένα όνομα και παρενθέσεις, ακολουθούμενα από άνω και κάτω τελεία που ανοίγει το μπλοκ με εσοχή των δηλώσεων.
  • 📞 Κλήση συναρτήσεων: Γράφοντας το όνομα της συνάρτησης ακολουθούμενο από παρενθέσεις, εκτελείται ο κώδικά της, επομένως η ίδια λογική μπορεί να επαναχρησιμοποιηθεί πολλές φορές.
  • Εσοχή: Python ομαδοποιεί ένα σώμα συνάρτησης με συνεπή εσοχή αντί για αγκύλες, επομένως ένα κενό που λείπει δημιουργεί ένα IndentationError.
  • 🎯 επιχειρήματα: Οι τιμές που περνούν μέσα στις παρενθέσεις γίνονται παράμετροι και οι προεπιλογές ή τα ορίσματα λέξεων-κλειδιών καθιστούν κάθε κλήση ευέλικτη.
  • ↩️ Επιστρεφόμενες τιμές: Η εντολή return μεταβιβάζει ένα αποτέλεσμα πίσω στον καλούντα· χωρίς αυτήν, μια συνάρτηση επιστρέφει None.
  • 🤖 Βοήθεια AI: Οι βοηθοί τεχνητής νοημοσύνης, όπως το GitHub Copilot, δημιουργούν σκελετούς συναρτήσεων, ορίσματα και συμβολοσειρές εγγράφων από μια σύντομη προτροπή.

Πώς να καλέσετε μια συνάρτηση Python

Σε τι είναι η Λειτουργία Python?

A Λειτουργία σε Python είναι ένα κομμάτι κώδικα που εκτελείται όταν γίνεται αναφορά σε αυτό. Χρησιμοποιείται για τη χρήση του κώδικα σε περισσότερα από ένα σημεία ενός προγράμματος. Ονομάζεται επίσης μέθοδος ή διαδικασία. Python Παρέχει πολλές ενσωματωμένες συναρτήσεις όπως print(), input(), compile() και exec(), αλλά σας δίνει επίσης την ελευθερία να δημιουργήσετε τις δικές σας συναρτήσεις.

Πώς να ορίσετε και να καλέσετε μια συνάρτηση Python

Μια συνάρτηση σε Python ορίζεται από την εντολή “def” ακολουθούμενη από το όνομα της συνάρτησης και παρενθέσεις (()).

Παράδειγμα:

Ας ορίσουμε μια συνάρτηση χρησιμοποιώντας την εντολή “def func1():” και ας καλέσουμε τη συνάρτηση. Η έξοδος της συνάρτησης θα είναι “Μαθαίνω Python λειτουργία".

Καθορισμός και κλήση μιας συνάρτησης Python

Η κλήση της συνάρτησης func1() καλεί την def func1(): και τυπώνει την εντολή "Μαθαίνω Python λειτουργία Καμία.

Υπάρχει ένα σύνολο κανόνων στο Python προγραμματισμού για να ορίσετε μια συνάρτηση.

  • Οποιαδήποτε ορίσματα ή παράμετροι εισόδου θα πρέπει να τοποθετούνται εντός αυτών των παρενθέσεων.
  • Η πρώτη πρόταση της συνάρτησης μπορεί να είναι μια προαιρετική πρόταση — η συμβολοσειρά docstring ή η συμβολοσειρά τεκμηρίωσης της συνάρτησης.
  • Ο κώδικας σε κάθε συνάρτηση ξεκινά με άνω και κάτω τελεία (:) και θα πρέπει να έχει εσοχή (κενό).
  • Η εντολή return (έκφραση) τερματίζει μια συνάρτηση, προαιρετικά επιστρέφοντας μια τιμή στον καλούντα. Μια εντολή return χωρίς ορίσματα είναι η ίδια με την εντολή return None.

Σημασία της εσοχής (Διάστημα) σε Python

Πριν εξοικειωθούμε με Python λειτουργίες, είναι σημαντικό να κατανοήσουμε τον κανόνα της εσοχής που πρέπει να δηλώσουμε Python λειτουργίες, και αυτοί οι κανόνες ισχύουν και για άλλα στοιχεία του Python καθώς και, όπως η δήλωση συνθηκών, βρόχων ή μεταβλητών.

Python ακολουθεί ένα συγκεκριμένο στυλ εσοχής για να ορίσει τον κώδικα. Δεδομένου ότι Python Οι συναρτήσεις δεν έχουν σαφή αρχή ή τέλος, όπως οι αγκύλες, για να υποδεικνύουν την έναρξη και το τέλος της συνάρτησης, επομένως πρέπει να βασίζονται σε αυτήν την εσοχή. Εδώ θα πάρουμε ένα απλό παράδειγμα με την εντολή "print". Όταν γράφουμε τη συνάρτηση "print" ακριβώς κάτω από τη γραμμή def func1():, θα εμφανιστεί ένα "σφάλμα εσοχής: αναμενόταν ένα μπλοκ με εσοχή".

Καθορισμός και κλήση μιας συνάρτησης Python

Τώρα, όταν προσθέτετε την εσοχή (κενό) μπροστά από τη συνάρτηση "εκτύπωση", θα πρέπει να εκτυπώνεται όπως αναμένεται.

Καθορισμός και κλήση μιας συνάρτησης Python

Τουλάχιστον μία εσοχή είναι αρκετή για να λειτουργήσει ο κώδικά σας με επιτυχία. Ωστόσο, ως βέλτιστη πρακτική, συνιστάται να αφήνετε περίπου 3-4 κενά εσοχής για να καλέσετε τη συνάρτησή σας.

Είναι επίσης απαραίτητο, κατά τη δήλωση εσοχής, να διατηρείτε την ίδια εσοχή για τον υπόλοιπο κώδικά σας. Για παράδειγμα, στο παρακάτω στιγμιότυπο οθόνης, όταν καλούμε μια άλλη πρόταση "still in func1" και δεν δηλώνεται ακριβώς κάτω από την πρώτη πρόταση εκτύπωσης, θα εμφανιστεί ένα σφάλμα εσοχής: "unindent does not match any other indentation level".

Καθορισμός και κλήση μιας συνάρτησης Python

Τώρα, όταν εφαρμόζουμε την ίδια εσοχή και για τις δύο εντολές και τις ευθυγραμμίζουμε στην ίδια γραμμή, δίνεται το αναμενόμενο αποτέλεσμα.

Καθορισμός και κλήση μιας συνάρτησης Python

Πώς επιστρέφει η συνάρτηση;

Η εντολή return στο Python καθορίζει ποια τιμή θα επιστρέψει στον καλούντα της συνάρτησης. Ας το κατανοήσουμε αυτό με το ακόλουθο παράδειγμα.

Βήμα 1) Η συνάρτηση δεν επιστρέφει τίποτα

Εδώ βλέπουμε πότε μια συνάρτηση δεν «επιστρέφει». Για παράδειγμα, θέλουμε το τετράγωνο του 4 και θα πρέπει να δίνει την απάντηση «16» όταν εκτελείται ο κώδικας. Το δίνει αυτό όταν χρησιμοποιούμε απλώς τον κώδικα «print x*x», αλλά όταν καλείτε τη συνάρτηση «print square» δίνει «None» ως έξοδο. Αυτό συμβαίνει επειδή όταν καλείτε τη συνάρτηση, η αναδρομή δεν συμβαίνει και πέφτει στο τέλος της συνάρτησης. Python επιστρέφει «Καμία» αν δεν βρίσκεται στο τέλος της συνάρτησης.

Καθορισμός και κλήση μιας συνάρτησης Python

Βήμα 2) Αντικαταστήστε την εντολή εκτύπωσης με μια εντολή ανάθεσης

Για να το κάνουμε αυτό πιο σαφές, αντικαθιστούμε την εντολή εκτύπωσης με μια εντολή ανάθεσης. Ας ελέγξουμε την έξοδο.

Καθορισμός και κλήση μιας συνάρτησης Python

Όταν εκτελείτε την εντολή "print square (4)", στην πραγματικότητα επιστρέφει την τιμή του αντικειμένου. Δεδομένου ότι δεν έχουμε κάποια συγκεκριμένη συνάρτηση για να εκτελέσουμε εδώ, επιστρέφει "None".

Βήμα 3) Χρησιμοποιήστε τη συνάρτηση 'return' και εκτελέστε τον κώδικα

Τώρα, εδώ θα δούμε πώς να ανακτήσουμε την έξοδο χρησιμοποιώντας την εντολή "return". Όταν χρησιμοποιείτε τη συνάρτηση "return" και εκτελείτε τον κώδικα, θα δώσει την έξοδο "16".

Καθορισμός και κλήση μιας συνάρτησης Python

Βήμα 4) Εκτελέστε την εντολή "print Square"

Λειτουργίες σε Python είναι οι ίδιοι ένα αντικείμενο και ένα αντικείμενο έχει κάποια αξία. Εδώ θα δούμε πώς Python αντιμετωπίζει ένα αντικείμενο. Όταν εκτελείτε την εντολή "print square", επιστρέφει την τιμή του αντικειμένου. Δεδομένου ότι δεν έχουμε περάσει κανένα όρισμα, δεν έχουμε κάποια συγκεκριμένη συνάρτηση για να εκτελέσουμε εδώ, επομένως επιστρέφει μια προεπιλεγμένη τιμή (0x021B2D30) η οποία είναι η τοποθεσία του αντικειμένου. Σε μια πρακτική Python πρόγραμμα, πιθανότατα δεν θα χρειαστεί ποτέ να το κάνετε αυτό.

Καθορισμός και κλήση μιας συνάρτησης Python

Επιχειρήματα στις συναρτήσεις

Ένα όρισμα είναι μια τιμή που μεταβιβάζεται στη συνάρτηση όταν καλείται.

Με άλλα λόγια, από την πλευρά της κλήσης είναι ένα όρισμα και από την πλευρά της συνάρτησης είναι μια παράμετρος.

Ας δούμε πώς Python τα επιχειρήματα λειτουργούν.

Βήμα 1) Τα ορίσματα δηλώνονται στον ορισμό της συνάρτησης. Κατά την κλήση της συνάρτησης, μπορείτε να περάσετε τις τιμές για αυτά τα ορίσματα όπως φαίνεται παρακάτω.

Καθορισμός και κλήση μιας συνάρτησης Python

Βήμα 2) Για να δηλώσετε μια προεπιλεγμένη τιμή για ένα όρισμα, αντιστοιχίστε του μια τιμή στον ορισμό της συνάρτησης.

Καθορισμός και κλήση μιας συνάρτησης Python

Παράδειγμα: Το x δεν έχει προεπιλεγμένη τιμή. Η προεπιλεγμένη τιμή είναι y=0. Όταν παρέχουμε μόνο ένα όρισμα κατά την κλήση της συνάρτησης πολλαπλασιασμού, Python αντιστοιχίζει την παρεχόμενη τιμή στο x ενώ διατηρείping η τιμή του y=0. Επομένως, ο πολλαπλασιασμός του x*y=0.

Καθορισμός και κλήση μιας συνάρτησης Python

Βήμα 3) Αυτή τη φορά θα αλλάξουμε την τιμή σε y=2 αντί για την προεπιλεγμένη τιμή y=0, και θα επιστρέψει την έξοδο ως (4×2)=8.

Καθορισμός και κλήση μιας συνάρτησης Python

Βήμα 4) Μπορείτε επίσης να αλλάξετε τη σειρά με την οποία περνούν τα ορίσματα στο PythonΕδώ έχουμε αντιστρέψει τη σειρά των τιμών x και y σε x=4 και y=2.

Καθορισμός και κλήση μιας συνάρτησης Python

Βήμα 5) Πολλαπλά ορίσματα μπορούν επίσης να περαστούν ως πίνακας. Εδώ στο παράδειγμα καλούμε τα πολλαπλά ορίσματα (1,2,3,4,5) καλώντας τη συνάρτηση (*args).

Παράδειγμα: Δηλώσαμε πολλαπλά ορίσματα ως αριθμούς (1,2,3,4,5). Όταν καλούμε τη συνάρτηση (*args), αυτή εκτυπώνει την έξοδο ως (1,2,3,4,5).

Καθορισμός και κλήση μιας συνάρτησης Python

Συμβουλές:

  • In Python 2.7, η υπερφόρτωση συναρτήσεων δεν υποστηρίζεται. Η υπερφόρτωση συναρτήσεων είναι η δυνατότητα δημιουργίας πολλαπλών μεθόδων με το ίδιο όνομα με διαφορετική υλοποίηση. Η υπερφόρτωση συναρτήσεων υποστηρίζεται πλήρως στο Python 3.
  • Υπάρχει αρκετή σύγχυση μεταξύ μεθόδων και συναρτήσεων. Μέθοδοι σε Python σχετίζονται με στιγμιότυπα αντικειμένων, ενώ οι συναρτήσεις όχι. Όταν Python καλεί μια μέθοδο, δεσμεύει την πρώτη παράμετρο αυτής της κλήσης στην κατάλληλη αναφορά αντικειμένου. Με απλά λόγια, μια αυτόνομη λειτουργία μέσα Python είναι μια "συνάρτηση", ενώ μια συνάρτηση που είναι ένα χαρακτηριστικό μιας κλάσης ή ενός στιγμιότυπου είναι μια "μέθοδος".

Εδώ είναι το πλήρες Python Κωδικός 3

#define a function
def func1():
   print ("I am learning Python function")
   print ("still in func1")
   
func1()

def square(x):
  	return x*x
print(square(4))

def multiply(x,y=0):
	print("value of x=",x)
	print("value of y=",y)
    
	return x*y
  
print(multiply(y=2,x=4))

Εδώ είναι το πλήρες Python Κωδικός 2

#define a function
def func1():
   print " I am learning Python function"
   print " still in func1"
   
func1()

def square(x):
  	return x*x
print square(4)

def multiply(x,y=0):
	print"value of x=",x
	print"value of y=",y
    
	return x*y
  
print multiply(y=2,x=4)

Συχνές Ερωτήσεις

Ναί. ΕΝΑ Python Η συνάρτηση μπορεί να επιστρέψει πολλαπλές τιμές διαχωρίζοντάς τες με κόμματα μετά τη λέξη-κλειδί επιστροφής. Python τα συσκευάζει σε μια πλειάδα, την οποία ο καλών μπορεί να αποσυσκευάσει σε ξεχωριστές μεταβλητές, για παράδειγμα a, b = func().

Η συνάρτηση *args συλλέγει επιπλέον ορίσματα θέσης σε μια πλειάδα, ενώ η συνάρτηση **kwargs συλλέγει επιπλέον ορίσματα λέξεων-κλειδιών σε ένα λεξικό. Και οι δύο επιτρέπουν σε μια συνάρτηση να δέχεται έναν μεταβλητό αριθμό εισόδων και τα ονόματα args και kwargs είναι απλώς μια σύμβαση, όχι μια απαίτηση.

Ένα docstring είναι ένα string literal που τοποθετείται ως η πρώτη εντολή μέσα σε μια συνάρτηση για να τεκμηριώσει τι κάνει. Γράφεται σε τριπλά εισαγωγικά και μπορεί να διαβαστεί κατά τον χρόνο εκτέλεσης μέσω του χαρακτηριστικού __doc__ της συνάρτησης ή της συνάρτησης help().

Ένα lambda είναι μια μικρή ανώνυμη συνάρτηση που ορίζεται σε μία γραμμή με τη λέξη-κλειδί lambda αντί για def. Ταιριάζει σε σύντομη, απλή λογική που μεταβιβάζεται σε συναρτήσεις όπως map(), filter() και sorted(). Δείτε αυτό συνάρτηση λάμδα οδηγός.

Ναι. Μια συνάρτηση που καλεί τον εαυτό της είναι μια αναδρομική συνάρτηση. Η αναδρομή λύνει προβλήματα που διασπώνται σε μικρότερα παρόμοια υποπροβλήματα, όπως παραγοντικά. Κάθε αναδρομική συνάρτηση χρειάζεται μια βασική περίπτωση που σταματά τις κλήσεις, διαφορετικά Python προκαλεί ένα RecursionError.

Μια τοπική μεταβλητή δημιουργείται μέσα σε μια συνάρτηση και υπάρχει μόνο όσο εκτελείται αυτή η συνάρτηση. Μια καθολική μεταβλητή ορίζεται εκτός όλων των συναρτήσεων και είναι ορατή παντού. Για να αλλάξετε μια καθολική μεταβλητή μέσα σε μια συνάρτηση, δηλώστε την πρώτα με τη λέξη-κλειδί καθολική.

Το GitHub Copilot προτείνει ένα πλήρες σώμα συνάρτησης από το όνομά του ή ένα σύντομο σχόλιο, συμπεριλαμβανομένων παραμέτρων, εντολών επιστροφής και συμβολοσειρών docstrings. Προτείνει επίσης χειρισμό και δοκιμές edge-case, επιτρέποντάς σας να εστιάσετε στη λογική αντί για ty.ping μπλοκ στερεότυπου ορισμού.

Οι συναρτήσεις οργανώνουν τον κώδικα τεχνητής νοημοσύνης και μηχανικής μάθησης σε επαναχρησιμοποιήσιμα βήματα, όπως η φόρτωση δεδομένων, η προεπεξεργασία, η εκπαίδευση και η αξιολόγηση. Διατηρούν τα πειράματα αναγνώσιμα και δοκιμαστικά, και πλαίσια όπως το TensorFlow και το scikit-learn εκθέτουν το μεγαλύτερο μέρος της συμπεριφοράς τους μέσω συναρτήσεων με καλά ονόματα που καλείτε.

Συνοψίστε αυτήν την ανάρτηση με: