Παράδειγμα. print (random.sample('christos drosos',3)) #3 στοιχεία από το δείγμα print (random.gauss(0,1)) #μέση τιμή 0 και απόκλιση 1

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

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

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

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

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

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

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

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

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

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

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

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Υπολογισμός - Εντολές Ελέγχου

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

Pascal, απλοί τύποι, τελεστές και εκφράσεις

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

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

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

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

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

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

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

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

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

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

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

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

Νικόλαος Μιχαλοδημητράκης Σημειώσεις C (Εργαστήριο) 5 ο Μέρος 5 ο Μέρος Εντολές Επανάληψης: FOR - WHILE. Περιγραφή

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

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

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

Μάντεψε τον Αριθμό. Έχω Ένα Μυστικό. Το Βρήκα;

ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Σφάλματα, εξαιρέσεις, εκσφαλμάτωση Χειμερινό Εξάμηνο 2016

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη.

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

Εισαγωγή στη Matlab 2 Εισαγωγή στην Αριθμητική Ανάλυση Διδάσκων: Γεώργιος Ακρίβης Βοηθός: Δημήτριος Ζαβαντής

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ

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

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

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

Προσέξτε πως η παράσταση μπορεί να περιλαμβάνει όχι μόνο μία τιμή ή μια άλλη μεταβλητή αλλά μια ολόκληρη μαθηματική παράσταση, όπως η εξής:

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

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

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

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

Μάντεψε τον Αριθμό Φύλλο Εργασίας 2

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

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

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

4. Επιλογή και Επανάληψη

Προγραμματισμός Ι. Χαρακτήρες. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

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

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

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

Εισαγωγή στην Αριθμητική Ανάλυση

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

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

Εντολή Δεδομένα Περιεχόμενα μετά την εκτέλεση 1 read(x) 122 x= 2 read(a,b,c) a= b= c= 3 read(d,e)

ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PASCAL

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

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

Εντολές ελέγχου ροής if, for, while, do-while

Εισαγωγή στους Υπολογιστές

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

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

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

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

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

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

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

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

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

Μάντεψε τον Αριθμό. Ενδεικτικές Απαντήσεις Φύλλου Εργασίας. Οδηγίες

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

Διάλεξη 5η: Εντολές Επανάληψης

ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Επαναληπτικές Ασκήσεις Χειµερινό Εξάµηνο 2014

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

Ενότητα 3 ΕΙΣΑΓΩΓΗ ΣΤΗ ΓΛΩΣΣΑ PYTHON

Δύο είναι οι κύριες αιτίες που μπορούμε να πάρουμε από τον υπολογιστή λανθασμένα αποτελέσματα εξαιτίας των σφαλμάτων στρογγυλοποίησης:

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

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

Άσκηση 1. Α. Υπολογίστε χωρίς να εκτελέσετε κώδικα FORTRAN τα παρακάτω: Ποιά είναι η τελική τιμή του Z στα παρακάτω κομμάτια κώδικα FORTRAN:

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

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

ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Έλεγχος Ροής - Παραδείγµατα Χειµερινό Εξάµηνο 2014

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

ικτυακά Πολυμέσα Ι (Β Έτος, 3ο εξ) ιάλεξη #8η: Javascript: Τεχνικές εντοπισμού/διόρθωσης λαθών, τελεστές, δομές ελέγχου, βρόχοι επανάληψης

Παίρνοντας Αποφάσεις 1

Σημειώσεις. Ο αριθμός των στοιχείων μίας λίστας μπορεί να βρεθεί με χρήση της συνάρτησης len:

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

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

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

Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο. Τι θα τυπωθεί στον παρακάτω κώδικα;

Τυχαίοι αριθμοί ρίξε μια «ζαριά»

Μάντεψε τον Αριθμό. Φύλλο Εργασίας. Οδηγίες

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

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

scanf() scanf() stdin scanf() printf() int float double %lf float

Transcript:

Η συνάρτηση Random Η γεννήτρια ψευδοτυχαίων αριθμών της python χρησιμοποιεί τη μέθοδο Mersenne Twister, η οποία παράγει αριθμούς κινητής υποδιαστολής με ακρίβεια 53 bit και έχει περίοδο 2 19937 1. Η συνάρτηση random παράγει τυχαίους αριθμούς [0.0,1.0]. Για να χρησιμοποιήσουμε τη συνάρτηση πρέπει να κάνουμε Import τη μονάδα random : import random Συνάρτηση seed([a]) Περιγραφή Αρχικοποιεί τη γεννήτρια τυχαίων αριθμών. Χωρίς το όρισμα χρησιμοποιεί το ρολόϊ του συστήματος. Αν το όρισμα είναι μια σταθερά παράγεται η ίδια ακολουθία ψευδοτυχαίων random() Επιστρέφει έναν τυχαίο αριθμό κινητής υποδιαστολής στο διάστημα [0.0,1.0] randint(a,b) randrange(stop) Επιστρέφει έναν τυχαίο ακέραιο στο διάστημα [a,b] Επιστρέφει έναν τυχαίο ακέραιο με μέγιστη τιμή stop sample(population,k) gauss(mu,sigma) Επιστρέφει μια λίστα με k μοναδικά στοιχεία από την ακολουθία population. Κατανομή Gauss, το mu αντιστοιχεί στο μέσο όρο και sigma στην τυπική απόκλιση

Παράδειγμα import random print (random.seed()) #αρχικοπoίηση γεννήτριας print (random.random()) #δεκαδικό στο [0.0,1.0] print (random.randrange(10)) #ακέραιο απο 0 9 print (random.randrange(1,20,2)) #περιττό ακέραιο 1 εως 19 print (random.sample('christos drosos',3)) #3 στοιχεία από το δείγμα print (random.gauss(0,1)) #μέση τιμή 0 και απόκλιση 1

Λίγος κώδικας Να γραφεί πρόγραμμα σε Python το οποίο θα διαβάζει από το πληκτρολόγιο 3 ακέραιους συντελεστές μιας δευτεροβάθμιας εξίσωσης και θα υπολογίζει τις 2 ρίζες της, υποθέτοντας ότι η διακρίνουσα είναι θετική import math a=input('δώσε τον 1 αριθμό') b=input('δώσε τον 2 αριθμό') c=input('δώσε τον 3 αριθμό') a=int(a); b=int(b); c=int(c); #γιατι αλλιώς θα θεωρήσει τα a,b,c αλφαρηθμιτικά d=b**2-4*a*c print (d) d=math.sqrt(d) print ('η πρωτη ρίζα είναι', (-b+d)/(2*a)) print ('η δεύτερη ρίζα είναι', (-b-d)/(2*a))

Η εντολή if Η εντολή if χρησιμοποιείται όταν θέλουμε να εκτελείται μια σειρά εντολών εφόσον ισχύει μια συνθήκη 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: else: print('single') print('more') Η εντολή «elif» μπορεί και να παραληφθεί και η εντολή «else» είναι προαιρετική. Η Ακουλουθία των if elif elif είναι κάτι αντίστοιχο της εντολής «case» που υπάρχει σε άλλες γλώσσες.

Η εντολή for Η εντολή for στη Python διαφέρει λίγο σε σχέση με τη C++, καθώς το εύρος των επαναλήψεων αφορά το εύρος μιας ακολουθίας (λίστας ή αλφαριθμητικών) words = ['cat', 'window', 'defenestrate'] for w in words: print(w, len(w))

Η εντολή for for w in words[:]: # φτιάχνεται ένα αντίγραφο της λιστας για χρηση απο τη for. if len(w) > 6: words.insert(0, w) print (words) #θα τυπώσει τη νεα λίστα (['defenestrate', 'cat', 'window', 'defenestrate'])

Η εντολή for Εάν θέλουμε η εντολή for να εκτελεστεί για μια σειρά αριθμών τότε χρησιμοποιούμε και τη συνάρτηση range() : for i in range(5): print(i) Οι επαναλήψεις ξεκινάνε από i=0 μέχρι i=4, επίσης μπορούμε να μεταβάλουμε το εύρος και το βήμα των τιμών παίρνει το I στη συνάρτηση range(): range(5, 10) 5 through 9 range(0, 10, 3) 0, 3, 6, 9 range(-10, -100, -30) -10, -40, -70

Η εντολή for Αν θέλουμε να επιδράσουμε πάνω στους δείκτες μιας ακολουθίας τότε συνδυάζουμε τη range() με τη len(): for i in range(5): print(i) a = ['Mary', 'had', 'a', 'little', 'lamb'] for i in range(len(a)): print(i, a[i])

Η εντολή for Τι θα γίνει αν δώσετε την εντολή : print(range(10)) Θα σας δώσει ως αποτέλεσμα: range(0, 10) μπορεί να θεωρηθεί ότι το αντικείμενο range() είναι μια λίστα, αλλά στη πραγματικότητα δεν είναι. Είναι ένα αντικείμενο που επιστρέφει τα διαδοχικά στοιχεία της επιθυμητής ακολουθίας όταν το ζητάτε χωρίς να είναι μια πραγματική τη λίστα, εξοικονομώντας έτσι χώρο. Λέμε ότι ένα τέτοιο αντικείμενο είναι επαναληπτικό, ουσιαστικά δίνει είσοδο σε κάποια function για να παραχθεί μια έξοδος, εκτός από τη for η range() λειτουργεί σαν είσοδος και στην εντολή list η οποία δημιουργεί λίστες από τις επαναλήψεις. Η εντολή list(range(5)) θα δώσει σαν έξοδο: [0, 1, 2, 3, 4]

Η εντολή while Η εντολή επανάληψης while χρησιμοποιείται όταν θέλουμε να επαναλάβουμε μια εντολή ή μια συστάδα εντολών εφόσον ισχύει μια συνθήκη. Η σύνταξή της είναι η εξής: While <έκφραση> : εντολή Παράδειγμα: i=0 while i<30: print (i); i+=1 # i=i+1 Αν τρέξουμε το παραπάνω πρόγραμμα θα τυπώσει τα νούμερα από το 0 μέχρι το 29

Break, Continue και η εντολή else Η εντολή break στη python λειτουργεί όπως και στη C, διακόπτοντας ένα loop for ή ένα loop while πριν ολοκληρωθεί ο αριθμός των επαναλήψεων ή πάψει να ισχύει η συνθήκη Παράδειγμα: for n in range(2, 10): for x in range(2, n): else: if n % x == 0: print(n, 'equals', x, '*', n//x) break # η εντολή else χρησιμοποιείται μαζί με το for και θα εκτελεστή όταν δεν εκτελείται το break print(n, 'is a prime number')

Break, Continue και η εντολή else Η εντολή continue λειτουργεί και αυτή όπως στη c++ for num in range(2, 10): if num % 2 == 0: print("βρήκα έναν ζυγό αριθμό", num) continue print("βρήκα ένα μονό αριθμό", num)

pass Η εντολή pass δεν κάνει απολύτως τίποτα, συνήθως τη χρησιμοποιούμε σε κομμάτια κώδικα τα οποία δεν έχουμε ολοκληρώσει ακόμη έτσι ώστε να μην παίρνουμε μήνυμα σφάλματος κατά την μεταγλώττιση του υπόλοιπου προγράμματος : def initlog(*args): pass # Θυμήσου να το τελειώσεις

Εξαιρέσεις Όταν ξεκινάμε τον προγραμματισμό είναι φυσιολογικό να κάνουμε λάθη, τα συντακτικά λάθη τα αναγνωρίζει εύκολα ο διερμηνευτής της python βγάζοντάς μας ένα μήνυμα λάθους. Εκτός όμως από τα συντακτικά λάθη υπάρχουν και λάθη που συμβαίνουν κατ εξαίρεση με αποτέλεσμα το πρόγραμμα μας να καταρρέει, τέτοια λάθη είναι πχ η διαίρεση με το 0. Για αυτά τα λάθη που ονομάζονται εξαιρέσεις (exception) η Python έχει ένα πολύ καλό μηχανισμό για να τα αντιμετωπίζει. Ο χειρισμός γίνεται με την εντολή try-except: try: εντολές που μπορούν να προκαλέσουν εξαίρεση except τύπος_εξαίρεσης 1: εντολές χειρισμού εξαίρεσης 1 except τύπος εξαίρεσης 2: εντολές χειρισμού εξαίρεσης 2

Εξαιρέσεις Παράδειγμα : try: 1/0 except ZeroDivisionError: print ('προσοχη διαίρεση με το 0') Ο τύπος ZeroDivisionError αποτελεί την πρότυπη εξαίρεση για τη διαίρεση με το 0

Εξαιρέσεις Εξαίρεση TypeError ValueError OverflowError ImportError KeyboardInterrupt IndexError FloatingPointError OSError Συμβαίνει όταν Μια λειτουργία εφαρμόζεται σε λάθος τύπο δεδομένων Σε μια λειτουργία ο τύπος δεδομένων είναι μεν σωστός, η τιμή όμως είναι ακατάλληλη Σφάλμα υπερχείλισης. Το αποτέλεσμα μιας αριθμητικής πράξης είναι πολύ μεγάλο για να αναπαρασταθεί Η εντολή Import δεν μπόρεσε να εντοπίσει τη μονάδα προς εισαγωγή Ο χρήστης πάτησε το πλήκτρο διακοπής (Ctrl+c) Ο αριθμός δεικτοδότησης μιας ακολουθίας είναι εκτός επιτρεπτών ορίων Σφάλμα σε λειτουργία αριθμών κινητής υποδιαστολής Σφάλμα συστήματος πχ δίσκος γεμάτος, δεν βρέθηκε ο δισκος

Εξαιρέσεις try: Η εντολή try-except διαθέτει και αυτή ένα προαιρετικό τμήμα else, οι εντολές του οποίου εκτελούνται μόνο όταν δεν συμβεί κάποια εξαίρεση. Είναι προφανές ότι το τμήμα αυτό πρέπει έπεται όλων των εξαιρέσεων: num = int(input( Δώσε έναν ακέραιο: ')) print(num) except KeyboardInterrupt: print('\nγιατί πάτησες [Ctrl]+[C]?') except: else: print( Αναπάντεχο σφάλμα') print('thanx.')

Εξαιρέσεις try: Η εντολή try-except διαθέτει ένα ακόμη προαιρετικό τμήμα finally, το οποίο εκτελείται σε κάθε περίπτωση ανεξάρτητα αν συμβεί κάποια εξαίρεση ή όχι: x = float(input('give the dividend: ')) y = float(input('and the divisor: ')) result = x / y except ZeroDivisionError: print('division by zero!') except (ValueError, TypeError, NameError): print('invalid data!') except: else: print('trouble!!!') print('%.2f / %.2f is %.2f' % (x, y, result)) finally: print('cleaning up: This is the end my friend.') #3 εξαιρέσεις αν συμβεί μια θα εκτελεστή η από κάτω print

Εξαιρέσεις Η εντολή raise μας δίνει τη δυνατότητα να προκαλέσουμε εμείς δυναμικά μια εξαίρεση, μεταβιβάζοντάς της δυναμικά και ορίσματα για να διευκρινίσουμε τα τι ακριβώς προκάλεσε την εξαίρεση: x = -10 try: if x <= 0: raise Exception('I said only positive numbers!') except Exception as ex: print('error:', ex)

Παραδείγματα - Κώδικα (3.19) Να γραφεί πρόγραμμα το οποίο θα διαβάζει από το πληκτρολόγιο αριθμούς και έναν αριθμητικό τελεστή ως χαρακτήρα και θα εκτελεί τις 4 βασικές αριθμητικές πράξεις: invalid_op = False print("enter two numbers and an operator in ") print("the format 'number1 operator number2':") n1, op, n2 = input('').split() # με τη συνάρτηση input γίνεται η εισαγωγή των δεδομένων, η μέθοδος split() διαχωρίζει τα δεδομένα που πληκτρολογεί ο χρήστης με βάση το χαρακτήρα n1 = float(n1) # που τις δίνεται ως όρισμα, αν δεν δοθεί χρησιμοποιούνται οι λευκοί χαρκατήρες ( το κενό ή ο στηλοθέτης) n2 = float(n2) # μετατροπή σε πραγματικούς if op == '*': result = n1 * n2 elif op == '/': result = n1 / n2 elif op == '+': result = n1 + n2 elif op == '-': result = n1 - n2 else: invalip_op = True if invalid_op == True: print('invalid operator.') else: print('%.2f %s %.2f is %.2f' % (n1, op, n2, result))

Παραδείγματα - Κώδικα Να γραφεί πρόγραμμα που θα διαβάζει ένα θετικό ακέραιο από το πληκτρολόγιο και θα τυπώνει τα τετράγωνα όλων των προηγούμενων ακεραίων. # 3-20.py num = int(input('enter an positive integer: ')) #διαβάζουμε από το πληκτρολόγιο και τη μετατρέπουμε σε ακέραια if num >= 0: else: for n in range(num): #χρησιμοποιούμε τη range για να πάρουμε τη λίστα όλων των προηγούμενων αριθμών print('{0:3d} squared is {1:5d}'.format(n, n*n)) #με τη μέθοδο format κάνουμε στοίχιση δεξιά την πρώτη τιμή print('that\'s not a positive integer.') # {0} με ελάχιστο πλάτος 3 θέσεις και τη δεύτερη τιμή {1} με πλάτος 5 θέσεις

Παραδείγματα - Κώδικα Να γραφεί πρόγραμμα το οποίο να διαβάζει συνεχώς ακέραιους αριθμούς από το πληκτρολόγιο μέχρι να δοθεί η τιμή 0. Το πρόγραμμα θα μετράει και θα εμφανίζει το πλήθος των περιττών και άρτιων αριθμών που πληκτρολογήθηκαν: # 3-21.py odd = even = 0 print('enter integers, 0 to quit.') while True: num = int(input('give:')) #δημιουργούμε ένα βρόγχο που τρέχει συνεχώς if num == 0: #έλεγχος αν πατήθηκε το 0 break elif num % 2 == 1: #ελέγχουμε το υπόλοιπο της διαίρεσης αν είναι 1 έχουμε περιττό odd += 1 elif num % 2 == 0: even += 1 print('%d odd and %d even numbers entered.' % (odd, even)) #ο προσδιοριστής %d υποδηλώνει ακέραιες τιμές

Παραδείγματα - Κώδικα Να γραφεί πρόγραμμα το οποίο θα διαβάζει συνεχώς έναν χαρακτήρα από το πληκτρολόγιο και θα ελέγχει αν είναι κεφαλαίο λατινικό γράμμα: # 3-22.py while True: ch = input('enter only uppercase letters:') if ch not in "ABCDEFGHIJKLMNOPQRSTUVWXYZ": print("that's not an uppercase letter.") break

Παραδείγματα - Κώδικα Να γραφεί πρόγραμμα το οποίο θα διαβάζει από το πληκτρολόγιο μια λίστα δυαδικών αριθμών χωρισμένους με κόμμα και θα εμφανίζει στη δεκαδική τους μορφή μόνο όσους διαιρούνται με το 5 # 3-23.py data = input('enter comma separated binaries: ') for b in data.split(','): #η μέθοδος split() τεμαχίζει το αλφαριθμητικό με αναφορά το χαρακτήρα, number = int(b, 2) # base is 2 if not number % 5: print(number, end=' ') # η for μετατρέπει κάθε τμήμα του που αποτελείται από Δυαδικά ψηφία #στο δεκαδικό σύστημα #αν το υπόλοιπο είναι μηδέν τότε με τη προσθήκη του not η συνθήκη γίνεται αληθής

Παραδείγματα - Κώδικα Να γραφεί πρόγραμμα το οποίο να διαβάζει ένα αλφαριθμητικό και έναν χαρακτήρα και θα ελέγχει αν υπάρχει ο χαρακτήρας σε αυτό. Να δημιουργηθεί ένα νέο αλφαριθμητικό στο οποίο οι χαρακτήρες που δεν ταυτίζονται να αντικατασταθούν με τη κάτω παύλα: # 3-24.py string = input('enter a string: ') ch = input('enter a character to search: ') found = False output = '' for x in string: if x == ch: else: if found: else: output += ch found = True output += '_' print(output) # blank string for output #ελέγχουμε κάθε στοιχείο του αλφαριθμητικού με το χαρακτήρα print('character "%s" is not in "%s".' % (ch, string))

Παραδείγματα - Κώδικα Να γραφεί πρόγραμμα το οποίο να εμφανίζει τους πρώτους αριθμούς μέχρι τον αριθμό 30. # 3-25.py i = 1 print('the prime numbers until 30 are:') while i <= 30: c = 0; j = 1 while j < i: if i % j == 0: c += 1 j += 1 if c == 1: print(i, end=' ') i += 1

Παραδείγματα - Κώδικα Να γραφεί πρόγραμμα το οποίο να ζητάει από το χρήστη να μαντέψει ένα τυχαίο αριθμό από το 1 έως το 10 με 3 το πολύ προσπάθειες: # 3-26.py import random times = 1 rnum = random.randint(1, 10) #δημιουργία ενός τυχαίου ακέραιου από το 1 μέχρι το 10 while times <= 3: else: num = input('guess a number between 1 and 10: ') if rnum == num: print('correct!') break print('that\'s not my number') times += 1 print('blnt') # Better Luck Next Time ;-)

Παραδείγματα - Κώδικα Ο προηγούμενος κώδικας επιδέχεται βελτίωσης: # 3-26.py import random times = 1 rnum = random.randint(1, 10) while times <= 3: num = int(input('guess a number between 1 and 10: ')) if rnum == num: print('correct!') break if rnum > num: print('έδωσες μικρότερο αριθμό') if rnum < num: print('έδωσες μεγαλύτερο αριθμό') times += 1 else: print('o αριθμός είναι:',rnum) print('blnt') # Better Luck Next Time ;-)

Παραδείγματα - Κώδικα Να γραφεί ένα πρόγραμμα που θα μετατρέπει έναν ακέραιο στον αντίστοιχο δυαδικό. Το πρόγραμμα να μη δέχεται αρνητικούς αριθμούς και να χειρίζεται τις κατάλληλες εξαιρέσεις: # 3-27.py binary = '' try: number = int(input('enter a number to convert: ')) if number < 0: raise Exception('Positive integer please!') #αν ο χρήστης δώση αρνητικό αριθμό η raise εγείρει μια εξαίρεση elif number == 0: binary = '00000000' else: while number > 0: digit = str(number % 2) # 0 or 1 #Χρησιμοποιώντας το τελεστή υπολοίπου ακεραίας διαίρεσης με 2 εξάγουμε κάθε φορά το δεξιότερο δυαδικό ψηφίο binary = digit + binary # append digit #το οποίο και κάνουμε προσθήκη από τα αριστερά στο νέο αλφαρηθμιτικό number = number // 2 # integral division #Στη συνέχεια εκτελούμε ακέραια διαίρεση με το 2 για να υπολογίσουμε τον αριθμό που υπολείπεται αν αφαιρέσουμε το δεξιότερο bit if len(binary) < 8: # at last 8 digits for i in range(8 - len(binary)): binary = '0' + binary print('the binary representation is %s' % binary) except (ValueError, TypeError, ArithmeticError): print('that\'s not a valid input.') except Exception as ex: print(ex) #ελέγχουμε για τις εξαιρέσεις λάθος τιμής, λάθος τύπος, και η ArithmeticError είναι βασική εξαίρεση για τις αριθμητικές πράξεις #(OverflowError, ZeroDivisionError και FloatingPointError)

Παραδείγματα - Κώδικα Να γραφεί πρόγραμμα το οποί θα δημιουργήσει μια εξαίρεση του τύπου OverflowError: # 3-28.py try: x = 10.0 for i in range(1, 100): x = x ** I #υψώνοντας τη μεταβλητή x κάθε φορά στην επόμενη τιμή του I σύντομα θα συμβεί υπερχείλιση print(i, x) except OverflowError: print('overflowed after', x)

Παραδείγματα - Κώδικα Εγκατάλειψη ε φωλιασμένων βρόγχων προκαλώντας μια εξάιρεση: # 3-29.py band1 = 'Camel' band2 = 'Procol Harum' try: for char1 in band1.upper(): #ψάχνουμε να βρούμε το πρώτο κοινό χαρακτήρα των 2 for char2 in band2.upper(): #αλφαριθμητικών μόλις των βρούμε προκαλούμε μια εξαίρεση if char2 == char1: raise StopIteration() # raise exception except StopIteration: print('first common character is', char2)