Συναρτήσεις. ΚΕΡΟΣ ΓΙΑΝΝΗΣ, ΠΕ19 1ο ΕΠΑΛ ΚΙΛΚΙΣ. Κέρος Α. Ιωάννης Καθηγητής Πληροφορικής ΠΕ19 1 ο ΕΠΑΛ Κιλκίς

Σχετικά έγγραφα
Θέματα Προγραμματισμού Η/Υ

Εισαγωγή στον Προγραµµατισµό. Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ

Εισαγωγή στον Προγραμματισμό με C++

Ανάπτυξη και Σχεδίαση Λογισμικού

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Θέματα Προγραμματισμού Η/Υ

Εισαγωγή στον Προγ/μό Υπολογιστών

Εισαγωγή στον Προγραμματισμό Python Μάθημα 4: Συναρτήσεις (functions) και δομοστοιχεία (modules) στην Python

Προγραμματισμός ΙI (Θ)

Δομημένος Προγραμματισμός

Προγραμματισμός Η/Υ (ΤΛ2007 )

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

Εισαγωγή στον Προγραμματισμό

Πληροφορική ΙΙ Θεματική Ενότητα 8

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα.

Προγραμματισμός Η/Υ (ΤΛ2007 )

ΣΥΝΑΡΤΗΣΕΙΣ (Functions)

Αρχές Προγραμματισμού Υπολογιστών - Β' ΕΠΑΛ. Αλγοριθμικές δομές [ 51 ]

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Δομημένος Προγραμματισμός (ΤΛ1006)

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ

Προγραμματισμός Ι (ΗΥ120)

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

Δομημένος Προγραμματισμός

Τεχνικός Εφαρμογών Πληροφορικής

Τιμές και τύποι, μεταβλητές Ένα πρώτο σημαντικό βήμα για να μάθουμε να προγραμματίζουμε είναι να

Pascal. 15 Νοεμβρίου 2011

Σημειωματάριο Δευτέρας 30 Οκτ. 2017

α. Οι συμβολοσειρές είναι μια ακολουθία από χαρακτήρες. Μια συμβολοσειρά μπορεί να αποτελείται από περισσότερες από μία λέξεις.

Η γλώσσα προγραμματισμού Strange

ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Διαδικασίες και συναρτήσεις. 22 Νοε 2008 Ανάπτυξη εφαρμογών/ Υποπρογράμματα 1

Κεφάλαιο 10 ο Υποπρογράµµατα

Συναρτήσεις. Εισαγωγή

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ΚΑΙ Β ) ΤΡΙΤΗ 13 ΙΟΥΝΙΟΥ 2017

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 2)

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #2

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12)

Μεθόδων Επίλυσης Προβλημάτων

Προγραµµατιστικές Τεχνικές

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

ΟΜΟΣΠΟΝΔΙΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑΔΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2018 Β ΦΑΣΗ

Συναρτήσεις και διαδικασίες

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ Η/Υ (ΟΜΑΔΑ ΘΕΜΑΤΩΝ A)

Πληροφορική ΙΙ Θεματική Ενότητα 3

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Εισαγωγή στον Προγ/μό Υπολογιστών

Μέρος 2 Κατασκευή Συντακτικού Αναλυτή

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

Γλώσσα προγραμματισμού python

Προγραμματισμός H/Y Ενότητα 5: Συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Διορθώσεις σελ

Κεφάλαιο 10 Υποπρογράμματα. Καραμαούνας Πολύκαρπος

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6)

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι είναι ; Συναρτήσεις. Παράδειγμα #1. double convert ( double cm ) { double inch;

Σύντομες εισαγωγικές σημειώσεις για την. Matlab

Η γλώσσα προγραμματισμού C

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΩΝ & Δ ΤΑΞΗΣ ΕΣΠΕΡΙΝΩΝ ΥΠΟΛΕΙΠΟΜΕΝΕΣ ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ HMEΡΗΣΙΩΝ ΚΑΙ ΕΣΠΕΡΙΝΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ

Αντίρριο, 14/03/2017 Προδιαγραφές Εργαστηριακής Εργασίας για το μάθημα «Μεταγλωττιστές»

Προγραμματισμός Η/Υ. Ενότητα 7: Συναρτήσεις

Προγραμματισμός ΙI (Θ)

Εισαγωγή στην πληροφορική

Κεφάλαιο , 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

7. ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΣΥΝΑΡΤΗΣΕΙΣ

Η γλώσσα προγραμματισμού EEL

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

Συναρτήσεις. Υποπρόγραμμα

ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις Python Ενότητα 3 Ν. Φερεντίνος. ΠΛΗΡΟΦΟΡΙΚΗ Ι (Python) Ενότητα 3. Συναρτήσεις

Λογισµικό (Software SW) Γλώσσες

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΩΝ & Δ ΤΑΞΗΣ ΕΣΠΕΡΙΝΩΝ

Σημειωματάριο Δευτέρας 9 Οκτ. 2017

Σε γενικές γραμμές, είναι καλή πρακτική να γράϕουμε προγράμματα C που αποτελούνται από πολλές και μικρές συναρτήσεις, παρά από λίγες και μεγάλες.

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Δρ. Ιωάννης Λυχναρόπουλος Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( )

Υπολογιστικά Συστήματα

Δομημένος Προγραμματισμός

ΣΤΗΛΗ Β ΑΠΟΤΕΛΕΣΜΑ 1. float(10) α pow(2,3) β abs(-10) γ int(5.6) δ. 10 ε. 5.6 Μονάδες 8 ΣΤΗΛΗ Α ΣΥΝΑΡΤΗΣΗ

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ΚΑΙ Β ) ΤΕΤΑΡΤΗ 20 ΙΟΥΝΙΟΥ 2018

ΠΡΟΓΡΑΜΜΑ synartisi_se_diadikasia ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: A[10], max, i, C, S, B, maxmax ΑΡΧΗ

Ηβασικήσυνάρτηση προγράμματος main()

Προγραμματισμό για ΗΜΥ

Η βασική συνάρτηση προγράμματος main()

ΗΥ101: Εισαγωγή στην Πληροφορική

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Python. 1η Ομάδα Ασκήσεων

ΣΥΝΑΡΤΗΣΕΙΣ Παραδείγματα χρήσης συναρτήσεων

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 4

Διαδικασιακός Προγραμματισμός

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ ΤΡΙΤΗ 11 ΙΟΥΝΙΟΥ 2019 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ

Προγραμματισμός Ι. Συναρτήσεις. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών

ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Αναζήτηση και Ταξινόμηση Χειμερινό Εξάμηνο 2016

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

Ανάπτυξη και Σχεδίαση Λογισμικού

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Συναρτήσεις I Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Transcript:

Συναρτήσεις Κέρος Α. Ιωάννης Καθηγητής Πληροφορικής ΠΕ19 1 ο ΕΠΑΛ Κιλκίς

Συναρτήσεις - Εισαγωγή Τι είναι μία συνάρτηση; def numbers(): Επικεφαλίδα της συνάρτησης Μία συνάρτηση είναι: print 'One' ένα σύνολο εντολών, print 'Two' Σώμα της συνάρτησης οι οποίες αναφέρονται με ένα κοινό όνομα. print 'Three' Πως ορίζεται μία συνάρτηση; προσοχή στην στοίχιση def,(από την λέξη define=ορίζω) όνομα συνάρτησης,(που την κάνει να ταυτοποιείται μοναδικά) (), (μέσα στην οποία θα μπουν οι παράμετροι εισόδου, τα δεδομένα πάνω στα οποία θα ενεργήσει, αν τέτοια υπάρχουν και για τα οποία θα μιλήσουμε αργότερα σε αυτό το κεφάλαιο) : Εντολές return μεταβλητή / μεταβλητές, (η μεταβλητή/μεταβλητές μέσω των οποίων θα επιστραφεί το αποτέλεσμα, εφόσον θέλουμε η συνάρτηση να κάνει κάτι τέτοιο) Πως καλείται μία συνάρτηση; Απλά, αναφέροντας το όνομα της και χρησιμοποιώντας τον αντίστοιχο αριθμό παραμέτρων: numbers() One Two Three

Συναρτήσεις - Σπουδαιότητα Γιατί είναι σημαντικές; Γιατί μας επιτρέπουν να «βαπτίσουμε» ένα σύνολο εντολών με ένα όνομα και να το επαναχρησιμοποιούμε εύκολα και γρήγορα, απλά αναφέροντας το όνομα του. Η χρησιμοποίηση μιας συνάρτησης λέγεται κλήση της συνάρτησης. Ο ορισμός μίας νέας συνάρτησης κάνει το πρόγραμμα μικρότερο, απομακρύνοντας τμήματα κώδικα που επαναλαμβάνονται. Οι τυχόν αλλαγές διορθώσεις γίνονται σε ένα μόνο μέρος του προγράμματος. Γενικά διευκολύνουν στη συγγραφή, ανάγνωση, κατανόηση και διόρθωση του προγράμματος. Ειδικά στην Python: Οι συναρτήσεις μπορούν να αποθηκευτούν και σε ξεχωριστά αρχεία, εμπλουτίζοντας το ρεπερτόριο εντολών της γλώσσας. Υπάρχει άριστη υποστήριξη και ευελιξία. Υπάρχει μεγάλη γκάμα έτοιμων συναρτήσεων για ότι σχεδόν επιθυμείτε.

Συναρτήσεις - Σπουδαιότητα

Συναρτήσεις - Χρήσιμα Τι είναι οι παράμετροι μίας συνάρτησης; Οι συναρτήσεις τις περισσότερες φορές χρειάζονται δεδομένα πάνω στα οποία θα ενεργήσουν. Τα δεδομένα αυτά διοχετεύονται μέσα στην συνάρτηση μέσω μεταβλητών που τοποθετούνται μέσα στις παρενθέσεις της συνάρτησης και λέγονται παράμετροι. παράμετροι (είσοδος) ρίζα(χ) Που συνήθως γράφονται οι συναρτήσεις; Οι συναρτήσεις συνήθως γράφονται στην αρχή του προγράμματος και σε κάθε περίπτωση πριν από το σημείο που θα κληθούν (χρησιμοποιηθούν). Πόσες φορές μπορεί να κληθεί μία συνάρτηση; Δεν υπάρχει κανένας απολύτως περιορισμός. Κάθε φορά που καλώ μία συνάρτηση, πρέπει να χρησιμοποιώ τις ίδιες παραμέτρους; Όχι φυσικά. Το όνομα της συνάρτησης, πρέπει να υπακούει σε κάποιους κανόνες; Ακριβώς τους ίδιους με τα ονόματα των μεταβλητών και των σταθερών.

Συνάρτηση χωρίς παραμέτρους και επιστρεφόμενη τιμή Παράδειγμα Να γραφεί συνάρτηση με όνομα tragouda, η οποία να εμφανίζει το μήνυμα IRA OLE στην οθόνη. def tragouda(): print IRA OLE' tragouda() IRA OLE Παράδειγμα Να γραφεί συνάρτηση με όνομα epanalave_tragouda, η οποία να εμφανίζει το μήνυμα IRA OLE 2 φορές στην οθόνη χρησιμοποιώντας την συνάρτηση tragouda. def tragouda(): print IRA OLE' def epanalave_tragouda(): tragouda() tragouda() epanalave_tragouda() IRA OLE IRA OLE

Επιπλέον παραδείγματα 1. Τι κάνει η παρακάτω συνάρτηση printpython3(); def printpython3(): 2. Τι κάνει η παρακάτω συνάρτηση printpython9(); def printpython9(): 3. Πως μπορούμε να γράψουμε την συνάρτηση printpython9() με λιγότερες γραμμές; def printpython3(): def printpython9(): printpython3() printpython3() printpython3() 4. Να ορίσετε μια συνάρτηση η οποία να εμφανίζει 21 φορές τη λέξη Python, με αποκλειστική χρήση των συναρτήσεων printpython3() και printpython9().

Συνάρτηση - Εσοχές Παράδειγμα Σε τι διαφέρουν οι συναρτήσεις tragouda1() και tragouda2(); def tragouda1(): print '1o' print 'EPAL' def tragouda2(): print '1o' print 'EPAL' Είναι λοιπόν σημαντικές οι εσοχές;

Συνάρτηση Γενική μορφή def <όνομα συνάρτησης> ([λίστα παραμέτρων]): εντολές [return <αποτέλεσμα>] Παρατηρήσεις Ότι είναι τοποθετημένο μέσα σε αγκύλες [ ], δεν είναι υποχρεωτικό δηλαδή: μία συνάρτηση μπορεί να μην έχει παραμέτρους, δηλαδή δεν χρειάζεται να δεχθεί ως είσοδο δεδομένα και Μπορεί να μην επιστρέφει καμία τιμή πίσω στο σημείο από το οποίο κλήθηκε.

Συνάρτηση με παραμέτρους χωρίς επιστρεφόμενη τιμή def compare(a,b): if a>b: print a,'>',b elif a<b: print a,'<',b else: print a,'=',b compare(4,7) compare(5,5) x=8 y=2 compare(x,y) Παράμετροι ή Τυπικές Παράμετροι Parameters ή Formal Parameters Ορίσματα ή Πραγματικές Παράμετροι Arguments ή Actual Parameters def fun(x): print 'x=',x x=10 print 'x=',x y=0 fun(y) print 'y=',y SOS call by value (πέρασμα μέσω τιμής) ή pass by reference (πέρασμα μέσω αναφοράς) Οι μεταβλητές a, b δεν υφίστανται παρά μόνο όταν κληθεί η συνάρτηση compare. Τότε: Δημιουργούνται οι μεταβλητές a και b, Oι τιμές των μεταβλητών x και y αντιγράφονται στις αντίστοιχες a και b, Εκτελείται η συνάρτηση, Οι μεταβλητές a και b καταστρέφονται, ΧΩΡΙΣ να επιστρέψουν πίσω στις αντίστοιχες x και y τίποτα. x= 0 x= 10 y= 0

Παραδείγματα 1. Τι κάνει η παρακάτω συνάρτηση printpython(); def printpython(): for i in range(3): 2. Τι κάνει η παρακάτω συνάρτηση printpython(); def printpython(): for i in range(5): 3. Τι κάνει η παρακάτω συνάρτηση printpython(); def printpython(n): for i in range(n): Τι συμπεράσματα βγάζετε όσο αφορά το ρόλο των παραμέτρων; Γιατί υπάρχουν;

Συνάρτηση με παραμέτρους και επιστρεφόμενη τιμή 1. Ορίστε τις ακόλουθες συναρτήσεις add και times3. def add(arg1,arg2): result=arg1+arg2 return result def times3(arg): ginomeno=3*arg return ginomeno Η λέξη return είναι αυτή που στέλνει το αποτέλεσμα της συνάρτησης (μέσω της μεταβλητής στα δεξιά της) πίσω στο κύριο πρόγραμμα, στο σημείο από το οποίο κλήθηκε. 2. Εκτελέστε: x=add(10,18) print 'x=',x y=add('ab','ba') print 'y=',y z=times3(10) print 'z=',z q=times3('ira') print q=',q 3. Εκτελέστε: k=times3(2.5) print 'k=',k p=times3('python') print 'p=',p n=times3(times3(9)) print 'n=',n j=times3(add('ab','ab')) print 'j=',j

Επιπλέον παραδείγματα def sum1(a,b): a=a+1 b=b+1 return a+b z=1 w=2 print 'Πριν την κλήση' print 'z=',z print 'w=',w q=sum1(z,w) print 'Μετά την κλήση' print 'z=',z print 'w=',w print 'q=',q Πριν την κλήση z= 1 w= 2 Μετά την κλήση z= 1 w= 2 q= 5 Συζήτηση στην τάξη 1. Ομοιότητες διαφορές παραμέτρων ορισμάτων 2. Ομοιότητες διαφορές παραμέτρων μεταβλητών def sum1(a,b): a=a+1 b=b+1 return a+b z=1 w=2 print 'Πριν την κλήση' print 'z=',z print 'w=',w q=sum1(z,w) print 'Μετά την κλήση' print 'z=',z print 'w=',w print 'q=',q Πριν την κλήση z= 1 w= 2 Μετά την κλήση z= 1 w= 2 q= None None= Το απόλυτο ΤΙΠΟΤΑ Η λέξη None υποδεικνύει ότι η συνάρτηση sum δεν επιστρέφει τιμή. Η λέξη αυτή δεν είναι ούτε συμβολοσειρά, ούτε αριθμός και δεν μπορούμε να κάνουμε κανέναν υπολογισμό με αυτήν.

Συναρτήσεις δίχως return στο σώμα τους Εκτελέστε και σχολιάστε το παρακάτω πρόγραμμα. def func(): x=5+3 print func() None Συναρτήσεις χωρίς return επιστρέφουν το απόλυτο τίποτα (None)

Δραστηριότητα 1 Να γράψετε στην Python συνάρτηση με όνομα max η οποία θα δέχεται δύο ακεραίους αριθμούς και θα επιστρέφει στο πρόγραμμα τον μέγιστο από τους δύο. def max(a,b): if a>b: return a else: return b a=int(input('δώστε τον 1ο αριθμό:')) b=int(input('δώστε τον 2ο αριθμό:')) apot=max(a,b) print 'Ο μέγιστος είναι',apot def max(a,b): if a>b: return a else: return b a=int(input('δώστε τον 1ο αριθμό:')) b=int(input('δώστε τον 2ο αριθμό:')) c=int(input('δώστε τον 3ο αριθμό:')) apot=max(max(a,b),c) print 'Ο μέγιστος είναι',apot Η συνάρτηση max δουλεύει και για αλφαριθμητικά ή μόνο για αριθμούς; Δοκιμάστε το με ένα παράδειγμα. Τροποποιήστε το πρόγραμμα ώστε να βρίσκει τον μέγιστο από 3,4 και 6 αριθμούς.

Δραστηριότητα 2 Επισκεφτείτε την ηλεκτρονική διεύθυνση: http://blogs.sch.gr/gkeros και από το μενού Python Λογισμικό Διάφορα κατεβάστε το φύλλο εργασίας Rectangle και ακολουθείστε βήμα προς βήμα τις οδηγίες του.

Εμβέλεια μεταβλητών Καθολικές μεταβλητές (global variables) Δηλώνονται έξω από τις συναρτήσεις, Μπορούν να προσπελαστούν από οποιοδήποτε σημείο, δηλαδή και από το πρόγραμμα αλλά και μέσα σε κάθε συνάρτηση def add(x,y): s=x+y+k return s k=10 print add(7,3) print s 20 Traceback (most recent call last): File "C:\Users\gkeros\Desktop\sas.py", line 7, in <module> print s NameError: name 's' is not defined Η k είναι γνωστή στη συνάρτηση αφού έχει αναφερθεί στο πρόγραμμα Η s είναι άγνωστη στο πρόγραμμα

Εμβέλεια μεταβλητών συνέχεια Καθολικές μεταβλητές (global variables) def add(x,y): k=5 s=x+y+k print 'Μέσα στην συνάρτηση',k return s k=10 print add(7,3) print 'Έξω από την συνάρτηση',k def add(x,y): global k k=5 s=x+y+k print 'Μέσα στην συνάρτηση',k return s k=10 print add(7,3) print 'Έξω από την συνάρτηση',k Μέσα στην συνάρτηση 5 15 Έξω από την συνάρτηση 10 Αν υπάρχει τοπική και καθολική μεταβλητή με το ίδιο όνομα τότε μέσα στην συνάρτηση υπερισχύει η τοπική αλλά δεν επηρεάζει την τιμή της καθολικής εκτός αν. Μέσα στην συνάρτηση 5 15 Έξω από την συνάρτηση 5 Η δήλωση global μέσα στην συνάρτηση δηλώνει πως η μεταβλητή δεν είναι τοπική και γίνεται απευθείας αναφορά στην καθολική.

Συμβολοσειρές τεκμηρίωσης def sum1(x,y): '''Αθροίζει 2 αριθμούς ή συνενώνει 2 συμβολοσειρές''' return x+y a=sum1(2,3) print a b=sum1( IRA', OLE') print b print sum1. doc 5 IRAOLE Αθροίζει 2 αριθμούς ή συνενώνει 2 συμβολοσειρές Μέσα σε τριπλά εισαγωγικά βάζουμε μια γενική περιγραφή της συνάρτησης Με τον τρόπο αυτό (2 κάτω παύλες) εμφανίζεται η γενική περιγραφή που βάλαμε ενώ αν δεν βάλαμε εμφανίζεται η τιμή None

Προεπιλεγμένα ορίσματα def football(omada,sinthima=' ΟΛΕ'): print omada+sinthima football('ηρα',' ΟΜΑΔΑΡΑ') football('ηρα') ΗΡΑ ΟΜΑΔΑΡΑ ΗΡΑ ΟΛΕ Ο προγραμματιστής μπορεί να δίνει τιμές: είτε και στα δύο ορίσματα omada και sinthima (όπως κανονικά έχουμε μάθει έως σήμερα), είτε μόνο στο όρισμα omada (το δεύτερο όρισμα sinthima έχει την προεπιλεγμένη τιμή του ΟΛΕ. def printmessage(message1,message2,times=1): print (message1+message2)*times printmessage('hello',' boys',5) printmessage('hello','girls') Hello boyshello boyshello boyshello boyshello boys Hellogirls

Ορίσματα με λέξεις κλειδιά def func(a,b=1,c=2): print 'a=',a,'b=',b,'c=',c func(4,5,6) func(5,10) func(2,c=20) func(c=50,a=10) a= 4 b= 5 c= 6 a= 5 b= 10 c= 2 a= 2 b= 1 c= 20 a= 10 b= 1 c= 50 Τα βασικά πλεονεκτήματα είναι: Δημιουργία ευανάγνωστων συναρτήσεων, Η ελευθερία στη διάταξη (σειρά) των ορισμάτων def printmessage(message,separator,times=1): print (message+separator)*times printmessage(separator='!',times=10,message='beee') beee!beee!beee!beee!beee!beee!beee!beee!beee!beee!

Δραστηριότητα 3 - Επιστροφή πολλών αποτελεσμάτων def milestometersandfeet(miles): m=miles*1852 f=miles*5280 return m,f print 'Μετατροπή ναυτικών μιλίων σε μέτρα και πόδια' miles=float(input('πόσα είναι τα ναυτικά μίλια;')) meters,feet=milestometersandfeet(miles) print 'Μέτρα=',meters print 'Πόδια=',feet Μετατροπή ναυτικών μιλίων σε μέτρα και πόδια Πόσα είναι τα ναυτικά μίλια;100 Μέτρα= 185200.0 Πόδια= 528000.0