Python Functions Tutorial

41
ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7 Π Ειςαγωγή ςτην Python 7

description

A python functions tutorial in Greek

Transcript of Python Functions Tutorial

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

Ειςαγωγή ςτην Python 7

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

def Συναρτήςεισ Functions

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

Περιεχόμενα

• Συνάρτθςθ: Τι είναι και πϊσ δθλϊνεται

• Μορφζσ ςφνταξθσ ςυναρτιςεων

• Ρϊσ εκτελεί θ Python μια ςυνάρτθςθ

• Εμβζλεια μεταβλθτϊν

• Ορίςματα

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

Συνάρτηςη: Τι είναι και πώσ δηλώνεται

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

def Τι είναι μια ςυνάρτηςη (function)

• Η ςυνάρτθςθ ομαδοποιεί ζνα ςφνολο εντολών ϊςτε να είναι διακζςιμεσ –κάτω από ζνα κοινό όνομα αναφοράσ- να κλθκοφν οποτεδιποτε και οπουδιποτε μζςα ςτο πρόγραμμα χρειαςτεί

• Μια διαδικαςία «πακζτο» που εκκινεί με τθν αναφορά ενόσ ονόματοσ

• Οι ςυναρτιςεισ όταν καλοφνται:

• (α) επιτρζπουν τον κακοριςμό τιμϊν παραμζτρων που περνοφν ωσ «ορίςματα» από το πρόγραμμα που καλεί προσ τθ ςυνάρτθςθ,

• (β) υπολογίηουν μία ι περιςςότερεσ τιμζσ που επιςτρζφουν ςτο πρόγραμμα που τισ καλεί

• Ρλεονεκτιματα χριςθσ Συναρτιςεων:

• Επαναχρθςιμοποίθςθ κϊδικα: ελαχιςτοποίθςθ πλεοναςμοφ ςτον κϊδικα

• Σμθματοποίθςθ: διαχωριςμόσ κϊδικα ςε ςαφι τμιματα με καλά προςδιοριςμζνεσ λειτουργίεσ

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

def Δήλωςη ςυνάρτηςησ

• def: δεςμευμζνθ λζξθ για τθ διλωςθ ςυνάρτθςθσ (από το define – ορίηω)

• name: το όνομα τθσ ςυνάρτθςθσ, ζνασ αναγνωριςτισ (identifier)

• (arg1, arg2, … argN): θ λίςτα παραμζτρων (parameters) (ι οριςμάτων (arguments)) τθσ ςυνάρτθςθσ (προαιρετικό)

• statements: το block εντολϊν που εκτελεί θ ςυνάρτθςθ όταν καλείται

• return: δεςμευμζνθ λζξθ, δθλϊνει το τζλοσ τθσ ςυνάρτθςθσ και τθν επιςτροφι τθσ τιμισ value (προαιρετικό)

• value: τιμι (μεταβλθτι ι ζκφραςθ) που υπολογίςτθκε και επιςτρζφεται ςτον κϊδικα κλιςθσ (προαιρετικό)

ΜΗΝ ΞΕΧΝΑΤΕ

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

def Παραδείγματα - 1

• Μπορείτε να δθλϊςετε μια απλι ςυνάρτθςθ και ςτο κζλυφοσ • Μετά τθ return x*y πατιςτε 2

φορζσ Enter

• Γράψτε το ίδιο παράδειγμα ςτον ςυντάκτθ και τρζξτε το πρόγραμμα

• Ιςοδφναμα μπορείτε να γράψετε και: print(ginomeno(2,4))

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

def Παραδείγματα - 2 • Παράμετροι (parameter): Τα

ονόματα των μεταβλθτϊν που γράφουμε ςτθν παρζνκεςθ ςτον οριςμό τθσ ςυνάρτθςθσ

• Ορίςματα (arguments): Οι τιμζσ που περνάμε ςτθ ςυνάρτθςθ κατά τθν κλιςθ τθσ (γράφονται επίςθσ μζςα ςτθν παρζνκεςθ)

• Κατά τθν κλιςθ μιασ ςυνάρτθςθσ τα ορίςματα (τιμζσ) που περνάτε μζςα ςτθν παρζνκεςθ αντιςτοιχοφν ζνα προσ ζνα ςτισ παραμζτρουσ που δθλϊςατε ςτον οριςμό τθσ ςυνάρτθςθσ (εκτόσ κι αν ορίςουμε διαφορετικά)

• Στο παραπάνω παράδειγμα:

• 2 x

• 4 y

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

def Παραδείγματα - 3

• Πταν καλείται θ ςυνάρτθςθ οι τιμζσ των a, b ςτο κφριο πρόγραμμα «περνοφν» ςτισ παραμζτρουσ x & y

• Δθλ. οι x, y αναφζρονται («δείχνουν») ςτισ τιμζσ 3 & 5

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

def Παραδείγματα - 4

• Μετά τθν εκτζλεςθ τθσ ςυνάρτθςθσ:

• (α) απελευκερϊνεται θ μνιμθ που είχε δεςμευτεί για τθν εκτζλεςθ τθσ ςυνάρτθςθσ

• (β) θ ςυνάρτθςθ ζχει επιςτρζψει τθν τιμι που υπολόγιςε (μεταβλθτι c)

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

def Παραδείγματα - 5

• Τι κα τυπϊςει θ print; Γιατί;

• Τι ςυμπεράςματα βγάηετε για τον τρόπο λειτουργίασ των ςυναρτιςεων;

• Πολυμορφιςμόσ: το νόθμα μιασ λειτουργίασ (πράξθσ, τελεςτι, κλπ.) εξαρτάται από τον τφπο των αντικειμζνων ςτα οποία εφαρμόηεται

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

Μορφέσ ςύνταξησ Συναρτήςεων

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

def Μορφέσ ςυναρτήςεων - 1

1. ΧΩΡΙ ΠΑΡΑΜΕΣΡΟΤ / ΧΩΡΙ RETURN

• Η ςυνάρτθςθ μπορεί να μθν ζχει παραμζτρουσ

• Επίςθσ μπορεί να μθν υπάρχει θ τελευταία διλωςθ return

• Πταν καλείται εκτελείται απλά θ print()

• Ραρόλο που δεν υπάρχει return κεωρείται (ςιωπθρά) πωσ υπάρχει και επιςτρζφει τθν τιμι None

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

def Μορφέσ ςυναρτήςεων - 2

2. ΧΩΡΙ ΠΑΡΑΜΕΣΡΟΤ / ΜΕ RETURN

• Η ςυνάρτθςθ μπορεί να μθν ζχει παραμζτρουσ αλλά επιςτρζφει μία τιμι (ι περιςςότερεσ) μζςω τθσ return

• Ραραδείγματα κλιςθσ:

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

def Μορφέσ ςυναρτήςεων - 3

3. ΜΕ ΠΑΡΑΜΕΣΡΟΤ / ΧΩΡΙ RETURN

• Η ςυνάρτθςθ ζχει παραμζτρουσ ειςόδου αλλά δεν ζχει return

• Η ςυνάρτθςθ ολοκλθρϊνει μια ενζργεια χωρίσ να επιςτρζφει κάτι ςτον κϊδικα που τθν καλεί

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

def Μορφέσ ςυναρτήςεων - 4

4. ΜΕ ΠΑΡΑΜΕΣΡΟΤ / ΜΕ RETURN

• Η ςυνάρτθςθ ζχει παραμζτρουσ ειςόδου και επιςτρζφει τιμζσ μζςω τθσ return

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

def Μορφέσ ςυναρτήςεων - 5

5. ΜΕ ΠΑΡΑΜΕΣΡΟΤ ΠΡΟΚΑΘΟΡΙΜΕΝΗ ΣΙΜΗ

• Η ςυνάρτθςθ ζχει παραμζτρουσ ειςόδου ςτισ οποίεσ δίνονται προκακοριςμζνεσ τιμζσ

• Κατά τθν κλιςθ μπορεί να μθν δοκεί όριςμα ςτθν παράμετρο προκακοριςμζνθσ τιμισ

• Αν όμωσ δοκεί τότε υπεριςχφει (override) τθσ προκακοριςμζνθσ τιμισ

• Τί κα εμφανίςουν οι print ςε κάκε περίπτωςθ;

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

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

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

Πώσ εκτελεί η Python μια ςυνάρτηςη; - 1

• Η διλωςθ def είναι μια πραγματικι εκτελζςιμθ εντολι – όταν εκτελείται δθμιουργεί ζνα νζο αντικείμενο τθσ ςυνάρτθςθσ και το ςυνδζει με ζνα όνομα (όπωσ ιςχφει και για τα ονόματα μεταβλθτϊν)

• Άρα ςε μεγάλο βακμό θ διλωςθ def μοιάηει με τθν εντολι ανάκεςθσ (assignment, =) απλά ανακζτει/ςυνδζει ζνα όνομα με το αντικείμενο ςυνάρτθςθσ κατά τθν εκτζλεςθ

• Ο παραπάνω τρόποσ εκτζλεςθσ ζχει 2 ςθμαντικζσ ςυνζπειεσ:

Function object

func() fname

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

Πώσ εκτελεί η Python μια ςυνάρτηςη; - 2 • (1) Η διλωςθ τθσ ςυνάρτθςθσ μπορεί να εμφανίηεται οπουδιποτε

μπορεί να εμφανιςτεί και μια διλωςθ, (δθλ. όχι μόνον ςτθν αρχι του προγράμματοσ)

ΠΑΡΑΔΕΙΓΜΑ

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

Πώσ εκτελεί η Python μια ςυνάρτηςη; - 3 • (2) Η ςυνάρτθςθ μπορεί να αλλάηει όνομα κατά τθν εκτζλεςθ

ι να ςυνδζεται και με άλλα ονόματα

ΠΑΡΑΔΕΙΓΜΑ

Μετά τθν εκτζλεςθ τθσ εντολισ ανάκεςθσ

power = dynamh

θ ςυνάρτθςθ μπορεί να κλθκεί και με το όνομα ‘power’

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

Εμβέλεια μεταβλητών

Scope

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

Εμβέλεια μεταβλητών (Variable scope) - 1

• Σοπικι μεταβλθτι (local) • Κάκε μεταβλθτι (όνομα) που παίρνει

τιμι μζςα ςε μια ςυνάρτθςθ είναι τοπικι (local) ςτθ ςυνάρτθςθ αυτι

• Ζχει τοπικι εμβζλεια (local scope)

• Ανικει ςτον τοπικό χϊρο ονομάτων (local namespace) τθσ ςυνάρτθςθσ

• Κακολικι μεταβλθτι (Global) • Μια μεταβλθτι που παίρνει τιμι ςε

επίπεδο κφριου προγράμματοσ (δθλ. ζξω από όλεσ τισ ςυναρτιςεισ) είναι κακολικι (global) ςτο πρόγραμμα

• Ζχει κακολικι εμβζλεια

• Ανικει ςτον κακολικό χϊρο ονομάτων (global namespace) του κφριου προγράμματοσ

• Σοπικζσ: res, x

• Κακολικζσ: s1, s2

• Παράμετροι: ;;

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

Εμβέλεια μεταβλητών - 2

• Μθ-τοπικι μεταβλθτι (nonlocal variable) • Μια μεταβλθτι που παίρνει

τιμι ςε μια περιβάλλουςα ςυνάρτθςθ είναι μθ-τοπικι (nonlocal) για τισ φωλιαςμζνεσ ςυναρτιςεισ .

• Μθ-τοπικζσ: first, last • Χωρίσ τθ nonlocal οι first & last

είναι τοπικζσ ςτθ nested γιατί παίρνουν τιμι εκεί

• Πταν ενεργοποιθκεί θ διλωςθ nonlocal είναι μθ-τοπικζσ και ταυτίηονται με τισ first, last τθσ περικλείουςασ ςυνάρτθςθσ intersect

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

Εμβέλεια μεταβλητών : Πόςα επίπεδα;

• Ο κανόνασ LEGB

• LEGB = Local / Enclosing / Global / Built-in

• H Python διαχειρίηεται τα ονόματα ςε 4 επίπεδα εμβζλειασ:

• Local (Τοπικι) • Κάκε απλι ςυνάρτθςθ

• Enclosing (Ρερικλείουςα) • Κάκε ςυνάρτθςθ που περικλείει φωλιαςμζνεσ ςυναρτιςεισ

• Global (Κακολικι) • Κφριο πρόγραμμα

• Built-in (Ενςωματωμζνθ) • Τα standard ονόματα τθσ γλϊςςασ / Άλλα πακζτα / Βιβλιοκικεσ, κλπ.

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

Εμβέλεια μεταβλητών Γενικόσ κανόνασ LEGB

• Γενικόσ κανόνασ: κάκε μεταβλθτι είναι local ςτο επίπεδο τθσ ςυνάρτθςθσ όπου γίνεται ανάκεςθ τιμισ, εκτόσ εάν εμφανίηεται ςε δθλϊςεισ global ι nonlocal

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

Εμβέλεια Παραδείγματα - 1

• Μια global μεταβλθτι μπορεί να χρθςιμοποιθκεί μζςα ςε ςυνάρτθςθ (όχι όμωσ να γίνει ανάκεςθ)

• Χ: Global

• Z, Y: Locals

• Global

• Local

• Τυπϊνει 88 (global)

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

Εμβέλεια Παραδείγματα - 2

• Η Χ δθλώνεται και παραμζνει global και μζςα ςτθ ςυνάρτθςθ

• Χ: Global

• Τυπϊνει 99

• Πλεσ οι μεταβλθτζσ είναι Global

• Δεν χρειάηεται να δθλωκοφν οι y & z

• Αναγνωρίηονται ωσ global λόγω του κανόνα LEGB

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

Εμβέλεια Παραδείγματα - 3

• Η Χ δθλϊνεται global ςε περιςςότερεσ ςυναρτιςεισ

• Το ποια τιμι κα ζχει κάποια ςτιγμι θ Χ εξαρτάται από το πϊσ κα κλθκοφν οι ςυναρτιςεισ

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

Εμβέλεια Παραδείγματα - 4

• Πταν μια μεταβλθτι παίρνει τιμι μζςα ςε ςυνάρτθςθ αυτόματα γίνεται local ςτθ ςυνάρτθςθ

• Global

• Local ςτθ func1()

• Non-local για τθ func2()

• Τυπϊνει 88

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

Εμβέλεια Παραδείγματα - 5 • Η has_upper είναι local

ςτον χϊρο τθσ ςυνάρτθςθσ checkPass

• Στον χϊρο τθσ φωλιαςμζνθσ checkUpper δθλϊνεται nonlocal

• Άρα αναγνωρίηεται ωσ θ ίδια μεταβλθτι ςτον χϊρο τθσ περικλείουςασ checkPass

• Ραρόμοια για τισ μεταβλθτζσ has_lower & has_num

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

Ορίςματα

Arguments

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

Ορίςματα (Arguments) - 1

• Το πζραςμα οριςμάτων γίνεται με ανάκεςθ αντικειμζνων ςτα ονόματα των παραμζτρων (δθλ. τοπικϊν (local) μεταβλθτϊν τθσ ςυνάρτθςθσ)

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

Ορίςματα (Arguments) - 2

• Πμωσ ςτθν πράξθ γίνεται κάτι διαφορετικό ανάλογα αν τα ορίςματα είναι αντικείμενα μεταλλάξιμα ι όχι

• (α) Μθ-μεταλλάξιμα αντικείμενα (Immutable) (πχ. ακζραιοι,

αλφαρικμθτικά):

• Ρερνοφν ςτθ ςυνάρτθςθ με δθμιουργία αντιγράφου του ορίςματοσ ςτθν τοπικι εμβζλεια τθσ ςυνάρτθςθσ • Δθλ. περνοφν ουςιαςτικά «με δθμιουργία αντιγράφου»

• (β) Μεταλλάξιμα (Mutable) αντικείμενα:

• Ρερνοφν ςτθ ςυνάρτθςθ χωρίσ δθμιουργία αντιγράφου

• Άρα κάκε μεταβολι τουσ ςτθν τοπικι εμβζλεια κακρεφτίηεται αμζςωσ και ςτθν κακολικι εμβζλεια • Δθλ. περνοφν «με δείκτθ»

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

Ορίςματα Παράδειγμα - 1α

• (1) Πριν τθν κλιςθ

ΜΕΣΑΛΛΑΞΙΜΟ

ΜΗ-ΜΕΣΑΛΛΑΞΙΜΟ

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

Ορίςματα Παράδειγμα - 1β

• (2) Κατά τθν κλιςθ: Ρζραςμα οριςμάτων

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

Ορίςματα Παράδειγμα - 1γ

• (3) Εκτζλεςθ τθσ ςυνάρτθςθσ

• Για τθν ακζραια a (immutable) ζχει δθμιουργθκεί νζο αντικείμενο ‘4’

• Για τθ λίςτα b (mutable) ΔΕΝ δθμιουργικθκε νζο αντικείμενο: άρα ΚΑΘΕ αλλαγι ςτθ λίςτα b αντανακλά και ςτθ λίςτα L κακολικισ εμβζλειασ

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

Ορίςματα Παράδειγμα - 1δ

• (4) Μετά τθν κλιςθ

• (5) Η ζξοδοσ του προγράμματοσ

• Χ: δεν ζχει αλλάξει τιμι

• L: είναι διαφορετικι

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

Γενικόσ κανόνασ για τα ορίςματα ςυναρτήςεων

• Τα ορίςματα μιασ ςυνάρτθςθσ είναι τοπικζσ μεταβλθτζσ μζςα ςτθν εμβζλεια τθσ ςυνάρτθςθσ

εκτόσ εάν είναι μεταλλάξιμα (mutable) αντικείμενα

• οπότε κάκε αλλαγι ςτθ ςυνάρτθςθ επθρεάηει και τθ μεταβλθτι ςτο πρόγραμμα που κάνει τθν κλιςθ

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

Και τι κάνω αν η ςυμπεριφορά αυτή δεν είναι επιθυμητή;

• Λφςθ (Α): περάςτε ζνα αντίγραφο του μεταλλάξιμου αντικειμζνου ωσ όριςμα

• Ρχ. αντί για τθν κλιςθ myfunc(X, L) γράψτε myfunc(X, L[:])

• Λφςθ (Β): δθμιουργιςτε ζνα αντίγραφο του μεταλλάξιμου αντικειμζνου μζςα ςτθ ςυνάρτθςθ ϊςτε να μθν επθρεάηεται το αρχικό αντικείμενο

• Ρχ. αντί γράψτε:

ΣΜ. ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΘ Σ. ΔΗΜΗΣΡΙΑΔΗ 7

Π

Επιςκόπηςη

• Συνάρτθςθ: Τι είναι και πϊσ δθλϊνεται

• Μορφζσ ςφνταξθσ ςυναρτιςεων

• Ρϊσ εκτελεί θ Python μια ςυνάρτθςθ

• Εμβζλεια μεταβλθτϊν

• Ορίςματα