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



Σχετικά έγγραφα
Εισαγωγή στον Προγραμματισμό Python Μάθημα 3: πίνακες και βρόγχος επανάληψης for (για) Νοέμβριος 2014 Χ. Αλεξανδράκη, Γ.

Εισαγωγή στον Προγραμματισμό Python Μάθημα 3: πίνακες και βρόγχος επανάληψης for (για) Νοέμβριος 2014 Χ. Αλεξανδράκη, Γ.

Πληρουορική Γ Γσμμασίοσ

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

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

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

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

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

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

Εισαγωγή στον Προγραμματισμό Python Μάθημα 1: Μεταβλητές, τελεστές, είσοδος/έξοδος προγράμματος, συνθήκη ελέγχου if Νοέμβριος 2014 Χ. Αλεξανδράκη, Γ.

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

Να γράψετε τους αριθμούς 1, 2, 3 από τη Στήλη Α και δίπλα το γράμμα α, β, γ, δ, ε από τη Στήλη Β που δίνει τη σωστή αντιστοιχία.

ΘΕΜΑ Α. 1. Η δυαδική αναζήτηση χρησιμοποιείται μόνο σε ταξινομημένες συλλογές δεδομένων.

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

Υπο-προγράμματα στη Fortran

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

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

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

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

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

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

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

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

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

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017

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

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

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

Κεφάλαιο 2.6: Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου. (Διάλεξη 7) Είσοδος/ Έξοδος

Κεφάλαιο 2.6: Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου. (Διάλεξη 7)

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

Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά

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

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

7. Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου

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

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

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

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

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

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

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

Φύλλο Εργασίας 3. Μια γρήγορη επανάληψη από τα προηγούμενα

Επικοινωνία:

Προγραμματιστικά Εργαλεία και Τεχνολογίες για Επιστήμη Δεδομένων

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 4-2

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

Κατανεμημένα Συστήματα

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

Ενότητα: Δυαδική Αναζήτηση Σχέδιο Δραστηριότητας: Παιχνίδι: Βρες τον αριθμό

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP)

Σημειωματάριο Τετάρτης 4 Οκτ. 2017

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

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

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

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

Πρώτη επαφή με το μαθηματικό πακέτο Mathematica

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

ΜΑΘΗΜΑΤΑ PYTHON. Καθηγητής Ι. Δημητρίου.

ΣΥΝΑΡΤΗΣΕΙΣ. Η σύνταξη μιας συνάρτησης σ ένα κελί έχει την γενική μορφή: =όνομα_συνάρτησης(όρισμα1; όρισμα2;.)

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

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

Κεφάλαιο 10ο. ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ιαδικασίες - Συναρτήσεις

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

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

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

ΣΥΝΟΛΟ ΣΕΛΙ ΩΝ: ΕΠΤΑ (7)

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

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

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

Βασικές Ασκήσεις από τα Εργαστήρια της PYTHON (εβδομάδα 5)

Ανακτήθηκε από την ΕΚΠΑΙΔΕΥΤΙΚΗ ΚΛΙΜΑΚΑ

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ

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

Κεφάλαιο 10. Ερωτήσεις ανάπτυξης

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

1. Λογικά λάθη ονομάζονται αυτά που οφείλονται σε σφάλματα κατά την υλοποίηση του αλγόριθμου.

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

ΘΕΜΑΤΑ ΚΑΙ ΛΥΣΕΙΣ. 1) Έστω η λογική συνάρτηση F = A' + Β'. D + B. C' + C. D' (όπου οι τόνοι δηλώνουν συμπληρώματα).

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

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

Η εντολή if-else. Η απλή μορφή της εντολής if είναι η ακόλουθη: if (συνθήκη) { Η γενική μορφή της εντολής ifelse. εντολή_1; εντολή_2;..

alpha Language age (3/5) alpha Language Φροντιστήριο Syntax Directed Translation and

Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου. ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

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

ΕΠΛ 032.3: Προγραµµατισµός ΜεθόδωνΕπίλυσηςΠροβληµάτων

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

Γραφικά υπολογιστών Εργαστήριο 1 Εισαγωγή στην Python

Using Custom Python Expression Functions

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

11. Συναρτήσεις (Μέρος Ι)

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

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

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

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PYTHON (ΟΜΑΔΑ Α)

4 η Διάλεξη Python - Συναρτήσεις

Transcript:

Εισαγωγή στον Προγραμματισμό Python Μάθημα 4: Συναρτήσεις (functions) και δομοστοιχεία (modules) στην Python Νοέμβριος 2014 Χ. Αλεξανδράκη, Γ. Δημητρακάκης

Συναρτήσεις (Functions) Στον προγραμματισμό, μια συνάρτηση αποτελεί μια ομαδοποίηση εντολών, δηλαδή ένα υποπρόγραμμα Οι εντολές από τις οποίες απαρτίζεται μια συνάρτηση συνολικά επιτελούν μια συγκεκριμένη λειτουργία Μια συνάρτηση έχει ένα όνομα, π.χ. sum() Έτσι, όταν θέλουμε να εκτελεστεί η λειτουργία που επιτελεί η συνάρτηση αντί να γράφουμε όλες τις εντολές, χρησιμοποιούμε μόνο το όνομα της συνάρτησης Η χρήση συναρτήσεων στον προγραμματισμό προσφέρει δύο πλεονεκτήματα: a. Code Reuse: μας επιτρέπει να επαναχρησιμοποιούμε κώδικα που έχουμε γράψει, ώστε να μη γράφουμε πολλές φορές όλες τις εντολές που απαιτούνται για μια λειτουργία b. Modularity: επιτρέπει στον κώδικα μας να επιμερίζεται σε μικρότερα στοιχεία. Έτσι όταν σε ένα πρόγραμμα καλούνται κάποιες συναρτήσεις αυτό είναι σα να αποτελείται από τουβλάκια όπου το καθένα κάνει μια ξεχωριστή δουλειά. Με αυτόν τον τρόπο ο αριθμός των γραμμών κώδικα που απαιτείται για ένα πρόγραμμα είναι μικρότερος και το κώδικας μας είναι πιο κομψός! Η Python προσφέρει κάποιες έτοιμες συναρτήσει (built-in functions), π.χ. range(), αλλά μπορούμε να δημιουργούμε και τις δικές μας συναρτήσεις, ανάλογα με τις ανάγκες του εκάστοτε προγράμματος (user-defined functions)

Συναρτήσεις που έχουμε ήδη χρησιμοποιήσει input(), π.χ. n = input( dose akeraio: ) raw_input(), π.χ. name = raw_input( pos se lene? ) range(), π.χ. akeraioi = range(1,10)

Ορίσματα εισόδου- εξόδου Όπως και στα μαθηματικά: z = f(x, y) έτσι και στον προγραμματισμό οι συναρτήσεις έχουν ορίσματα εισόδου και ορίσματα εξόδου arithmoi = range(0, 100, 10) Οι συναρτήσεις μπορούν να έχουν Κανένα έως απεριόριστο αριθμό ορισμάτων εισόδου Ένα ή κανένα όρισμα εξόδου

Σύνταξη συνάρτησης Μια συνάρτηση θα πρέπει πρώτα να την ορίσω και έπειτα να την καλέσω Ορισμός Συνάρτησης (Function Definition) def function_name(arg1, arg2, arg3): command1 Command2 return result Κλίση Συνάρτησης (Function Call) result = function_name(arg1, arg2,arge3) Η λέξη κλειδί def προέρχεται από τη λέξη definition που σημαίνει ορισμός Η λέξη return (επιστροφή) σηματοδοτεί το τέλος μιας συνάρτησης επιστρέφοντας το αποτέλεσμα (όρισμα εξόδου). Η λέξη return χρησιμοποιείται ακόμα κι όταν δεν υπάρχει όρισμα εξόδου

Παράδειγμα 1 #This is a function definition def printsum(a, b, c): #edo ypologizetai to athroisma sum = a+b+c print "to athroisma einai:,sum return #These are calls to the function #If you do not call the function, nothing will # be printed printsum(3, 4, 98) printsum(5, 18, 444)

Προαιρετικά ορίσματα εισόδου Κάποια από τα ορίσματα μιας συνάρτησης μπορεί να είναι προαιρετικά, π.χ. def printsum2(a, b=0, c=0): #edo ypologizetai to athroisma sum = a+b+c print "athroisma: ", sum return Αυτή η συνάρτηση μπορεί να καλεσθεί είτε με ένα, είτε με δύο είτε με τρία ορίσματα εισόδου, π.χ. printsum2(5) printsum2(5, 10) printsum2(5, 10, 25) Όπως φαίνεται στον ορισμό της printsum2 η προκαθορισμένη (default) τιμή για τα προαιρετικά ορίσματα είναι 0.

Μεταβλητό πλήθος ορισμάτων Στην python επιτρέπεται να δηλώσουμε ότι το πλήθος των ορισμάτων μιας συνάρτησης δεν είναι ορισμένο def printsum3(*numbers): s =0 #arxikopoihsh for n in numbers: s = s + n print "athroisma: ", s return Αυτή η συνάρτηση μπορεί να κληθεί με οποιοδήποτε πλήθος ορισμάτων, π.χ printsum3(5) printsum3(5, 10) printsum3(5, 10, 25) Εάν θέλω σαν όρισμα σε μια συνάρτηση μεταβλητού πλήθους ορισμάτων να δώσω έναν πίνακα τότε πρέπει να χρησιμοποιήσω το σύμβολο * και κατά την κλίση, π.χ. printsum3(*range(10, 100, 5))

Παράδειγμα 2 #This function has no output arguments #function definition def printinfo(name, age): print "Name: ", name print "Age: ", age return; #function calls printinfo("maria", 12) printinfo("giorgos", 24) printinfo("nikos", 56)

Ασκήσεις 1. Να υλοποιήσετε μια συνάρτηση με το όνομα getmax η οποία να δέχεται από ένα έως πέντε αριθμητικά ορίσματα και να επιστρέφει το μέγιστο από αυτά 2. Να υλοποιήσετε ξανά αυτή τη συνάρτηση ώστε να παίρνει μεταβλητό πλήθος ορισμάτων

Δομοστοιχεία (modules) Είναι συχνά χρήσιμο οι συναρτήσεις ή/και οι μεταβλητές που επιτελούν παρόμοιες λειτουργίες να ομαδοποιούνται στο ίδιο αρχείο το οποίο ονομάζεται δομοστοιχείο (module) Αυτό μας επιτρέπει να οργανώνουμε τον κώδικα μας σε λογικές ενότητες Η καλή οργάνωση του κώδικα ενός προγράμματος, τον κάνει ευκολότερο στη χρήση και στην κατανόηση

Παράδειγμα module circle (1/3) Μπορούμε να δημιουργήσουμε ένα module που να ενσωματώνει όλες τις ιδιότητες και τις μεταβλητές του γεωμετρικού σχήματος κύκλος: Αρχείο circle.py aktina = 3 #Synartisi pou epistrefei tin perimetro kykloy aktinas r def getperimeter(r = aktina): per = 2*3.14159*r return per; #Synartisi pou epistrefei to emvado kykloy aktinas r def getsurface(r= aktina): sur = 3.14159* r**2 return sur;

Παράδειγμα module circle (2/3) Σε αυτό το παράδειγμα ομαδοποιούνται όλες οι ιδιότητες ενός κύκλου: Ακτίνα, περίμετρος, εμβαδό Η ακτίνα αποθηκεύεται ως μεταβλητή, ενώ η περίμετρος και το εμβαδό υπολογίζονται από συναρτήσεις με βάση την ακτίνα Προσέξτε ότι σε αυτό το παράδειγμα οι δύο συναρτήσεις έχουν ως προαιρετικό όρισμα την ακτίνα. Αν δε δοθεί τιμή για το όρισμα r τότε λαμβάνεται υπόψη η τιμή της μεταβλητής aktina

Παράδειγμα module circle (2/3) To module αυτό μπορώ π.χ. να το καλέσω από το περιβάλλον της python ως εξής: >>> >>> import circle >>> print circle.aktina 3 >>> circle.getperimeter() 18.849539999999998 >>> circle.getperimeter(5) 31.4159 >>> Εάν αλλάξω κάτι στον κώδικα του circle.py μπορώ να το ξαναφορτώσω με την εντολή reload, ως εξής: >>> >>> reload(circle) <module 'circle' from 'circle.pyc'> >>> print circle.aktina 5 >>>

Χρήση Συναρτήσεων στο πρόγραμμά σας Τα modules δίνουν τη δυνατότητα να χρησιμοποιείτε τις συναρτήσεις σας σε οποιοδήποτε πρόγραμμα Αυτό επιτυγχάνεται με τη λέξη import και φυσικά με το όνομα του module Π.χ. σε ένα αρχείο program.py μπορώ να γράψω: import circle print Hello World print circle.getperimeter(3)

Έτοιμα Python Modules H python προσφέρει και κάποια έτοιμα modules τα οποία μπορείτε να τα κάνετε import στο πρόγραμμά σας και να καλείτε τις συναρτήσεις τους. Παράδειγμα τέτοιου modules είναι το math, το οποίο σας δίνει κάποιες έτοιμες μαθηματικές συναρτήσεις όπως: Τριγωνομετρικές, εκθετικές, κλπ. Περισσότερα για τις συναρτήσεις του math module: https://docs.python.org/3/library/math.html

Παράδειγμα χρήσης math import math #prints point of a sinewave def oscil(n): for i in range(n): print math.sin(2*math.pi*i/(n+0.0)) return oscil(10) print "Another math function", math.exp(2)

Άσκηση Να υλοποιήσετε ένα module με το όνομα cylinder (κύλινδρος) με δύο ιδιότητες r, h (ακτίνα, ύψος) και δύο συναρτήσεις εκ των οποίων η μία να επιστρέφει την επιφάνια του κυλίνδρου και η άλλη τον όγκο του Να εισάγετε αυτό το module στο πρόγραμμα σας και να καλέσετε τουλάχιστον μία από τις δύο συναρτήσεις Υπενθυμίζεται ότι V = π*r 2* h και S = 2*π*r*h

Περισσότερες πληροφορίες Python Functions http://www.tutorialspoint.com/python/python_fu nctions.htm Python Modules http://www.tutorialspoint.com/python/python_m odules.htm