H γλώσσα Python H Python είναι μια γλώσσα προγραμματισμού υψηλού επιπέδου γενικής χρήσεως.Οι δημιουργοί της υποστηρίζουν ότι συνδυάζει μεγάλη δύναμη με.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
ΕΙΣΑΓΩΓΗ ΣΤΗΝ PHP. Τι θα μάθουμε;  Να καταλάβουμε τι είναι η PHP και πώς δουλεύουν τα PHP scripts  Τι χρειάζεται για να ξεκινήσουμε με την PHP  Να.
Advertisements

ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εισαγωγή στους Η/Υ Πίνακες.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΒΙΟΜΗΧΑΝΙΑΣ Διάλεξη 2: Πίνακες και δυναμικά δεδομένα στη FORTRAN 90 Εαρινό εξάμηνο 2009 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ.
Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού
Εργαστήριο Λειτουργικών Συστημάτων Φροντιστήριο 2– Εισαγωγή στη Bash Ντίρλης Νικόλαος.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Constructors, equals, toString Αντικείμενα ως παράμετροι.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Γλωσσική Τεχνολογία Object-Orientation in Python.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα.
Συναρτήσεις Κληση/Επιστροφη Παραμετροι
Φροντηστήριο Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Eργαλεία.
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Φροντιστήρια Εισηγητής: Σπύρος Αργυρόπουλος Μέλος ΕΤΕΠ Εργαστήριο Προγραμματισμού & Τεχνολογίας Ευφυών Συστημάτων.
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος γ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΒΙΟΜΗΧΑΝΙΑΣ Διάλεξη 5: Επαναληπτικές και εξωτερικές συναρτήσεις και διαδικασίες Εαρινό εξάμηνο 2009.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΒΙΟΜΗΧΑΝΙΑΣ Διάλεξη 3: Δείκτες Εαρινό εξάμηνο 2009 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ι. Σαρρής, τηλ.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΠΕΡΙΓΡΑΦΗ ΓΛΩΣΣΑΣ PYTHON
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
Προγραμματισμός ΙΙ Διάλεξη #6: Απλές Δομές Ελέγχου Δρ. Νικ. Λιόλιος.
ΣΥΝΑΡΤΗΣΕΙΣ.
Πάνω προς Κάτω Σχεδιασμός και Συναρτήσεις
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II.
Προγραμματισμός ΙΙ Διάλεξη #5: Εντολές Ανάθεσης Εντολές Συνθήκης Δρ. Νικ. Λιόλιος.
Γλωσσική Τεχνολογία Εισαγωγικό Φροντιστήριο. Project του μαθήματος  Εργασία 2 ατόμων  Προφορική εξέταση για :  Project (80%)  Θεωρία (20%)  Στο φροντιστήριο.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές.
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΩΝ Αντώνιος Σαββίδης.
1 ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Πίνακας Συμβόλων Symbol Table.
1 Εισαγωγή στη Java Χρήσιμες Διευθύνσεις Χαρακτηριστικά της Java Εργαλεία της Java Εργαλεία της Java Μεταγλώττιση στοιχειωδών εφαρμογών.
Επικοινωνία Ανθρώπου Μηχανής HTML CGI JAVASCRIPT Κουμπούλης Χρήστος Α.Μ. 921 Χαλαβαζής Βασίλης Α.Μ. 988.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 4 Σημασιολογία μιας Απλής Προστακτικής Γλώσσας Προπτυχιακό.
Κουλίνας Μιχαήλ Α.Μ.:774 Μπουρνάζης Χρήστος Α.Μ.:792 Ρογκάκος Γεώργιος Α.Μ.:817.
32η Συνάντηση Εκπαιδευτικών στη Δυτική Μακεδονία σε Θέματα Τ. Π. Ε
Τμήμα Πληροφορικής και Τηλεπικοινωνιών
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι 4-1 Στην ενότητα αυτή θα μελετηθεί η χρήση στοιβών στις εξής εφαρμογές: Αναδρομικές συναρτήσεις Ισοζυγισμός Παρενθέσεων.
ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Syntax Directed Translation and alpha Language.
ΕΙΣΑΓΩΓΙΚΟ ΦΡΟΝΤΙΣΤΗΡΙΟ Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Εργαλεία.
Βασικά στοιχεία της Java
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις (μέρος δεύτερο) και Μεταβλητές.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα.
ΣΥΝΑΡΤΗΣΙΑΚH JAVASCRIPT. Στόχος της ώρας Συναρτήσεις σε Javascript Συναρτήσεις ως τιμές Συναρτήσεις ως παράμετροι Επιστροφή συναρτήσεων Αντικειμενοστραφής.
Γλώσσες Προγραμματισμού Μεταγλωττιστές Πίνακας Συμβόλων Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου.
ΜΕΤΑΒΛΗΤΕΣ-ΣΤΑΘΕΡΕΣ -ΕΚΦΡΑΣΕΙΣ
Αντικειμενοστραφής Προγραμματισμός ΙΙ
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ
Κλάσεις και αντικείμενα
Ενισχυτική διδασκαλία
ΜΥΥ105: Εισαγωγή στον Προγραμματισμό
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
Εισαγωγή στον Προγ/μό Υπολογιστών
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εισαγωγή στον Προγραμματισμό με Python, ΑΠΘ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ Εισαγωγή στον Προγραμματισμό με Python Εβδομάδα 1: Βασικά στοιχεία.
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ Η/Υ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Μεταγράφημα παρουσίασης:

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

H γλώσσα Python Χρησιμοποιεί ένα πλήρες δυναμικό σύστημα και αυτόματη διαχείριση της μνήμης Για αυτό τον λόγο χρησιμοποιείτε συνήθως ως scripting language.

Ο διερμηνέας της Python(1) O διερμηνέας(interpreter) της Python είναι το βασικό περιβάλλον της γλώσσας γιατί εκεί λαμβάνουν δράση όλες η διαδικασίες που αφορούν την γλώσσα. Είναι υπεύθυνος για την εκτέλεση των προγραμμάτων και προσφέρει εργαλεία για την ανάπτυξη προγραμμάτων.

Ο διερμηνέας της Python(2) Μοιάζει με ένα τερματικό τύπου Unix και δέχεται την εισαγωγή εντολών. π.χ python -c command [arg] Μας επιτρέπει επίσης την εισαγωγή παραμέτρων στα προγράμματα .

Ο διερμηνέας της Python(3) Όταν ο διερμηνέας διαβάζει εντολές που πληκτρολογούμε εμείς λέμε ότι ο διερμηνέας βρίσκεται σε interactive mode. Στο interactive mode περιμένει την επομένη εντολή με την βασική γραμμή εντολών ( >>> εντολή) και για συνεχιζόμενες γραμμές μια εντολής ή ενός μπλοκ εντολών χρησιμοποιεί 3 τελείες (...).

Παράδειγμα >>> should_isay_hello=1 >>>if should_isay_hello : … print (“Hello World”) … Hello World

Ο διερμηνέας της Python(4) Μερικά χαρακτηριστικά του διερμηνέας Error Handling. Εκτέλεση Python Scripts. Αλλαγή του encoding του κώδικα ενός προγράμματος.

Δυναμική μνήμη Όπως αναφέραμε η Python χρησιμοποιεί δυναμικό σύστημα μνήμης και αυτόματη διαχείριση μνήμης.   Οι βασικές δομές δεδομένων είναι : οι συμβολοσειρές και οι λίστες.

Δυναμική μνήμη Υπάρχουν βέβαια και άλλοι τύποι δυναμικής μνήμης όπως τα sets,dictionaries(τα αντίστοιχα maps στην C++) και τα tuples.

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

Παράδειγμα >>> "doesn't" "doesn't" >>> '"Yes," he said.' '"Yes," he said.' >>> "\"Yes,\" he said." >>> '"Isn\'t," she said.' '"Isn\'t," she said.'

Συμβολοσειρές(2) Μια συμβολοσειρά μπορεί να είναι και παραπάνω από μια σειρές. Πρέπει η γραμμές να διαχωρίζονται από μια κάθετο \.

Παράδειγμα hello = "This is a rather long string containing\n\ several lines of text just as you would do in C.\n\ Note that whitespace at the beginning of the line is\ significant." print(hello)

Συμβολοσειρές(3) Στην Python μπορούμε να διαχειριστούμε τις συμβολοσειρές με πολλούς τρόπους. word = 'Help' + 'A' >>> word 'HelpA' >>> '<' + word*5 + '>' '<HelpAHelpAHelpAHelpAHelpA>'

Συμβολοσειρές(3)(συνέχεια) >>> 'Hel' 'lo' 'Hello' >>> 'Wor'.strip() + 'ld' 'World'

Συμβολοσειρές(4) Μπορούμε επίσης να προσπελάσουμε την συμβολοσειρά μας ανά στοιχείο όπως την C πχ. >>>lng=”Python” >>>lng[0] P

Συμβολοσειρές(4)(συνεχεια) Επίσης έχουμε την δυνατότητα να ορίσουμε όρια στον δείκτη προσπέλασης της συμβολοσειράς. πχ. >>lng[0:4] #Apo 0 eos 4 Pytho >>lng[2:]#Ola ektos apo tous 2 protous thon

Συμβολοσειρές(5) Oι συμβολοσειρές στην Python αντίθετα με την C δεν είναι μεταβλητές. Επίσης στην Python μπορούμε να έχουμε αρνητικό αριθμό ως δείκτη προσπέλασης μια συμβολοσειράς.

Παράδειγμα >>> lng[-1] # O teleytaios xaraktiras 'n' >>> lng[-2] # O proteleytaios 'o' >>> lng[-2:] # Oi dyo teleyataioi 'on' >>> lng[:-2] # Oloi ektos apo tous 2 teleytaious 'Pyth'

Παράδειγμα +---+---+---+---+---+ | P | y | t | h | o | n | 0 1 2 3 4 5 6 -6 -5 -4 -3 -2 -1

Λίστες Οι λίστες στην Python είναι ο δεύτερος βασικός τύπος δυναμικής μνήμης. >>>list1=['Pink','Floyd',3,1973] >>>a ['Pink','Floyd',3,1973]

Λίστες(2) Όπωςκαι οι συμβολοσειρές έτσι και οι λίστες μπορούν οριστούν όρια στον δείκτη προσπέλασης. Αρχίζουν και αυτές από το στοιχείο 0 Μπορούν να υποστούν αλλαγή μεγέθους.

Παράδειγμα >>> list1[0] 'Pink' >>> list1[3] 1973 ['Floyd', 3]

Παραδειγμα >>> list1[:2] + ['Wall', 1979] ['Pink', 'Floyd', 'Wall', 1979] >>> 3*list1[:3] + ['Breathe!'] ['Pink', 'Floyd', 3, 'Pink', 'Floyd', 3, 'Pink', 'Floyd', 3, 'Breathe!']

Λίστες (3) Σε αντίθεση με τις συμβολοσειρές στις λίστες μπορούμε να μεταβάλουμε το περιεχόμενο ενός στοιχείου. >>> list1 ['Pink', 'Floyd', 3, 1973] >>> list1[2] = list1[2] + 23 ['Pink', 'Floyd', 26, 1973]

Λίστες (3) Επίσης μπορούμε να θέσουμε τα όρια και να κάνουμε αλλαγές εντός των ορίων που θέσαμε. >>> # Replace some items: ... list1[0:2] = ['Led', 'Zeppelin'] >>> a ['Led','Zeppelin',26,1973]

Λίστες (4) Επίσης η συνάρτηση len() χρησιμοποιείται στις λίστες και επιστρέφει το μέγεθος μιας λίστας. >>>len(list1) 4

If Statement Η συνθήκη if λειτουργεί όπως ακριβώς ξέρουμε και από άλλες γλώσσες προγραμματισμού. Με την μόνη διαφορά ότι δεν είναι else if είναι elif.

Παράδειγμα >>> x = int(input("Please enter an integer: ")) >>> if x < 0: ... x = 0 ... print('Negative changed to zero') ... elif x == 0: ... print('Zero') ... elif x == 1: ... print('Single')

... else: ... print('More') ... More Παράδειγμα ... else: ... print('More') ... More

Statement for Στην Python η συνθήκη for διαφέρει λίγο από ότι έχουμε σε άλλες γλώσσες όπως η C ή Java. Στην Python η ακολουθία που εκτελείται στην επανάληψη γίνεται μεταξύ των αντικειμένων μιας δυναμικής ακολουθίας (πχ μια λίστα).

Παράδειγμα >>> # Paradeigma for stin Python: ... s1 = ['Ubuntu', 'Fedora', 'Slackware'] >>> for x in s1: ... print(x, len(x)) ... Ubuntu 6 Fedora 6 Slackware 9

Stament for (2) Δεν είναι ασφαλές να τροποποιούμε μια δυναμική ακολουθία (αυτό κυρίως απευθύνεται σε ακολουθίες όπως οι λίστες) την οποία έχουμε μέσα σε μια for. Μια καλή λύση είναι να βάλουμε ένα αντίγραφο της ακολουθίας με την βοήθεια των ορίων προσπέλασης.

Παράδειγμα >>> for x in s1[:]: # Dimiourgoume ena antigrapho tis s1 ... if len(x) > 6: s1.insert(0, x) ... >>> s1 ['Slackware', 'Ubuntu', 'Fedora', 'Slackware']

range() function Αν χρειαστεί να προσπελάσουμε με την βοήθεια μιας αριθμητικής ακολουθίας σε μια for τότε η συνάρτηση range() γίνεται πολύ χρήσιμη. H συνάρτηση range() δημιουργεί μια ακολουθία αριθμών μεταξύ του startpoint & endpoint που δέχεται ως ορίσματα. range(startpoint,endpoint)

>>> for i in range(5): ... print(i) ... 1 2 3 4 Παράδειγμα >>> for i in range(5): ... print(i) ... 1 2 3 4

range() function (2) To endpoint δεν είναι μέρος της ακολουθίας. Μπορούμε να θέσουμε και το βήμα με το οποίο θα αυξάνεται η ακολουθία μας.

Παράδειγμα range(5, 10) 5 through 9 range(0, 10, 3) 0, 3, 6, 9 -10, -40, -70

Παράδειγμα >>> a = ['Dark', 'Side', 'of', 'the', 'Moon'] >>> for i in range(len(a)): ... print(i, a[i]) ... 0 Dark 1 Side 2 of 3 the 4 Moon

Συναρτήσεις >>> def fib(n): # Sinartisi akolouthias fibonacci ... """Ektiposi mias akolouthias fibonacci""" ... a, b = 0, 1 ... while b < n: ... print(b, end=' ') ... a, b = b, a+b ... print() ... >>> # Klisi sinartisis: ... fib(2000) 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

Συναρτήσεις Στην Python ορίζουμε συναρτήσεις με την λέξη def. Το σώμα της συνάρτησης αρχίζει στην επομένη γραμμή από κάτω.

Συναρτήσεις (2) Η δημιουργία μια συνάρτησης δημιουργεί ένα τοπικό όνομα συνάρτησης και έχει μια τιμή που αναγνωρίζεται ως user-defined function. Αυτό το όνομα μπορούμε να το αναθέσουμε σε ένα καινούργιο σύμβολο και να χρησιμοποιούμε και αυτό με το ίδιο αποτέλεσμα.

Παράδειγμα >>> fib <function fib at 10042ed0> >>> f = fib >>> f(100) 1 1 2 3 5 8 13 21 34 55 89

Συναρτήσεις (3) Η συνάρτηση fib που ορίσαμε δεν επιστρέφει καμία τιμή. >>> print(fib(0)) None

Συναρτήσεις (3) Μπορούμε να δημιουργούμε συναρτήσεις οι οποίες μπορούν να επιστρέφουν ένα αποτέλεσμα. Είναι πολύ εύκολο να γράψουμε την συνάρτηση fib να επιστρέφει μια λίστα αντί να εκτυπώνει την ακολουθία.

Παράδειγμα >>> def fib2(n): # epistrofi akolouthias fibonacci ... """Epistrofi mias listas me ta apotelesmata akolouthias fibonacci gia n.""" ... result = [] ... a, b = 0, 1 ... while b < n: ... result.append(b) ... a, b = b, a+b ... return result ... >>> f100 = fib2(100) # klisi sinartisis >>> f100 # ektiposi apotelesmatos [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]

Συναρτήσεις (4) Μπορούμε να γράψουμε και συναρτήσεις με μεταβλητό αριθμό arguments.Υπάρχουν 3 τρόποι και οι συνδυασμοί τους. Default Argument Values Κeyword Arguments Arbitary Argument List.

Default Argument Values Αυτό μας βοηθάει στο ότι μπορούμε να καλέσουμε την συνάρτηση και να δώσουμε λιγότερα ορίσματα αφού υπάρχουν προκαθορισμένες τιμές.

Παράδειγμα def ask_ok(prompt, retries=4, complaint='Yes or no, please!'): while True: ok = input(prompt) if ok in ('y', 'ye', 'yes'): return True if ok in ('n', 'no', 'nop', 'nope'): return False retries = retries - 1 if retries < 0: raise IOError('refusenik user') print(complaint)

Keyword Arguments Μια συνάρτηση μπορεί να κληθεί χρησιμοποιώντας keyword arguments του τύπου keyword=value.

Παράδειγμα def Band(members_num=0, guitar='None', bass='None', singer='None',drums='None'): print("The band has”,members,”members.”) print("Singer for the band:", singer) print(“Guitarist for the band:”,guitar) print(“Bass Player for the band:”,bass) print(“Drums player for the band:”,drums)

Παράδειγμα >>>band() The band has 0 members Singer for the band:None Guitarist for the band:None Bass Player for the band:None Drums player for the band:None

Παράδειγμα band(member_num=4,guitar='Jimmy Page',bass='John Paul Jones',singer='Robert Plant',drums='John Bonham' The band has 4 members Singer for the band: Robert Plant Guitarist for the band: Jimmy Page Bass Player for the band: John Paul Jones Drums player for the band: John Bonham

Επίσης μπορούμε να δηλώσουμε keyword arguments με αλλο τρόπο.

Κeyword Arguments def cheeseshop(kind, *arguments, **keywords): print("-- Do you have any", kind, "?") print("-- I'm sorry, we're all out of", kind) for arg in arguments: print(arg) print("-" * 40) keys = sorted(keywords.keys()) for kw in keys: print(kw, ":", keywords[kw])

Keyword Arguments Η κλήση της παραπάνω συνάρτησης θα γίνει κάπως έτσι. cheeseshop("Limburger", "It's very runny, sir.", "It's really very, VERY runny, sir.", shopkeeper="Michael Palin", client="John Cleese", sketch="Cheese Shop Sketch")

Κeyword Arguments Kαι το αποτέλεσμα : -- Do you have any Limburger ? -- I'm sorry, we're all out of Limburger It's very runny, sir. It's really very, VERY runny, sir. ---------------------------------------- client : John Cleese shopkeeper : Michael Palin sketch : Cheese Shop Sketch

Arbitrary Argument Lists Τέλος μπορούμε να απλά να βάλουμε τα ορίσματα μιας συνάρτησης σε μια δυναμική ακολουθία (πχ μια λίστα) και να τα περάσουμε από εκεί.

Παράδειγμα >>> def concat(*args, sep="/"): ... return sep.join(args) ... >>> concat("earth", "mars", "venus") 'earth/mars/venus' >>> concat("earth", "mars", "venus", sep=".") 'earth.mars.venus'

Κλάσεις Η Python εφόσον υποστηρίζει αντικειμενοστραφή λογική δίνει την δυνατότητα για τον ορισμό κλάσεων.

class ClassName: <statement-1> . <statement-N> Class Definition class ClassName: <statement-1> . <statement-N>

Class Definition. Όπως και στις συναρτήσεις έτσι και στις κλάσεις πρέπει πρώτα να γίνει η δήλωση προτού υπάρξει κάποιο αποτέλεσμα. Συνήθως μέσα σε μια κλάση έχουμε τις δηλώσεις των ιδιοτήτων και των μεθόδων της.

Παράδειγμα class MyClass: """Mia apli class""" I = 12345 #idiotita. def f(self): #methodos. return 'hello world'

Class Objects Tα αντικείμενα μιας κλάσης υποστηρίζουν 2 είδη λειτουργιών. Αttribute Reference Instantiation

Attribute Reference Όταν έχουμε ένα αντικείμενο μιας κλάσης,τότε αυτό έχει τα χαρακτηριστικά της κλάσης που ανήκει. Έχουμε την δυνατότητα να αναφερθούμε σε αυτά. Σύμφωνα με το Python Syntax μπορούμε να αναφερθούμε σε ένα attribute με αυτόν τον τρόπο obj.atrr_name

Instantiation Όταν δημιουργούμε ένα αντικείμενο μιας κλάσης τότε του δίνουμε μια υπόσταση που υπακούει στην δήλωση της αντίστοιχης κλάσης. Αυτή η διαδικασία ονομάζεται instantiation και γίνεται με την κλήση μιας συνάρτησης δημιουργού.

Μέθοδος Δημιουργός Μια μέθοδος δημιουργός μέσα σε μια κλάση στην Python συντάσσεται κατά αυτόν τον τρόπο. def __init__(argument1,argument2,...) Είναι μια μέθοδος που χρησιμοποιείται όταν δίνουμε σε ένα αντικείμενο μια υπόσταση και μας βοηθάει να καθορίσουμε τις ιδιότητες της υπόστασης αυτής για την οποία έγινε η κλήση.

Παράδειγμα >>> class Complex: ... def __init__(self, realpart, imagpart): ... self.r = realpart ... self.i = imagpart ... >>> x = Complex(3.0, -4.5) >>> x.r, x.i (3.0, -4.5)

Αναφορά σε ιδιότητα: myobject.x Αναφορά σε μέθοδο: mybject.foo() Instance Objects Αναφορά σε ιδιότητα: myobject.x Αναφορά σε μέθοδο: mybject.foo()