Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

2.3 Οι συναρτήσεις στην Python

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

Παράδειγμα 1: Μια απλή συνάρτηση που εκτυπώνει “Γεια σου, κόσμε!”

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
def greet():
print("Γεια σου, κόσμε!")
greet()
def greet(): print("Γεια σου, κόσμε!") greet()
def greet():
    print("Γεια σου, κόσμε!")

greet()

Παράδειγμα 2: Συνάρτηση με παραμέτρους

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
def say_hello(name):
print("Γεια σου, " + name)
say_hello("Γιάννης")
def say_hello(name): print("Γεια σου, " + name) say_hello("Γιάννης")
def say_hello(name):
    print("Γεια σου, " + name)

say_hello("Γιάννης")

Παράδειγμα 3: Συνάρτηση που επιστρέφει αποτέλεσμα

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
def add_numbers(a, b):
return a + b
result = add_numbers(5, 3)
print(result)
def add_numbers(a, b): return a + b result = add_numbers(5, 3) print(result)
def add_numbers(a, b):
    return a + b

result = add_numbers(5, 3)
print(result)

Στο πρώτο παράδειγμα, η συνάρτηση greet εκτυπώνει “Γεια σου, κόσμε!” όταν καλείται. Στο δεύτερο παράδειγμα, η συνάρτηση say_hello δέχεται μια παράμετρο name και εκτυπώνει ένα χαιρετισμό που περιλαμβάνει το όνομα. Στο τρίτο παράδειγμα, η συνάρτηση add_numbers δέχεται δύο παραμέτρους, a και b, και επιστρέφει το άθροισμα των δύο αριθμών.

Στην Python μία συνάρτηση ορίζεται χρησιμοποιώντας τη λέξη-κλειδί def. Παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
def greet(name):
print("Hello, " + name)
greet("John")
def greet(name): print("Hello, " + name) greet("John")
def greet(name):
    print("Hello, " + name)

greet("John")

Στο παραπάνω παράδειγμα, ορίζουμε μια συνάρτηση greet με ένα παράμετρο name, η οποία εκτυπώνει το μήνυμα “Hello, ” και το name που δόθηκε ως όρισμα στη συνάρτηση. Στη συνέχεια, καλούμε τη συνάρτηση greet δίνοντας την τιμή “John” στο παράμετρο name.

[adinserter block=”2″]

Ορίζουμε μια συνάρτηση με το όνομα “greet” που θα χαιρετά το όνομα που θα δοθεί ως παράμετρος και θα επιστρέφει ένα μήνυμα καλωσορίσματος:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
def greet(name):
print("Hello, " + name + "! Welcome to Python programming.")
greet("John")
def greet(name): print("Hello, " + name + "! Welcome to Python programming.") greet("John")
def greet(name):
    print("Hello, " + name + "! Welcome to Python programming.")

greet("John")

Αυτό θα εκτυπώσει το ακόλουθο μήνυμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Hello, John! Welcome to Python programming.
Hello, John! Welcome to Python programming.
Hello, John! Welcome to Python programming.

Οι πληροφορίες μπορούν να περαστούν στις συναρτήσεις ως ορίσματα.

Τα ορίσματα καθορίζονται μετά το όνομα της συνάρτησης, μέσα στις παρενθέσεις. Μπορείτε να προσθέσετε όσα ορίσματα θέλετε, απλώς χωρίζοντάς τα με κόμμα.

Το παρακάτω παράδειγμα έχει μια συνάρτηση με ένα όρισμα (fname). Όταν καλείται η συνάρτηση, περνάμε ένα όνομα, το οποίο χρησιμοποιείται μέσα στη συνάρτηση για να εκτυπωθεί το πλήρες όνομα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
def my_function(fname):
print(fname + " Refsnes")
my_function("Emil")
my_function("Tobias")
my_function("Linus")
def my_function(fname): print(fname + " Refsnes") my_function("Emil") my_function("Tobias") my_function("Linus")
def my_function(fname):
  print(fname + " Refsnes")

my_function("Emil")
my_function("Tobias")
my_function("Linus")

Αυτό θα έχει ως έξοδο:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Emil Refsnes
Tobias Refsnes
Linus Refsnes
Emil Refsnes Tobias Refsnes Linus Refsnes
Emil Refsnes
Tobias Refsnes
Linus Refsnes

Οι όροι παράμετρος και προσαρτημένη μεταβλητή (ή απλά όρισμα) μπορούν να χρησιμοποιηθούν για να περιγράψουν το ίδιο πράγμα: πληροφορίες που περνάνε σε μια συνάρτηση. Ο όρος “παράμετρος” αναφέρεται στο όρισμα κατά τον ορισμό της συνάρτησης, ενώ ο όρος “προσαρτημένη μεταβλητή” ή απλά “όρισμα” αναφέρεται στο όρισμα κατά την κλήση της συνάρτησης.

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

Στο παρακάτω παράδειγμα έχουμε μια συνάρτηση που παίρνει δύο ορίσματα και επιστρέφει το αθροισμά τους:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
def add_numbers(x, y):
result = x + y
return result
def add_numbers(x, y): result = x + y return result
def add_numbers(x, y):
    result = x + y
    return result

Αν προσπαθήσουμε να καλέσουμε αυτήν τη συνάρτηση με διαφορετικό αριθμό ορισμάτων, θα λάβουμε ένα σφάλμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
add_numbers(2, 3) # Εκτέλεση επιτυχής
add_numbers(2) # Σφάλμα: αναμένει 2 ορίσματα
add_numbers(2, 3, 4) # Σφάλμα: αναμένει 2 ορίσματα
add_numbers(2, 3) # Εκτέλεση επιτυχής add_numbers(2) # Σφάλμα: αναμένει 2 ορίσματα add_numbers(2, 3, 4) # Σφάλμα: αναμένει 2 ορίσματα
add_numbers(2, 3)      # Εκτέλεση επιτυχής
add_numbers(2)         # Σφάλμα: αναμένει 2 ορίσματα
add_numbers(2, 3, 4)   # Σφάλμα: αναμένει 2 ορίσματα

Στο πρώτο παράδειγμα καλούμε τη συνάρτηση με δύο ορίσματα και επιστρέφεται ο σωστός αριθμός.

Στο δεύτερο παράδειγμα, καλούμε τη συνάρτηση με ένα μόνο όρισμα, αντί για τα δύο που αναμένει η συνάρτηση. Έτσι θα λάβουμε ένα σφάλμα που μας ενημερώνει ότι η συνάρτηση περιμένει ως είσοδο άλλο αριθμό ορισμά

Στα Python, μπορούμε να ορίσουμε μια συνάρτηση που να δέχεται μια μεταβλητή αριθμού ορίων ορισμένη ως *args, η οποία επιτρέπει την πέραση μιας αυθαίρετου αριθμού ορισμάτων.

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

[adinserter block=”3″]

Παρακάτω είναι ένα παράδειγμα μιας συνάρτησης με το *args:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
def my_function(*args):
for arg in args:
print(arg)
my_function("apple", "banana", "cherry")
def my_function(*args): for arg in args: print(arg) my_function("apple", "banana", "cherry")
def my_function(*args):
  for arg in args:
    print(arg)

my_function("apple", "banana", "cherry")

Αυτός ο κώδικας θα εκτυπώσει:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
apple
banana
cherry
apple banana cherry
apple
banana
cherry

Μπορείτε επίσης να στείλετε ορίσματα με τη σύνταξη key = value.

Με αυτόν τον τρόπο, η σειρά των ορισμάτων δεν έχει σημασία.

Παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
def my_function(child3, child2, child1):
print("The youngest child is " + child3)
my_function(child1 = "Emil", child2 = "Tobias", child3 = "Linus")
def my_function(child3, child2, child1): print("The youngest child is " + child3) my_function(child1 = "Emil", child2 = "Tobias", child3 = "Linus")
def my_function(child3, child2, child1):
  print("The youngest child is " + child3)

my_function(child1 = "Emil", child2 = "Tobias", child3 = "Linus")

Αναμένομαι η έξοδος να είναι:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
The youngest child is Linus
The youngest child is Linus
The youngest child is Linus

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

Παράδειγμα:

Παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
def my_function(**kwargs):
for key, value in kwargs.items():
print(key, value)
my_function(first='John', last='Doe', age=35)
def my_function(**kwargs): for key, value in kwargs.items(): print(key, value) my_function(first='John', last='Doe', age=35)
def my_function(**kwargs):
  for key, value in kwargs.items():
    print(key, value)

my_function(first='John', last='Doe', age=35)

Αναμένομαι να εκτυπώσει:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
first John
last Doe
age 35
first John last Doe age 35
first John
last Doe
age 35

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

Το παρακάτω παράδειγμα δείχνει πώς να χρησιμοποιήσετε μια προκαθορισμένη τιμή παραμέτρου σε μια συνάρτηση:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
def my_function(country = "Norway"):
print("I am from " + country)
my_function("Sweden")
my_function("India")
my_function()
my_function("Brazil")
def my_function(country = "Norway"): print("I am from " + country) my_function("Sweden") my_function("India") my_function() my_function("Brazil")
def my_function(country = "Norway"):
  print("I am from " + country)

my_function("Sweden")
my_function("India")
my_function()
my_function("Brazil")

Αυτό θα παράγει την ακόλουθη έξοδο:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
I am from Sweden
I am from India
I am from Norway
I am from Brazil
I am from Sweden I am from India I am from Norway I am from Brazil
I am from Sweden
I am from India
I am from Norway
I am from Brazil

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

[adinserter block=”4″]

Π.χ. αν στείλετε μια λίστα ως όρισμα, θα παραμείνει λίστα όταν φτάσει στη συνάρτηση:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
def my_function(food):
for x in food:
print(x)
fruits = ["apple", "banana", "cherry"]
my_function(fruits)
def my_function(food): for x in food: print(x) fruits = ["apple", "banana", "cherry"] my_function(fruits)
def my_function(food):
  for x in food:
    print(x)

fruits = ["apple", "banana", "cherry"]

my_function(fruits)

Αυτό θα εκτυπώσει:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
apple
banana
cherry
apple banana cherry
apple
banana
cherry

Ορίζοντας τη λέξη κλειδί return μέσα στη συνάρτηση, μπορούμε να επιστρέψουμε μια τιμή ως αποτέλεσμα της συνάρτησης.

Ένα απλό παράδειγμα είναι η συνάρτηση square() που υπολογίζει το τετράγωνο ενός αριθμού και επιστρέφει το αποτέλεσμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
def square(x):
return x * x
result = square(5)
print(result) # Output: 25
def square(x): return x * x result = square(5) print(result) # Output: 25
def square(x):
  return x * x

result = square(5)
print(result) # Output: 25

Στο παραπάνω παράδειγμα, καλούμε τη συνάρτηση square() με την τιμή 5 και η συνάρτηση επιστρέφει το αποτέλεσμα 25, το οποίο αποθηκεύουμε στη μεταβλητή result. Στη συνέχεια, εκτυπώνουμε την τιμή της result, η οποία είναι το αποτέλεσμα του τετραγώνου του αριθμού 5.

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

Παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
def my_function():
pass
def my_function(): pass
def my_function():
  pass

Αναδρομή
Η Python επίσης δέχεται αναδρομικές συναρτήσεις, που σημαίνει ότι μια ορισμένη συνάρτηση μπορεί να καλέσει τον εαυτό της.

Η αναδρομή είναι μια κοινή μαθηματική και προγραμματιστική έννοια. Σημαίνει ότι μια συνάρτηση καλεί τον εαυτό της. Αυτό έχει το πλεονέκτημα ότι μπορείτε να διατρέξετε δεδομένα για να φτάσετε σε ένα αποτέλεσμα.

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

Σε αυτό το παράδειγμα, η tri_recursion() είναι μια συνάρτηση που έχουμε ορίσει για να καλέσει τον εαυτό της (“αναδρομή”). Χρησιμοποιούμε τη μεταβλητή k ως τα δεδομένα, που μειώνονται κατά 1 (-1) κάθε φορά που κάνουμε αναδρομή. Η αναδρομή τερματίζεται όταν η συνθήκη δεν είναι μεγαλύτερη από 0 (δηλαδή όταν είναι 0).

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

Παράδειγμα αναδρομικής συνάρτησης:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
def tri_recursion(k):
if k > 0:
result = k + tri_recursion(k - 1)
print(result)
else:
result = 0
return result
print("Το αποτέλεσμα της αναδρομής είναι:")
tri_recursion(6)
def tri_recursion(k): if k > 0: result = k + tri_recursion(k - 1) print(result) else: result = 0 return result print("Το αποτέλεσμα της αναδρομής είναι:") tri_recursion(6)
def tri_recursion(k):
    if k > 0:
        result = k + tri_recursion(k - 1)
        print(result)
    else:
        result = 0
    return result

print("Το αποτέλεσμα της αναδρομής είναι:")
tri_recursion(6)

Στο παραπάνω παράδειγμα, η αναδρομική συνάρτηση tri_recursion καλεί τον εαυτό της με μια μειωμένη τιμή της παραμέτρου k κάθε φορά, μέχρι το k να γίνει 0. Το αποτέλεσμα είναι το άθροισμα των τιμών του k από την αρχική τιμή έως το 1.

Δωρεα μεσω Paypal

Για την κάλυψη αναγκών φιλοξενίας και δημιουργίας περιεχομένου.

κατηγοριες μαθηματων

Ιστορικο ενοτητων

top
error: Content is protected !!
Μετάβαση σε γραμμή εργαλείων