Εισαγωγή στον Προγραμματισμό Python Μάθημα 1: Μεταβλητές, τελεστές, είσοδος/έξοδος προγράμματος, συνθήκη ελέγχου if Νοέμβριος 2014 Χ. Αλεξανδράκη, Γ. Δημητρακάκης
Σύνοψη Μαθήματος Προηγούμενο μάθημα Αλγόριθμοι και γλώσσες προγραμματισμού Σημερινό μάθημα Μεταβλητές και πράξεις Αριθμητικοί και Λογικοί Υπολογισμοί Εισαγωγή δεδομένων στο πρόγραμμα Ροή ελέγχου if
Python Είναι ίσως η απλούστερη γλώσσα για να ξεκινήσει κάποιος προγραμματισμό Ξεκίνησε να αναπτύσσεται στις αρχές τις δεκαετίας του 1990 από τον μαθηματικό Guido van Rossum και κυκλοφόρησε για πρώτη φορά το 2000. Χαρακτηριστικά Γενικής χρήσης (general- purpose) Υψηλού επιπέδου Είναι ως επί το πλείστον διερμηνευόμενη αλλά μπορεί να εκτελεστεί και ως υβριδική για ταχύτερη εκτέλεση Υφίσταται με διάφορες μορφές, δηλαδή υλοποιεί πολλαπλά προγραμματιστικά παραδείγματα: Procedural, Functional, Object Oriented
Πλεονεκτήματα Python Μπορεί κανείς να την χρησιμοποιήσει διαδραστικά (interactively) με τον ίδιο τρόπο που χρησιμοποιεί μια αριθμομηχανή. Κι αυτός είναι ο πιο εύκολος τρόπος να αρχίσει κανείς να μαθαίνει προγραμματισμό Αν και είναι γλώσσα υψηλού επιπέδου, διαθέτει πολύ απλή σύνταξη. Έχει φτιαχτεί εξ αρχής για αρχάριους προγραμματιστές. Μπορεί να συνδυαστεί με άλλες δημοφιλείς γλώσσες όπως C, C++ και Java Αποτελεί ελεύθερο και ανοιχτού κώδικα λογισμικό και διατίθεται δωρεάν από το επίσημο site http://www.python.org Υπάρχουν εκδόσεις για κάθε λειτουργικό σύστημα (ακόμα και για κινητά τηλέφωνα).
Το περιβάλλον της Python Γράφω τη λέξη python στο terminal, οπότε το linux prompt ($), αλλάζει στο python prompt () Εδώ πλέον εισάγω εντολές της python και όχι του linux cli Για να επιστρέψω στο Linux prompt θα πρέπει να γράψω πατήσω Control-D
Χρήση της Python ως Αριθμομηχανή print 5+3 8 print (7-2)*4 20 Η γλώσσα επιτρέπει τη χρήση παρενθέσεων. Όταν σε μια αριθμητική πράξη υπάρχουν πολλαπλές παρενθέσεις ενσωματωμένες η μία στην άλλη, πρώτα εκτελείται η εσωτερικότερη, όπως δηλαδή θα γινόταν και αν κάναμε στις πράξεις στο χαρτί, π.χ. (12+(12/3))/2 8 Επίσης μπορούμε να τυπώνουμε πολλά αποτελέσματα με την ίδια εντολή, αρκεί να χωρίζουμε με κόμματα: print 7+2, 7-2, 7*2, 7/2 9 5 14 3 Μια μικρή προσοχή χρειάζεται στην πράξη της διαίρεσης. Η Python εκτελεί ακέραια διαίρεση, εκτός αν δηλώσουμε ότι θέλουμε να κάνει διαίρεση πραγματικών αριθμών. Ο πιο απλός τρόπος να το δηλώσουμε αυτό είναι να γράψουμε τον διαιρετέο ή τον διαιρέτη (ή και τους δυο) ως πραγματικούς. Πχ.: print 7/2, 7/2.0, 7.0/2, 7.0/2.0, 7./2, 7/2., 7./2. 3 3.5 3.5 3.5 3.5 3.5 3.5 Για να υψώσω αριθμό σε δύναμη, μπορώ να χρησιμοποιώ το σύμβολο **, π.χ. 2**10 1024
Μεταβλητές (Variables) Στην αριθμομηχανή μπορώ να αποθηκεύσω έναν αριθμό με το πλήκτρο MR (memory register) για μετέπειτα χρήση. Στον προγραμματισμό, μπορώ να αποθηκεύω όσα δεδομένα θέλω με τη χρήση μεταβλητών, π.χ. a = 5 b = a**2 print a, b 5 25
Εκχώρηση τιμής σε μεταβλητή Εκχώρηση (Assignment) Είναι η διαδικασία κατά την οποία δίνω τιμή σε μια μεταβλητή Έχει πολύ συγκεκριμένη σύνταξη: a = 3 Και όχι το ανάποδο Η τιμή μιας μεταβλητής μπορεί να αλλάζει μέσω της εκχώρησης, όσες φορές θέλω κατά τη διάρκεια εκτέλεσης του προγράμματος, π.χ. a = 5 b = a**2 print a, b 5 25 a = b -2.3 a 22.7
Τύποι μεταβλητών στην Python Υπάρχουν οι ακόλουθοι τύποι: Ακέραιοι αριθμοί (integers) Πραγματικοί αριθμοί (Floats) Μιγαδικοί αριθμοί (Complex Numbers) Αλφαριθμητικά, δηλ. σειρές χαρακτήρων (String) Λογικές Μεταβλητές (Boolean) Παράδειγμα a = 3 b = 8.9 z = 3+5.6j message = "hello world!" sunny = True print a, b, z, message, sunny 3 8.9 (3+5.6j) hello world! True
Δήλωση Μεταβλητών Στις περισσότερες γλώσσες προγραμματισμού, απαιτείται πριν χρησιμοποιήσω μια μεταβλητή να τη δηλώσω. Στη δήλωση μεταβλητής(variable declaration) θα πρέπει να δηλώσω και τον τύπο της, π.χ. Στη C int i = 0; Στην python δεν απαιτείται η δήλωση μεταβλητής και επομένως ούτε ο καθορισμός του τύπου της. Για παράδειγμα: i=3 i = "Hello" print i Hello
Τελεστές (Operators) Οι τελεστές είναι ειδικά σύμβολα της γλώσσας τα οποία χρησιμοποιούνται είτε για υπολογισμό αριθμητικών πράξεων (arithmetic operators) είτε για σύγκριση τιμών (logical operators). Oι τιμές στις οποίες εφαρμόζεται ένας τελεστής ονομάζονται τελούμενα (operands). Οι τελεστές που χρησιμοποιούνται στην Python είναι οι ακόλουθοι: 1. Αριθμητικοί τελεστές (Arithmetic Operators) Πρόσθεση: + Αφαίρεση: - Πολλαπλασιαμός: * Διαίρεση: / Ύψωση σε δύναμη: ** Υπόλοιπο διαίρεσης(modulo): % 2. Λογικοί Τελεστές (Logical Opertors) Ίσο με - έλεγχος: == Διάφορο από:!= Μεγαλύτερο από: > Μικρότερο από: < Μεγαλύτερο ή ίσο: >= Μικρότερο ή ίσο: <= Και: and Ή : or
Πράξεις με λογικές μεταβλητές Παράδειγμα 1: a =3 a==5 False Παράδειγμα 2: a <= 3 and b > 5 True Παράδειγμα 3: sunny = False (a > 0 and b< 0) or sunny!= True True
Το πρώτο μας πρόγραμμα Επίλυση δευτεροβάθμιας εξίσωσης στο περιβάλλον της Python Για παράδειγμα: 3x 2 +5x+2 = 0, όπου
Επαναχρησιμοποίηση Κώδικα (Code Re-use) Για να μπορέσω να υπολογίσω τις λύσεις τριωνύμου με νέους συντελεστές α, β, γ, θα πρέπει να επανεκτελέσω τον ίδιο κώδικα Γενικότερα όταν θέλω μια διεργασία να τη χρησιμοποιήσω πολλές φορές, τότε μπορώ να αποθηκεύω τον κώδικά της σε ένα αρχείο και να εκτελώ το αρχείο.
Αρχεία κώδικα python Τον πηγαίο κώδικας της Python μπορούμε να τον αποθηκεύουμε σε ASCII αρχεία με την κατάληξη.py, π.χ. trionymo.py H επεξεργασία του κώδικα μπορεί να γίνει με οποιοδήποτε πρόγραμμα επεξεργασίας κειμένου (text editor), π.χ.: nano, sublime, notepad, vi Τέλος για να εκτελέσω κώδικα που βρίσκεται σε αρχείο, μπορώ στο terminal να δώσω την εντολή python, π.χ. $ python trionymo.py Προσοχή! Η εντολή αυτή εκτελείται στο linux prompt($) και όχι στο python prompt()
Εισαγωγή Δεδομένων στο Πρόγραμμα Είδαμε ότι με την εντολή print το πρόγραμμα εξάγει δεδομένα προς στο χρήστη, π.χ. a = 3 b = 8 print b**a 512 H αντίστροφη διαδικασία, δηλαδή το να εισάγει ο χρήστης δεδομένα στο πρόγραμμα επιτελείτε με την εντολή input(), π.χ. a=input() 4 print a 4 Προαιρετικά η εντολή input μπορεί να πάρει ένα όρισμα: b=input('δώσε έναν αριθµό: ') Δώσε έναν αριθµό: 12 print b 12 Με το όρισμα αυτό η εντολή input εκτυπώνει ένα μήνυμα προς το χρήστη.
Άσκηση 1 Τροποποιήστε το πρώτο πρόγραμμα (λύση δευτεροβάθμιας), ώστε οι συντελεστές a, b, c να εισάγονται στο πρόγραμμα από το χρήστη
Συνθήκη Ελέγχου if z = input ("Dose arithmo: " ) if z > 10: print "z megalytero apo 5" print " -----" elif z > 5: else: print "z megalytero apo 5 kai mikrotero tou 10" print "------" print "z mikrotero h iso me 5 " print "------" print " ==== end of program====="
Άσκηση 2 Να τροποποιήσετε το πρόγραμμα trionymo.py, ώστε να ελέγχει αν είναι θετική η διακρίνουσα και να εκτυπώνει μήνυμα για το εάν οι λύσεις τριωνύμου είναι πραγματικές ή μιγαδικές
Λύση: Επίλυση δευτεροβάθμιας σε Python ## Chrisoula Alexandraki ## Epilysh deyterovathmias eksisosis (trionymo) a = input("dose syntelestia: ") b = input("dose syntelestib: ") c = input("dose syntelestic: ") diakr = b**2-4*a*c if diakr < 0: #metatropi diakrinousas se migadiko arithmo diakr = diakr +0j #ypologismos lyseon x1 = (-b+diakr**0.5)/(2*a) x2 = (-b-diakr**0.5)/(2*a) #ektyposi lyseon print"to trionymo exei tis eksis lyseis: x1 = ", x1, "x2 = ", x2