Γλώσσες Προγραμματισμού Εφαρμογών - ΜΕΠΒ20

Σχετικά έγγραφα
Βασικά στοιχεία γλώσσας προγραμματισμού. Σπάχος Κυριάκος Καθηγητής Πληροφορικής ΠΕ19

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

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

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

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

Διάλεξη 1. Πράξεις Τελεστές Έλεγχος Ροής

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

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

Εισαγωγή στην γλώσσα προγραμματισμού C

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

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor

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

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

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

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

ΚΕΦΑΛΑΙΟ 3. Εκφράσεις, τελεστές, σχόλια. 3.1 Εισαγωγή

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

2.1. Εντολές Σχόλια Τύποι Δεδομένων

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

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

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

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

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

Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Είσοδος/Έξοδος Μεταβλητές Τύποι Μεταβλητών Τελεστές και Προτεραιότητα Μετατροπές Μεταξύ Τύπων

a = 10; a = k; int a,b,c; a = b = c = 10;

Στοιχειώδης προγραμματισμός σε C++

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

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

Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο)

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

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

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

Εντολές επιλογής Επαναλήψεις (if, switch, while)

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος

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

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

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

ΗΥ-150. Προγραμματισμός

> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό

ΗΥ-150. Προγραμματισμός

Γλώσσες Προγραμματισμού Εφαρμογών - ΜΕΠΒ20

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

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

Λογικές εκφράσεις και μεταβλητές

Βασικά στοιχεία της Java

Προγραμματισμός Υπολογιστών & Εφαρμογές Python. Κ.Π. Γιαλούρης

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

Εξαιρέσεις Εισαγωγή. Εξαιρέσεις. ηµήτρης Λεβεντέας

Γλώσσες Προγραμματισμού Εφαρμογών - ΜΕΠΒ20

3. Εκφράσεις και έλεγχος ροής

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

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

Προγραμματισμός ΗΥ και Υπολογιστική Φυσική. Χρήστος Γκουμόπουλος

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

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

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

ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου

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

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

Τύποι δεδομένων, τελεστές, μεταβλητές

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

Δεδομένα, τελεστές, είσοδος/έξοδος

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

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

3 ο Εργαστήριο Μεταβλητές, Τελεστές

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

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

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

ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Εισαγωγή στην Python Χειµερινό Εξάµηνο 2014

Βασικά στοιχεία γλώσσας προγραμματισμού

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 2 Εντολές Εισόδου/Εξόδου Τελεστές. Δρ. Γιώργος Λαμπρινίδης 23/10/2015 Η - Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1

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

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

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

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

Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS.

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

ΚΕΦΑΛΑΙΟ 2. Τιμές, τύποι, μεταβλητές, λέξεις-κλειδιά, εντολές. 2.1 Εισαγωγή

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

5 &6. Τύποι δεδομένων, τελεστές και

8. Συνθήκες ελέγχου, λογικοί τελεστές

Υπολογισμός - Εντολές Επανάληψης

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

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ

ΑΣΚΗΣΗ 3: ΠΡΟΤΑΣΕΙΣ, ΕΚΦΡΑΣΕΙΣ ΚΑΙ ΤΕΛΕΣΤΕΣ

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

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

Εντολές εισόδου - εξόδου. Εισαγωγή στη C++

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Εκχώρηση Τιμών

Transcript:

Γλώσσες Προγραμματισμού Εφαρμογών - ΜΕΠΒ20 Διάλεξη 2 Τύποι, Υπό Όρους Εκτέλεση Παπαϊωάννου Αθανάσιος Π.Μ.Σ. «Εφαρμοσμένη Πληροφορική» Χειμερινό Εξάμηνο 20 16-20 17

Αριθμητικές Εκφράσεις Τελεστής Πράξη + Πρόσθεση - Αφαίρεση * Πολλαπλασιασμός / Διαίρεση ** Δύναμη % Υπόλοιπο

Κανόνες Προτεραιότητας Τελεστών Υψηλότερη προτεραιότητα σε χαμηλότερη προτεραιότητα: Οι παρενθέσεις πάντα αποτιμώνται πρώτες Η (ύψωση σε δύναμη) Πολλαπλασιασμός, Διαίρεση και Υπόλοιπο Πρόσθεση και Αφαίρεση Αριστερά προς δεξιά Παρένθεση Δύναμη Πολλ/ σμός Πρόσθεση Αριστερά προς Δεξιά

1 + 2 ** 3 / 4 * 5 >>> x = 1 + 2 ** 3 / 4 * 5 >>> print(x) 11 >>> Παρένθεση Δύναμη Πολλ/ σμός Πρόσθεση Αριστερά προς Δεξιά 1 + 8 / 4 * 5 1 + 2 * 5 1 + 10 11

Τι σημαίνει Τύπος? Στη Python οι μεταβλητές, οι κύριες λέξεις και οι σταθερές έχουν έναν τύπο type Η Python γνωρίζει τη διαφορά μεταξύ ενός ακεραίου και μίας σειράς Για παράδειγμα το + σημαίνει πρόσθεση εαν κάτι είναι αριθμός και συνένωση αν κάτι είναι σειρά >>> ddd = 1 + 4 >>> print(ddd) 5 >>> eee = 'hello ' + 'there' >>> print(eee) hello there συνένωση = βάζω μαζί

Ο Τύπος Έχει Σημασία Η Python γνωρίζει τι τύπος είναι καθετί Κάποιες πράξεις δεν είναι εφικτές Δεν μπορείς να προσθέσεις 1 σε μία σειρά Μπορούμε να ρωτήσουμε την Python τι τύπος είναι κάτι χρησιμοποιώντας την εντολή type() >>> eee = 'hello ' + 'there' >>> eee = eee + 1 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: cannot concatenate 'str' and 'int' objects >>> type(eee) <type 'str'> >>> type('hello') <type 'str'> >>> type(1) <type 'int'> >>>

Διάφοροι Τύποι Αριθμών Οι αριθμοί έχουν δύο κύριους τύπους Οι ακέραιοι είναι οι αριθμοί χωρίς δεκαδικά ψηφία: -14, -2, 0, 1, 10 0, 40 1233 Οι αριθμοί με κινητή υποδιαστολή έχουν δεκαδικά μέρη: -2.5, 0.0, 98.6, 14.0 Υπάρχουν και άλλοι τύποι αριθμών - υπάρχουν παραλλαγές στους αριθμούς με κινητή υποδιαστολή και στους ακεραίους >>> xx = 1 >>> type (xx) <class 'int'> >>> temp = 98.6 >>> type(temp) <class 'float'> >>> type(1) <class 'int'> >>> type(1.0) <class 'float'> >>>

Μετατροπές Τύπου Όταν βάζεις έναν ακέραιο και έναν αριθμό με δεκαδικά ψηφία σε μία έκφραση, ο ακέραιος εμμέσως μετατρέπεται σε αριθμό με δεκαδικά ψηφία Αυτό μπορείς να το ελέγξεις με τις ενσωματωμένες εντολές int() και float() >>> print( float(99) / 100 ) 0.99 >>> i = 42 >>> type(i) <class 'int'> >>> f = float(i) >>> print( f ) 42.0 >>> type(f) <class 'float'> >>> print(1 + 2 * float(3) / 4 5) -2.5 >>>

Μετατροπές Σειρών Μπορείς επίσης να χρησιμοποιήσεις την int() και την float() για μετατροπές μεταξύ σειρών και ακεραίων Θα πάρετε ένα μήνυμα λάθους αν η σειρά δεν περιέχει αριθμητικούς χαρακτήρες >>> sval = '123' >>> type(sval) <class 'str'> >>> print(sval + 1) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: cannot concatenate 'str' and 'int' >>> ival = int(sval) >>> type(ival) <class 'int'> >>> print ival + 1 124 >>> nsv = 'hello bob' >>> niv = int(nsv) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: invalid literal for int()

Εισαγωγή από τον Χρήστη Μπορούμε να αναθέσουμε στη Python να παγώσει το πρόγραμμα και να διαβάσει δεδομένα από τον χρήστη χρησιμοποιώντας την nam = input( Who are you? ) Print('Welcome', nam) εντολή input() Η εντολή input() επιστρέφει σειρά Who are you? Chuck Welcome Chuck

Μετατρέποντας την Είσοδο του Χρήστη Αν θέλουμε να διαβάσουμε έναν αριθμό από τον χρήστη, πρέπει να τον μετατρέψουμε από σειρά σε αριθμό χρησιμοποιώντας μία εντολή inp = input( Europe floor? ) usf = int(inp) + 1 print 'US floor', usf μετατροπής τύπου Αργότερα θα ασχοληθούμε με τη μη ορθή είσοδο Europe floor? 0 US floor 1 δεδομένων

Booleans: Ένας νέος τύπος Μπορούν να πάρουν δύο τιμές True, False. Έχουν 3 τελεστές: not, and, or. Το not αλλάζει το True σε False και το αντίστροφο. Το and επιστρέφει False εκτός κι αν όλοι οι τελεστέοι είναι True. Το or επιστρέφει True εκτός κι αν όλοι οι τελεστέοι είναι False. Η Python ορίζει τον τύπο bool για τις εκφράσεις Boolean Η bool(x) μπορεί να χρησιμοποιηθεί για μετατροπή του x σε Boolean

Πώς αποτιμούμε εκφράσεις Boolean Μπορούμε να χρησιμοποιήσουμε τους τελεστές: <,>,<=,>=,!=, == Είναι όλοι συγκριτικοί τελεστές που επιστρέφουν True ή False. == είναι ο τελεστής ισότητας.!= είναι ο τελεστής διαφορετικότητας.

Εκφράσεις Boolean Μπορούμε να συνδυάσουμε λογικούς τελεστές (and, or, not) και συκγριτικούς τελεστές (<,>,κλπ) και αριθμητικούς τελεστές (+,-,*, κλπ). 5+7<4*3 or 1-2 >2-4 and 15==4 είναι νόμιμη έκφραση. Οι αριθμητικές εκφράσεις αποτιμώνται πρώτες, μετά οι συγκριτικές και μετά οι λογικές. Το False αναπαρίσταται στον υπολογιστή ως 0, και το True αναπαρίσταται ως 1. Μπορεί να οδηγήσει σε περίεργα αποτελέσματα αν κάποιος το χρησιμοποιήσει αυτό αριθμητικά.

Τελεστές Σύγκρισης Οι Boolean εκφράσεις κάνουν μία ερώτηση και παράγουν ένα αποτέλεσμα Ναι ή ένα Όχι που χρησιμοποιούμε για να ελέγξουμε τη ροή του προγράμματος Οι Boolean εκφράσεις χρησιμοποιούν τελεστές σύγκρισης οι οποίοι αξιολογούν σε - Αληθές / Ψευδές - Ναι / Όχι Οι τελεστές σύγκρισης κοιτούν τις μεταβλητές αλλά δεν τις αλλάζουν Python Σημασία < Μικρότερο Από <= Μικρότερο / Ίσο Από == Ίσο με >= Μεγαλύτερο / Ίσο Από > Μεγαλύτερο Από!= Άνισο με Να Θυμάστε: = χρησιμοποιείτε για εκχώρηση.

Παράκαμψη Αποτίμησης Boolean Η Python εξακολουθεί την αποτίμηση μιας έκφρασης boolean μόνο εφόσον η απάντηση δεν είναι ξεκάθαρη. Θα σταματήσει όταν η απάντηση είναι ξεκάθαρη. Αυτό, σε συνδυασμό με τη φύση της αναπαράστασης μιας έκφρασης boolean μπορεί να οδηγήσει σε παράξενη συμπεριφορά. Το να βασίζεται κανείς σε αυτή τη συμπεριφορά αποτελεί κακό προγραμματιστικό στυλ.

Συμβουλή στυλ για τους boolean Αν είστε αβέβαιοι για την προτεραιότητα, χρησιμοποιήστε παρενθέσεις. Βοηθούν στην αναγνωσιμότητα. Επίσης, χρησιμοποιήστε παρενθέσεις για πολύπλοκες εκφράσεις. Απλοποιήστε όσο γίνεται τις εκφράσεις Boolean. Απαλλαχτείτε από διπλές αρνήσεις, κλπ.

Χρησιμοποίηση Μεταβλητών Boolean Κάποιες φορές θέλουμε να κάνουμε τον κώδικά μας να εκτελείται κατά περίπτωση. Χρησιμοποιούμε εκφράσεις boolean για να εκτελούμε επιλεκτικά μπλοκ κώδικα με εντολές if.

Δομή Εντολής If Η γενική μορφή μιας εντολή if είναι: if συνθήκη: μπλοκ Η συνθήκη είναι μια έκφραση boolean. Το μπλοκ είναι μια ακολουθία από εντολές. Παράδειγμα: if grade >= 5: print ( pass )

x = 5 X < 10? Yes Βήματα Υπό Όρους Πρόγραμμα: No print 'Smaller' x = 5 Έξοδος: if x < 10 : X > 20? Yes print ('Smaller ) Smaller Finis No print 'Bigger' if x > 20 : print ('Bigger ) print 'Finis' print ('Finis )

Μονόδρομες Αποφάσεις x = 5 print 'Before 5' if x == 5 : print('is 5 ) print('is Still 5 ) print('third 5 ) print 'Afterwards 5 print 'Before 6 if x == 6 : print('is 6 ) print('is Still 6 ) print('third 6 ) print 'Afterwards 6' Before 5 Is 5 Is Still 5 Third 5 Afterwards 5 Before 6 Afterwards 6 X == 5? Yes No print 'Is 5' print 'Still 5' print 'Third 5'

αύξηση / διατήρηση μετά το if ή το for μείωση για να δείξουμε το τέλος του μπλοκ x = 5 if x > 2 : print('bigger than 2 ) print('still bigger ) Print('Done with 2 ) for i in range(5) : print(i) if i > 2 : print('bigger than 2 ) print('done with i', i) print('all Done )

Γενική Μορφή Εντολής if if συνθήκη1: μπλοκ elif συνθήκη2: μπλοκ elif συνθήκη3: μπλοκ else: μπλοκ Η Python αποτιμά τις συνθήκες με τη σειρά. Εκτελεί το μπλοκ της πρώτης συνθήκης (και μόνο της πρώτης) που είναι true. Το τελικό else είναι προαιρετικό.

Πολλαπλοί Δρόμοι x < 2 yes print 'small' if x < 2 : print('small ) elif x < 10 : print('medium ) else : print('large ) print 'All done' no x < 10 no print 'LARGE' yes print 'Medium' print 'All Done'

Πολλαπλοί Δρόμοι x = 0 x < 2 yes print 'small' x = 0 if x < 2 : print('small ) elif x < 10 : print('medium ) else : print('large ) print('all done ) no x < 10 no print 'LARGE' yes print 'Medium' print 'All Done'

Παζλ Πολλαπλών Δρόμων Ποιο δεν θα εκτυπωθεί ποτέ? if x < 2 : print('below 2 ) elif x >= 2 : print('two or more ) else : print('something else ) if x < 2 : print 'Below 2' elif x < 20 : print 'Below 20' elif x < 10 : print 'Below 10' else : print 'Something else'

Η Δομή try / except Περιτριγυρίζεις ένα επικίνδυνο τμήμα του κώδικα με το try και except Αν ο κώδικας μέσα στο try δουλεύει - το except δεν εκτελείται Αν ο κώδικας μέσα στο try δεν δουλεύει - μεταπηδάει στο τμήμα except

$ cat notry.py astr = 'Hello Bob' istr = int(astr) print 'First', istr astr = '123' istr = int(astr) print 'Second', istr $ python notry.py Traceback (most recent call last): File "notry.py", line 2, in <m odule> istr = int(astr)valueerror: invalid literal for int() with base 10 : 'Hello Bob' Ολοκληρώθηκε

Το πρόγραμμα σταματά εδώ $ cat notry.py astr = 'Hello Bob' istr = int(astr) print 'First', istr astr = '123 istr = int(astr) print 'Second', istr $ python notry.py Traceback (most recent call last): File "notry.py", line 2, in <m odule> istr = int(astr)valueerror: invalid literal for int() with base 10 : 'Hello Bob' Ολοκληρώθηκε

$ cat tryexcept.py astr = 'Hello Bob' try: istr = int(astr) except: istr = -1 print 'First', istr astr = '123' try: istr = int(astr) except: istr = -1 print 'Second', istr Όταν η πρώτη συζήτηση αποτυγχάνει - πέφτει στο except: και το πρόγραμμα συνεχίζει. $ python tryexcept.py First -1 Second 123 Όταν η δεύτερη συζήτηση επιτυγχάνει - δεν εκτελείται η συνθήκη except: και το πρόγραμμα συνεχίζει.

try / except astr = 'Bob' astr = 'Bob' try: print 'Hello' istr = int(astr) print 'There' except: istr = -1 print 'Done', istr print 'Hello' istr = int(astr) print 'There' print 'Done', istr istr = -1 Δίχτυ Ασφαλείας

Δείγμα try / except rawstr = input('enter a number:') try: ival = int(rawstr) except: ival = -1 if ival > 0 : print 'Nice work' else: print 'Not a number' $ python trynum.py Enter a number:42 Nice work $ python trynum.py Enter a number:forty-two Not a number $

Πρωτότυπα (Modules) Μερικές φορές θέλουμε να χρησιμοποιήσουμε τον κώδικα άλλων. Η να κάνουμε τον κώδικά μας διαθέσιμο για τους άλλους. Θα ήταν βολικό να ομαδοποιούσαμε κάποιες εντολές ή συναρτήσεις σε κάποιο αρχείο. Τα Modules μας επιτρέπουν να το κάνουμε αυτό. Ένα Module είναι ένα αρχείο με σχετικές μεταξύ τους συναρτήσεις, εντολές και μεταβλητές.

Χρησιμοποίηση modules Για να χρησιμοποιήσουμε ένα module, πρέπει προηγουμένως να εκτελέσουμε import module. Το import module καλεί την python να εκτελέσει κάθε εντολή του module. Συνήθως αυτό είναι δηλώσεις συναρτήσεων που εκτελούνται πολύ γρήγορα. Αλλά μπορεί να εκτελεστούν και κομμάτια κώδικα που δεν χρειαζόμαστε μέσα στο module. Για να χρησιμοποιήσει κανείς μια συνάρτηση που έχει οριστεί σε ένα module χρησιμοποιούμε: module_name.function_name() Μπορούμε επίσης να εκτελέσουμε ένα module, δηλ. python module. Σε αυτή την περίπτωση μπορούμε να χρησιμοποιήσουμε μόνο του το function_name() μέσα στο module

name Επιπρόσθετα στις μεταβλητές που ορίζονται σε ένα module, κάθε module έχει μια μεταβλητή που ονομάζεται name. Όταν κάνουμε import ένα module που ονομάζεται module_m, τότε module_m. name == module_m Αλλά αν εκτελούμε το module, τότε name == main Θυμηθείτε ότι όταν εκτελούμε το module, δε χρειαζόμαστε το όνομα του module σαν πρόθεμα στην κλήση συναρτήσεων του module.

Άλλος τρόπος που κάνουμε import from module_name import fn_name1(), fn_name2() Θα κάνει import τις συναρτήσεις fn_name1 και fn_name2 Αυτές μπορούν να χρησιμοποιηθούν απευθείας με το όνομά τους, π.χ. fn_name1() Μπορούμε επίσης να χρησιμοποιήσουμε τον * για να κάνουμε import όλες τις συναρτήσεις ενός module: from module_name import * Τί γίνεται όταν δύο module έχουν συναρτήσεις με το ίδιο όνομα; Ο πιο πρόσφατος ορισμός θα είναι αυτός που θα αναφερόμαστε σε κάθε χρήση της συνάρτησης.

Μέθοδοι ενός Module Είδαμε ότι τα modules μπορούν να έχουν τις δικές τους συναρτήσεις. Το ίδιο ισχύει και για τις μεταβλητές και τις τιμές. Οι μεταβλητές έχουν τιμές τις οποίες μπορεί κανείς να μεταβάλει με κάποιο τρόπο. Αυτός ο τρόπος είναι οι μέθοδοι. Αυτές καλούνται με value.fn_name() για μια τιμή value Και αν αναθέσαμε μια τιμή σε μια μεταβλητή variable_name με variable_name.fn_name() Μπορούμε να καλέσουμε help(module) για να μάθουμε ποιες μεθόδους έχει διαθέσιμεςένα module ή ένας τύπος μεταβλητής.

Εντοπισμός Modules Ο διερμηνευτής Python ψάχνει για modules με τη σειρά στα παρακάτω: Τον τρέχον κατάλογο εκτέλεσης Αν το module δε βρεθεί, τότε ψάχνει κάθε κατάλογο στην μεταβλητή περιβάλλοντος PYTHONPATH Αν και πάλι δε βρεθεί, ψάχνει στους καταλόγους όπου βρίσκονται οι βιβλιοθήκες της python Η μεταβλητή sys.path περιέχει όλα τα μονοπάτια αναζήτησης module

Περίληψη Βασικοί τύποι εκφράσεων: αριθμοί, συμβολοσειρές, boolean Μετατροπή τύπων Δομή if Δομή try / except Python modules