Εισαγωγή στη Γλώσσα Προγραμματισμού Python Τετάρτη Οργάνωση ΚΕΠΛΗΝΕΤ Δυτ. Θεσ/νικης Σχολ. Σύμβουλος Τζελέπη Σοφία Επιμορφωτικό Σεμινάριο στη Python Αραμπατζής Γιώργος Καθ. Πληροφορικής
Είναι εύκολη στη χρήση και στην εκμάθηση. Κάνει ταχύτερες τις συνηθισμένες εργασίες και κατασκευές προγραμμάτων. Το όνομα της προέρχεται από την ομάδα άγγλων κωμικών Μόντυ Πάιθον. Aναπτύσσεται ως ανοιχτό λογισμικό. Η Python Ενότητα 1 Εισαγωγή Εισαγωγή Ενότητα 1 Επιμορφωτικό Σεμινάριο στη Python
Ενότητα 1 Εισαγωγή 10 Κορυφαίες Γλώσσες Προγραμματισμού για το 2016 Δυσκολία : 3 ( 1-5) Δυσκολία : 5 ( 1-5) Δυσκολία : 3 ( 1-5) Δυσκολία : 1 ( 1-5) Εισαγωγή Ενότητα 1 Επιμορφωτικό Σεμινάριο στη Python
Ενότητα 1 Εισαγωγή Με ποια Γλώσσα θα άρχιζε ένας αρχάριος …. Επιμορφωτικό Σεμινάριο στη Python Εισαγωγή Ενότητα 1
Ενότητα 1 Εισαγωγή Επιμορφωτικό Σεμινάριο στη Python Η Python προτείνεται ως μια πολύ καλή σύγχρονη γλώσσα με στοιχεία Διαδικτύου για μαθητές Γυμνασίου και Λυκείου, που αρχίζουν να μαθαίνουν προγραμματισμό Η/Υ Εισαγωγή Ενότητα 1
Εισαγωγή Εισαγωγή Ενότητα 1 Επιμορφωτικό Σεμινάριο στη Python Χαρακτηριστικά που την κάνουν ελκυστική... Python Οδηγούμενη από Γεγονός (event riven) Απλή και κατανοητή Αντικειμενοστραφής Δωρεάν Αποθηκεύεται στο σύννεφο και εκτελείται στο φυλλομετρητή του Η/Υ (Codeskulptor) Θεωρείται μία από της γλώσσες της επόμενης γενιάς.
Εισαγωγή Επιμορφωτικό Σεμινάριο στη Python PythonC++ Print “Γεια σου κόσμε !’’ #include using namespace std; int main() { cout << " Γεια σου κόσμε " << endl; return 0 } Το πρόγραμμα «Γεια σου κόσμε !» σε Python και C++ Εισαγωγή Ενότητα 1
Εισαγωγή Επιμορφωτικό Σεμινάριο στη Python PythonJava Print “Γεια σου κόσμε !’’ public class HelloWorld { public static void main( String [] args ) { System. out.println("Hello, World"); } Το πρόγραμμα «Γεια σου κόσμε !» σε Python και Java Εισαγωγή Ενότητα 1
Εισαγωγή Επιμορφωτικό Σεμινάριο στη Python Youtube Facebook DropBox Google (Με μεγάλη χρήση της, σε βασικές εφαρμογές) Instagram BitTorrent (Προηγούμενη έκδοση) Second Life Γνωστές εμπορικές εφαρμογές γραμμένες σε Python Εισαγωγή Ενότητα 1
Εισαγωγή Επιμορφωτικό Σεμινάριο στη Python Εγκατάσταση της Python από το επίσημο site Εισαγωγή Ενότητα 1
Εισαγωγή Επιμορφωτικό Σεμινάριο στη Python Περιβάλλον της Python Εισαγωγή Ενότητα 1
>>> print «Γεια σου, κόσμε! " Γεια σου, κόσμε! Το πρώτο μας πρόγραμμα Τελεστές - Μεταβλητές Τελεστές - Μεταβλητές Ενότητα 2 Επιμορφωτικό Σεμινάριο στη Python
Δεδομένα στη Python Στην Python δεν δηλώνουμε ρητά τι τύπο δεδομένων χρησιμοποιούμε. Τύποι Δεδομένων : 1. Αριθμοί 1.1. Ακέραιοι Κινητής Υποδιαστολής ( Floating Point) Ε-5 = 28.2 * Μιγαδικοί -2+3j 2. Λογικοί True False 3. Συμβολοσειρές ( αλφαριθμητικά strings ) « Καλημέρα σας » Τελεστές - Μεταβλητές Επιμορφωτικό Σεμινάριο στη Python Τελεστές - Μεταβλητές Ενότητα 2
Επιμορφωτικό Σεμινάριο στη Python Συναρτήσεις Μετατροπής Τύπου μεταβλητών Τελεστές - Μεταβλητές Ενότητα 2
Τελεστές - Μεταβλητές Επιμορφωτικό Σεμινάριο στη Python >>> >>> print (6) 6 >>> print ((7+2)*8) 72 >>> Αριθμητικοί Τελεστές στη Python Τελεστές - Μεταβλητές Ενότητα 2
Τελεστές - Μεταβλητές Επιμορφωτικό Σεμινάριο στη Python Codeskulptor : Περιβάλλον συγγραφής κώδικα σε Python, με ελάχιστες διαφορές με την standard Python Τελεστές - Μεταβλητές Ενότητα 2
Τελεστές - Μεταβλητές Επιμορφωτικό Σεμινάριο στη Python Τελεστές - Μεταβλητές Ενότητα 2
Για να εκχωρήσουμε μία τιμή σε μια μεταβλητή χρησιμοποιούμε το σύμβολο « = ». Τελεστές - Μεταβλητές Επιμορφωτικό Σεμινάριο στη Python Τελεστές - Μεταβλητές Ενότητα 2
Τελεστές - Μεταβλητές Επιμορφωτικό Σεμινάριο στη Python Τελεστές - Μεταβλητές Ενότητα 2
Είσοδος Δεδομένων Επιμορφωτικό Σεμινάριο στη Python Διάβασμα μιας μεταβλητής Τελεστές - Μεταβλητές Ενότητα 2
Να γραφεί κώδικας ο οποίος να διαβάζει μια μεταβλητή σε Κελσίου και να εμφανίζει την θερμοκρασία σε Φαρενάιτ. Άσκηση Επιμορφωτικό Σεμινάριο στη Python Τελεστές - Μεταβλητές Ενότητα 2
Είσοδος Δεδομένων Επιμορφωτικό Σεμινάριο στη Python Τελεστές - Μεταβλητές Ενότητα 2
Μιγαδικοί Αριθμοί Επιμορφωτικό Σεμινάριο στη Python Η Python υποστηρίζει μιγαδικούς... Τελεστές - Μεταβλητές Ενότητα 2
Συγκριτικοί Τελεστές - Λογικοί Τελεστές == : ισότητα != : όχι ίσο < : μικρότερο > : μεγαλύτερο <= : μικρότερο ή ίσο >= : μεγαλύτερο η ίσο not : όχι or : ή and : και Επιμορφωτικό Σεμινάριο στη Python Τελεστές - Μεταβλητές Ενότητα 2
Λογικοί Τελεστές Επιμορφωτικό Σεμινάριο στη Python Τελεστές - Μεταβλητές Ενότητα 2
math module Επιμορφωτικό Σεμινάριο στη Python Για την χρήση έτοιμων συναρτήσεων χρησιμοποιούμε έτοιμες βιβλιοθήκες (modules) τα οποία κάνουμε import math module Ενότητα 3
Να γραφεί πρόγραμμα εύρεσης του εμβαδού ενός τριγώνου από τις πλευρές του. Άσκηση Επιμορφωτικό Σεμινάριο στη Python math module Ενότητα 3
Η εντολή Αν (Απλή Μορφή) Conditionals Ενότητα 4 Επιμορφωτικό Σεμινάριο στη Python if : εντολή(ές) ΑΠΑΡΑΙΤΗΤΑ τα 4 κενά πριν την εντολή (ές)
Άσκηση 3 : Να βρεθεί η απόλυτη τιμή ενός αριθμού Η εντολή Αν (Απλή Μορφή) Επιμορφωτικό Σεμινάριο στη Python Conditionals Ενότητα 4
Η εντολή Αν (Σύνθετη Μορφή) Επιμορφωτικό Σεμινάριο στη Python if : εντολή(ές) else: εντολή(ές) ΑΠΑΡΑΙΤΗΤΑ τα 4 κενά πριν την εντολή (ές) Conditionals Ενότητα 4
Η εντολή Αν (Σύνθετη Μορφή) Επιμορφωτικό Σεμινάριο στη Python Conditionals Ενότητα 4
Η εντολή Αν (Πολλαπλή Μορφή) Επιμορφωτικό Σεμινάριο στη Python if : εντολή(ές)1 elif : εντολή(ές)2 elif : εντολή(ές)3 else: εντολή(ές) ΑΠΑΡΑΙΤΗΤΑ τα 4 κενά πριν την εντολή (ές) Conditionals Ενότητα 4
Η εντολή Αν (Πολλαπλή Μορφή) Επιμορφωτικό Σεμινάριο στη Python Conditionals Ενότητα 4
Επαναληπτικές Δομές Επιμορφωτικό Σεμινάριο στη Python for i in range(10): εντολή(ές) Συγκεκριμένος αριθμός επαναλήψεων Τιμές [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] Loops Ενότητα 5
Επαναληπτικές Δομές Επιμορφωτικό Σεμινάριο στη Python for i in range(5,10): εντολή(ές) Συγκεκριμένος αριθμός επαναλήψεων σε εύρος τιμών Τιμές [5, 6, 7, 8, 9] Loops Ενότητα 5
Επαναληπτικές Δομές Επιμορφωτικό Σεμινάριο στη Python for i in range(1,10,2): εντολή(ές) Συγκεκριμένος αριθμός επαναλήψεων με βήμα Τιμές [1, 3, 5, 8, 9] Loops Ενότητα 5
Επαναληπτικές Δομές Επιμορφωτικό Σεμινάριο στη Python for i in range(1,20,2): if i % 3 == 0: print “i= “, i break εντολή(ές) Πρόωρη έξοδος από την For Loops Ενότητα 5
Επαναληπτικές Δομές Επιμορφωτικό Σεμινάριο στη Python for i in range(3): print i else: εντολή(ές) For σε συνδυασμό με την... else ! Loops Ενότητα 5
Επαναληπτικές Δομές Επιμορφωτικό Σεμινάριο στη Python for i in list: εντολή(ές) Η For για λίστες Loops Ενότητα 5
Επαναληπτικές Δομές Επιμορφωτικό Σεμινάριο στη Python for i in : εντολή(ές) Η For για strings Loops Ενότητα 5
Άσκηση Να εμφανιστεί η προπαίδεια κάποιου αριθμού. Επιμορφωτικό Σεμινάριο στη Python Loops Ενότητα 5
Επαναληπτικές Δομές Επιμορφωτικό Σεμινάριο στη Python while : εντολή (ές) Για επαναλήψεις χωρίς σταθερό αριθμό επαναλήψεων ΠΡΟΣΟΧΗ : Αν δεν βάλουμε int στο while, η επανάληψη θα τρέχει για πάντα. Loops Ενότητα 5
Επαναληπτικές Δομές Επιμορφωτικό Σεμινάριο στη Python while : εντολή(ές) Για επαναλήψεις χωρίς σταθερό αριθμό επαναλήψεων ΠΡΟΣΟΧΗ : Αν δεν βάλουμε int στο while, η επανάληψη θα τρέχει για πάντα. Loops Ενότητα 5
Επαναληπτικές Δομές Επιμορφωτικό Σεμινάριο στη Python ΠΡΟΣΟΧΗ : Για μόνιμη επανάληψη, και έξοδο όταν συμβεί κάποιο γεγονός Loops Ενότητα 5
Επαναληπτικές Δομές Επιμορφωτικό Σεμινάριο στη Python while True:... if cond: break Αρχή_επανάληψης Μέχρις_ότου Ισοδυναμία Αρχής_Επανάληψης με Python Loops Ενότητα 5
Άσκηση Nα βρεθεί το άθροισμα των ακεραίων από το 1 μέχρι το 100 i = 0 sum = 0 while i <= 100: sum = sum + i i = i + 1 print sum >>> 5050 >>> Επιμορφωτικό Σεμινάριο στη Python Loops Ενότητα 5
Γεννήτρια τυχαίων αριθμών Επιμορφωτικό Σεμινάριο στη Python Η βιβλιοθήκη που παράγει τυχαίους αριθμούς είναι η random Υπάρχουν πάνω από μια μέθοδοι για την χρήση της Random module Ενότητα 6
Γεννήτρια τυχαίων αριθμών Επιμορφωτικό Σεμινάριο στη Python randrange ([start,] stop [,step])) Επιστρέφει τυχαίες τιμές από το start –μέχρι stop-1 0 <= τιμή < n Random module Ενότητα 6
Γεννήτρια τυχαίων αριθμών Επιμορφωτικό Σεμινάριο στη Python random.randrange (x,y) Επιστρέφει τυχαίες τιμές από το x - y x <= τιμή <= y Random module Ενότητα 6
Γεννήτρια τυχαίων αριθμών Επιμορφωτικό Σεμινάριο στη Python random.randrange (x,y,βήμα) Επιστρέφει τυχαίες τιμέςαπό το εύρος τιμών (χ, χ+βήμα, χ+2βήμα ….y ) x <= τιμή <= y Random module Ενότητα 6
Γεννήτρια τυχαίων αριθμών Επιμορφωτικό Σεμινάριο στη Python random.randint (start, stop) Επιστρέφει τυχαίες τιμές από το εύρος τιμών, με κλειστά όρια start <= τιμή <= stop Random module Ενότητα 6
Άσκηση Να γραφεί κώδικας ο οποίος να εμφανίζει τους τυχερούς αριθμούς του Joker Επιμορφωτικό Σεμινάριο στη Python Συνολικά θα κληρωθούν 5 αριθμοί από τους 45, που βρίσκονται μέσα στην κληρωτίδα, του βασικού κορμού του κουπονιού και 1 αριθμός Τζόκερ από τους 20 που βρίσκονται μέσα στην κληρωτίδα. Random module Ενότητα 6
Συναρτήσεις Επιμορφωτικό Σεμινάριο στη Python Οι συναρτήσεις είναι τμήματα κώδικα που δεν εκτελούνται αυτόματα, αλλά μόνο αν κληθούν. def function_name( variables): εντολή(ες) return τιμή Header Body Functions Ενότητα 7
Συναρτήσεις Επιμορφωτικό Σεμινάριο στη Python ΠΡΟΣΟΧΗ : Η μεταφορά των πραγματικών παραμέτρων ( z ), στις τυπικές ( χ ), γίνεται by value και όχι by reference. Functions Ενότητα 7
Συναρτήσεις Επιμορφωτικό Σεμινάριο στη Python Μια συνάρτηση μπορεί να μην δέχεται καμία τιμή και φυσικά να καλεί τον εαυτό της Functions Ενότητα 7
Άσκηση Επιμορφωτικό Σεμινάριο στη Python Να γραφεί κώδικας που με κλήση συνάρτησης με 1 παράμετρο n, να επιστρέφει το άθροισμα των ζυγών αριθμών από το 1 μέχρι το ν Functions Ενότητα 7
Είναι μια ακολουθία από στοιχεία List1 = [‘Mary’,’Panos’,’Alexia’] List 2 = [ 20, [1,2,3], 78, 22, [bananas, apples]] Λ Ι Σ Τ Ε Σ Επιμορφωτικό Σεμινάριο στη Python List1 = ['Mary','Panos','Alexia'] List2 = [20, [1,2,3], 78, 22,['bananas', 'apples']] print len (List2) print List2[1] print List2[4][0] Lists Ενότητα 7
Επιμορφωτικό Σεμινάριο στη Python Λ Ι Σ Τ Ε Σ - Λειτουργίες - Προσπέλαση Lists Ενότητα 7
Μέθοδοι Λιστών Επιμορφωτικό Σεμινάριο στη Python 1. Είναι ένα στοιχείο μέσα στη λίστα ; 2. Σε ποια θέση είναι ένα στοιχείο μέσα στη λίστα ; Lists Ενότητα 7
Μέθοδοι Λιστών 3. Πώς επεκτείνω την λίστα μου ; APPEND Lists Ενότητα 7 Επιμορφωτικό Σεμινάριο στη Python
Μέθοδοι Λιστών 4. Πώς διαγράφω στοιχεία από την λίστα μου ; POP 5. Πώς κρατώ το στοιχείο που διέγραψα ; Lists Ενότητα 7 Επιμορφωτικό Σεμινάριο στη Python
Μέθοδοι Λιστών 6. Πώς διαγράφω στοιχείο σε συγκεκριμένη θέση από την λίστα μου ; 7. Πώς διαγράφω συγκεκριμένη στοιχείο από την λίστα μου ; Lists Ενότητα 7 Επιμορφωτικό Σεμινάριο στη Python
Μέθοδοι Λιστών 8. Πώς διαγράφω στοιχείο σε συγκεκριμένη θέση από την λίστα μου, με index;
Άσκηση Να γραφεί κώδικας ο οποίος να δημιουργήσει την λίστα nums με ακεραίους από το 0 – 100 και να εμφανιστεί. Στη συνέχεια να παραχθεί μια λίστα με το όνομα odds που να περιέχει μόνο τους περιττούς αριθμούς της nums, και να εμφανιστεί. Lists Ενότητα 7 Επιμορφωτικό Σεμινάριο στη Python
Διαφορές Εντολών Διαγραφής στοιχείων της Λίστας a = [0, 2, 3, 4] a.remove(2) Διαγράφει το πρώτο 2 που θα βρεί Δεν επιστρέφει το διαγραμμένο στοιχείο [ 0, 3, 4] del a[1]Διαγράφει το στοιχείο στη θέση 1 [0, 3, 4] a.pop(2)Διαγράφει το στοιχείο στη θέση 2 (3), 3αλλά επιστρέφει και την τιμή του Lists Ενότητα 7 Επιμορφωτικό Σεμινάριο στη Python
Η συμβολοσειρά είναι μια ακολουθία από χαρακτήρες και μπορεί να αποτελείται από περισσότερες από μία λέξεις, με τις λέξεις να μπορούν να είναι στην Ελληνική Γλώσσα, στην Αγγλική ή σε κάθε γλώσσα που υποστηρίζεται από το πρότυπο Unicode. Μια συμβολοσειρά την ορίζουμε με εισαγωγικά αμφίπλευρα μονά ή διπλά. Μια συμβολοσειρά είναι αμετάβλητη. a= 'Καλημέρα ! ' b= 'Πως είστε ?' print a print a*2 print a+b >>> Καλημέρα ! Καλημέρα ! Πως είστε ? >>> Δομές Δεδομένων - Συμβολοσειρές (Strings) Strings Ενότητα 8 Επιμορφωτικό Σεμινάριο στη Python
Μήκος της συμβολοσειράς LEN (s) >>> s = 'Κωνσταντινούπολη' >>> print len(s) 16 >>> Εργασίες σε Συμβολοσειρές (Strings) Επιμορφωτικό Σεμινάριο στη Python Strings Ενότητα 8
Επιλογή συγκεκριμένου χαρακτήρα >>> s = 'Κωνσταντινούπολη' >>> print s[2] ν >>> Εργασίες σε Συμβολοσειρές (Strings) Επιμορφωτικό Σεμινάριο στη Python Strings Ενότητα 8
Επιλογή τμήματος συμβολοσειράς ( Slice ) >>> >>> s='Κωνσταντινούπολη' >>> print s[2:5] νστ >>> Εργασίες σε Συμβολοσειρές (Strings) Επιμορφωτικό Σεμινάριο στη Python Strings Ενότητα 8
Επιλογή χαρακτήρα της συμβολοσειράς από το τέλος >>> >>> s='Κωνσταντινούπολη' >>> print s[-1] η >>> Εργασίες σε Συμβολοσειρές (Strings) Επιμορφωτικό Σεμινάριο στη Python Strings Ενότητα 8
Πρόσθεση >>> >>> s='Κωνσταντινούπολη' >>> k='Βυζαντινή ' >>> a = k+s >>> print a Βυζαντινή Κωνσταντινούπολη >>> Πράξεις σε Συμβολοσειρές (Strings) Επιμορφωτικό Σεμινάριο στη Python Strings Ενότητα 8
Πολλαπλασιασμός >>> >>> s = "Hello !" >>> f = s*8 >>> print f Hello !Hello !Hello !Hello !Hello !Hello !Hello !Hello ! >>> Πράξεις σε Συμβολοσειρές (Strings) Επιμορφωτικό Σεμινάριο στη Python Strings Ενότητα 8
>>> >>> s='Κωνσταντινούπολη' >>> List1 = ['Mary','Panos','Alexia'] >>> >>> List1[1]='Bill' >>> print List1 ['Mary', 'Bill', 'Alexia'] >>> s[1]='o' Traceback (most recent call last): File " ", line 1, in s[1]='o' TypeError: 'str' object does not support item assignment >>> Η Λίστες αλλάζουν ενώ οι συμβολοσειρές όχι. Πράξεις σε Συμβολοσειρές (Strings) Επιμορφωτικό Σεμινάριο στη Python Strings Ενότητα 8
list1=[4,4,4,4] list2=['a','b','c','d'] print list1+list2 print list1 * 2 [4, 4, 4, 4, 'a', 'b', 'c', 'd'] [4, 4, 4, 4, 4, 4, 4, 4] Πρόσθεση - Πολλαπλασιασμός Λίστας Επιμορφωτικό Σεμινάριο στη Python Strings Ενότητα 8
a=[1,2,3,4] b=['a','b','c'] a.extend(b) print a a=[1,2,3,4] b=['a','b','c'] c=a+b print c [1, 2, 3, 4, 'a', 'b', 'c'] Extend : Συνένωση λιστών Επιμορφωτικό Σεμινάριο στη Python Strings Ενότητα 8
a = [1, 4, 3, 2] print sorted(a) print sorted(a,reverse=True) [1, 2, 3, 4] [4, 3, 2, 1] Ταξινόμηση Λιστών Επιμορφωτικό Σεμινάριο στη Python Strings Ενότητα 8
aList = [123, 'xyz', 'abc'] aList.insert( 2, 2009) print "Final List : ", aList Final List : [123, 'xyz', 2009, 'abc'] Εμβόλιμη εισαγωγή στοιχείου σε μια λίστα Επιμορφωτικό Σεμινάριο στη Python Strings Ενότητα 8
Δίνεται λίστα myList να βρεθεί το μέγιστο στοιχείο της και η θέση του. m = 0 mi = 0 for i in range (len(myList)): if m < myList[i]: m = myList[i] mi = i Άσκηση Επιμορφωτικό Σεμινάριο στη Python Strings Ενότητα 8
Δίνεται λίστα myList να βρεθεί το μέγιστο στοιχείο της και η θέση του ΧΩΡΙΣ ΤΗΝ ΒΟΗΘΕΙΑ ΤΩΝ ΔΕΙΚΤΩΝ m=0 for e in myList: if m<e: m=e mi=myList.index(m) print mi Εδώ υπάρχει ο κίνδυνος να γίνει ERROR αν όλα τα στοιχεία του πίνακα είναι 0 Άσκηση Επιμορφωτικό Σεμινάριο στη Python Strings Ενότητα 8
def newArray(size): array = [ ] for i in range(0,size): array.append( i ) return array table = newArray(10) print table [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] Δημιουργία Πίνακα Μονοδιάστατοι Πίνακες Επιμορφωτικό Σεμινάριο στη Python Arrays using Lists Ενότητα 9
Δημιουργία Μηδενισμένου Μονοδιάστατου Πίνακα table = [0] * 10 print table [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] Δημιουργία Μηδενισμένου Μονοδιάστατου Πίνακα Επιμορφωτικό Σεμινάριο στη Python Arrays using Lists Ενότητα 9
table = [0,1,2,3,4,5,6,7,8,9] for item in table: print item Σάρωση Μονοδιάστατου Πίνακα Επιμορφωτικό Σεμινάριο στη Python Arrays using Lists Ενότητα 9
table = [0,1,2,3,4,5,6,7,8,9] print sum(table) print max(table) print min(table) Συναρτήσεις σε Μονοδιάστατο Πίνακα Επιμορφωτικό Σεμινάριο στη Python Arrays using Lists Ενότητα 9
ΚΑΤΑΝΟΗΣΕΙΣ (Comprehensions) για λίστες και μονοδ. πίνακες Η κατανόηση είναι ένας συμπαγής τρόπος δημιουργίας της λίστας, με φυσικό, απλό και εύκολο τρόπο. [ expression for variable in list ] Comprehensions Επιμορφωτικό Σεμινάριο στη Python Comprehensions Ενότητα 10
array = [ ] for i in range(5): array.append(i) print array [0, 1, 2, 3, 4] array = [ i for i in range(5) ] Δημιουργία Λίστας / Πίνακα Επιμορφωτικό Σεμινάριο στη Python Comprehensions Ενότητα 10
Να γίνει λίστα με την σειρά 0, 1, 4, 9, 16, 25, 36, 49, 64, 81 myList = [ i*i for i in range (10) ] print myList [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] Άσκηση Επιμορφωτικό Σεμινάριο στη Python Comprehensions Ενότητα 10
Δημιουργία Πίνακα array=[] for i in range(3): temp=[] for j in range(3): temp.append(j) array.append(temp) print array [[0, 1, 2], [0, 1, 2], [0, 1, 2]] Βασικές Λειτουργίες σε Πίνακες Δύο Διαστάσεων Επιμορφωτικό Σεμινάριο στη Python Two Dinensional Arrays Ενότητα 11
for i in range(3): print array[i] [0, 1, 2] Εκτύπωση Δισδιάστατου Πίνακα (του προηγούμενου) Επιμορφωτικό Σεμινάριο στη Python Two Dinensional Arrays Ενότητα 11 [[0, 1, 2], [0, 1, 2], [0, 1, 2]]
for i in range(3): array[i][i]='*' for i in range(3): print array[i] ['*', 1, 2] [0, '*', 2] [0, 1, '*'] Αρχικοποίηση Κύριας Διαγωνίου (του προηγούμενου) Επιμορφωτικό Σεμινάριο στη Python Two Dinensional Arrays Ενότητα 11
for i in range(3): for j in range(3): if i ==1-j + 1: array[ i ][ j ]=‘*‘ [0, 1, '*'] [0, '*', 2] ['*', 1, 2] Αρχικοποίηση Δευτερεύουσας Διαγωνίου (του προηγούμενου) Επιμορφωτικό Σεμινάριο στη Python Two Dinensional Arrays Ενότητα 11
array=[] for i in range(3): temp=[] for j in range(3): temp.append(j) array.append(temp) array = [ [ j for j in range(3)] for i in range(3) ] [0, 1, 2] Δημιουργία Λίστας / Πίνακα με Comprehension Επιμορφωτικό Σεμινάριο στη Python Two Dinensional Arrays Ενότητα 11
array = [ [ 0 for j in range(3)] for i in range(3) ] [0, 0, 0] Μηδενισμός Λίστας / Πίνακα με Comprehension Επιμορφωτικό Σεμινάριο στη Python Two Dinensional Arrays Ενότητα 11
array=[] cnt = 0 for i in range(3): temp=[] for j in range(3): temp.append(cnt) cnt +=1 array.append(temp) for i in range(3): print array[i] [0, 1, 2] [3, 4, 5] [6, 7, 8] col1 = [ row[1] for row in array] print col1 [1, 4, 7] ΚΑΤΑΝΟΗΣΗ για λήψη στήλης από πίνακα 2 διαστάσεων Επιμορφωτικό Σεμινάριο στη Python Two Dinensional Arrays Ενότητα 11
ΚΑΤΑΝΟΗΣΗ για Δισδιάστατη Λίστα Δημιουργία Λίστας / Πίνακα με ακέραια πολλαπλάσια του 3 ή του 7 και άθροισμα τους nums = [ i for i in range (1,101) if i % 3 == 0 or i % 7 == 0 ] print nums print sum(nums) [3, 6, 7, 9, 12, 14, 15, 18, 21, 24, 27, 28, 30, 33, 35, 36, 39, 42, 45, 48, 49, 51, 54, 56, 57, 60, 63, 66, 69, 70, 72, 75, 77, 78, 81, 84, 87, 90, 91, 93, 96, 98, 99] 2208 Είσοδος - Έξοδος Δεδομένων Επιμορφωτικό Σεμινάριο στη Python Two Dinensional Arrays Ενότητα 11
Ένας σύνθετος τύπος του οποίου τα στοιχεία είναι αμετάβλητα (immutable), είναι η πλειάδα (tuple). Την χρησιμοποιούμε όταν θέλουμε να συγκρατήσουμε μαζί πολλαπλά αντικείμενα. Η συμπεριφορά τους είναι σαν τις λίστες αλλά είναι immutable ! Πλειάδες ( Tuples ) Επιμορφωτικό Σεμινάριο στη Python Tuples Ενότητα 12
a = 2,3,4 print a (2, 3, 4) Η σύνταξη των πλειάδων είναι είτε με απλή ισότητα στοιχείων με κόμμα, είτε με παρένθεση αντί για τετράγωνες αγκύλες a = (2,3,4) print a print a[1] (2, 3, 4) 3 Πλειάδες ( Tuples ) Επιμορφωτικό Σεμινάριο στη Python Tuples Ενότητα 12
Η βασική διαφορά με τις λίστες είναι στο ότι δεν μπορούμε να αλλάξουμε κάποιο από τα στοιχεία τους. Όπως και στις συμβολοσειρές. a = (3, 6) a[1] = 8 Line 5: TypeError: 'tuple' does not support item assignment Πλειάδες ( Tuples ) Επιμορφωτικό Σεμινάριο στη Python Tuples Ενότητα 12
Έστω θέλουμε να κάνουμε χρήση στοιχείων που δεν θέλουμε να αλλοιωθούν, όπως πχ σύνταξη πληροφορίας για μαθητές με ΑΜ, όνομα, Βαθμό Α’, Βαθμό Β’, Βαθμό Γραπτών Χρήσεις των πλειάδων Επιμορφωτικό Σεμινάριο στη Python Tuples Ενότητα 12
Ένα λεξικό είναι ουσιαστικά ένα σύνολο ζευγών κλειδιών - τιμών όπου κάθε κλειδί δεν εμφανίζεται δεύτερη φορά. days = {1:'Sunday', 2:'Monday', 3:'Tuesday'} print days[1] Sunday Λεξικά ( Dictionaries ) Επιμορφωτικό Σεμινάριο στη Python Dictionaries Ενότητα 13
days = {1:'Sunday',2:'Monday',3:'Tuesday'} print days print days[1] print len(days) del days[2] print days print 2 in days print 3 in days {1: 'Sunday', 2: 'Monday', 3: 'Tuesday'} Sunday 3 {1: 'Sunday', 3: 'Tuesday‘} False True Παραπάνω φαίνονται κάποιες λειτουργίες του λεξικού όπως η διαγραφή (del), και ο υπαρξιακός έλεγχος με τον τελεστή in. Λειτουργίες σε Λεξικά Επιμορφωτικό Σεμινάριο στη Python Dictionaries Ενότητα 13
students = {231:['Petridis',15,18,16],325:['Ioannidis',18,19,17]} print students students[444] = ['Georgiou',14,16,18] students[23]=['Papas',11,17,19] print students {231: ['Petridis', 15, 18, 16], 325: ['Ioannidis', 18, 19, 17]} {23: ['Papas', 11, 17, 19], 231: ['Ptridis', 15, 18, 16], 325: ['Ioannidis', 18, 19, 17], 444: ['Georgiou', 14, 16, 18]} Αν πάω να εισάγω και άλλον μαθητή με το κλειδί 23, θα αντικαταστήσει την υπάρχουσα τιμή με τη νέα τιμή ! ! Εισαγωγή στοιχείων στο λεξικό Επιμορφωτικό Σεμινάριο στη Python Dictionaries Ενότητα 13
Αναπαράσταση Γειτνίασης κόμβων γράφου με Λεξικό Επιμορφωτικό Σεμινάριο στη Python Dictionaries Ενότητα 13
Ένα σύνολο είναι μια ομάδα από μη διατεταγμένα αντικείμενα όπου κάθε αντικείμενο εμφανίζεται μια φορά. Τα σύνολα υποστηρίζουν τις γνωστές συνολοθεωρητικές πράξεις (ένωση, τομή, συμπλήρωμα). protoi = set([1,2,3,5,7]) Σύνολα Επιμορφωτικό Σεμινάριο στη Python Sets Ενότητα 14
protoi = set([1,2,3,5,7]) print protoi protoi.add(11) print protoi nums = set([1,2,3,4,5,6,7,8,9]) print nums print protoi.intersection(nums) print protoi.union(nums) print nums.difference(protoi) set([1, 2, 3, 5, 7]) set([1, 2, 3, 5, 7, 11]) set([1, 2, 3, 4, 5, 6, 7, 8, 9]) set([1, 2, 3, 5, 7]) set([1, 2, 3, 4, 5, 6, 7, 8, 9, 11]) set([4, 6, 8, 9]) Είσοδος - Έξοδος Δεδομένων Επιμορφωτικό Σεμινάριο στη Python Sets Ενότητα 14
1. Δημιουργούμε ένα αρχείο txt, και το αποθηκεύουμε πχ στο δίσκο C. ( Διαχείριση Αρχείων) Επιμορφωτικό Σεμινάριο στη Python Files Ενότητα 15
2.Για να ανοίξουμε το αρχείο c:\fruit.txt στη Python , γράφουμε την εντολή : >>> x=open ( 'c:\\fruit.txt','r’) Αν το αρχείο βρίσκεται στο φάκελο της Python, γράφουμε >>> x=open('fruit.txt','r') 3. Για να διαβάσουμε την πρώτη γραμμή του αρχείου, γράφουμε την εντολή : >>> print x.readline( ) και θα εμφανιστεί το apple Είσοδος - Έξοδος Δεδομένων Επιμορφωτικό Σεμινάριο στη Python Files Ενότητα 15
Αν γράφαμε την εντολή >>> print x.read() θα διάβαζε όλο το αρχείο. >>> >>> x=open('c:\\fruit.txt','r') >>> print x.read() apple pinapple orange pear grape watermelon banana >>> Είσοδος - Έξοδος Δεδομένων Επιμορφωτικό Σεμινάριο στη Python Files Ενότητα 15
Για να κλείσουμε το αρχείο, απλά γράφουμε την εντολή : >>> >>> x.close () >>> Παράμετροι ανοίγματος αρχείου : Είσοδος - Έξοδος Δεδομένων Επιμορφωτικό Σεμινάριο στη Python Files Ενότητα 15
f=open('c:\\fruit.txt','r') print ( f.name ) # recover name from file object print ( f. readlines( ) ) print ( f. readlines ( ) ) # already at end of file f.seek ( 0 ) # go back to byte 0 of the file print ( f.read( ) ) # read to EOF, returning bytes in a s tring f.close( ) >>> c:\fruit.txt ['blueberries\n', 'apple\n', 'orange\n', 'pear\n', 'grape\n', 'watermelon\n', 'banana'] [] blueberries apple orange pear grape watermelon banana >>> Είσοδος - Έξοδος Δεδομένων Επιμορφωτικό Σεμινάριο στη Python Files Ενότητα 15
Αντίστοιχα µε το διάβασµα από αρχείο, µπορούµε να κάνουµε την εγγραφή, µόνο που τώρα πρέπει να το καθορίσουµε, ϐ άζοντας το κατάλληλο όρισµα στην συνάρτηση open(). Προσοχή πρέπει να δοθεί µόνο στο γεγονός ότι µε τον τρόπο που ανοίγουµε τώρα το αρχείο, οποιαδήποτε άλλα περιεχόµενα του διαγράφονται. g = open ( ' new _ file ', 'w' ) # open for writing g. write ( 'A new file begins ' ) # takes just one argument g. write ( '... today !\n ' ) g.close() Είσοδος - Έξοδος Δεδομένων Επιμορφωτικό Σεμινάριο στη Python Files Ενότητα 15
Αν ϑ έλουµε να κρατήσουµε τα περιεχόµενα ενός αρχείου, και να προσθέσουµε κάποια άλλα, τότε πρέπει να ανοίξουµε το αρχείο µε την ειδική σηµαία για προσθήκη. Είσοδος - Έξοδος Δεδομένων Επιμορφωτικό Σεμινάριο στη Python Files Ενότητα 15
Μπορούµε να χρησιµοποιήσουµε ϐ ρόγχους for για να διατρέξουµε πάνω σε αρχεία (iterate), παίρνοντας για παράδειγµα µια µια τις γραµµές. Είσοδος - Έξοδος Δεδομένων Επιμορφωτικό Σεμινάριο στη Python Files Ενότητα 15
Υποστηρικτικό Υλικό Μπορείτε να βρείτε υλικό μαθημάτων για τις παραπάνω ενότητες στο wiki και στο μενού Μαθήματα http://pclub.wikispaces.com Και η παρουσίαση αυτή στο ίδιο wiki.