Κ.Π. Γιαλούρης
Στόχοι του σημερινού μαθήματος Χειρισμός εξαιρέσεων Μεταβλητές τύπου Tuple Dictionary Set 2
Χειρισμός εξαιρέσεων-δομή try: Εντολή-try-1 Εντολή- try- 2 Except Error_type : Εντολή exept_1.1 Εντολή exept_1.2. 3
Χειρισμός εξαιρέσεωντιμές εξαίρεσης ZeroDivisionError Διαίρεση δια του μηδενός IOError Σφάλμα εισόδου/εξόδου ValueError Σφάλμα αντιστοίχισης δεδομένων Πχ.Σφάλμα μετατροπής ενός string σε αριθμητική μεταβλητή KeyboardInterrupt Διακοπή της εκτέλεσης μέσω πληκτρολογίου 4
Χειρισμός εξαιρέσεων-δομή try: Εντολή-try-1 Εντολή- try- 2 except Exception as err: Εντολή exept_1.1 Εντολή exept_1.2. 5
Χειρισμός εξαιρέσεων-δομή try: Εντολή-try-1 Εντολή- try- 2 except Εxception as err: Εντολή exept_1.1 Εντολή exept_1.2. else: Εντολή exept_2.1 Εντολή exept_2.2. finally: Εντολή final_1 Εντολή final_2 6
Χειρισμός εξαιρέσεων-δομή try: arxeio = open("h:/arxeia/parag.txt",'r') for record in arxeio: print(record) pedia=record.split(",") code= int(pedia[0]) eponymo=pedia[1] print(code, eponymo) arxeio.close() except : print (" Λάθος όνομα αρχείου ") 7
Χειρισμός εξαιρέσεων-δομή try: arxeio = open("h:/arxeia/parag.txt",'r') for record in arxeio: print(record) pedia=record.split(",") code= int(pedia[0]) eponymo=pedia[1] print(code, eponymo) arxeio.close() except Exception as err: print (" Λάθος όνομα αρχείου ", err) 8
Χειρισμός εξαιρέσεων-δομή try: Εντολή-try-1 Εντολή- try- 2 except εξαίρεση_1: Εντολή exept_1.1 Εντολή exept_1.2. except εξαίρεση_2: Εντολή exept_2.1 Εντολή exept_2.2. finally: Εντολή final_1 Εντολή final_2 9
Χειρισμός εξαιρέσεωντιμές εξαίρεσης Περισσότερες εξαιρέσεις στη δ/νση https://www.tutorialspoint.com/python/python_exceptions.htm 10
Tuple Πλειάδα Μία tuple (πλειάδα) είναι μία αλληλουχία όπως και η λίστα. Διαφέρει ως προς τη λίστα όσον αφορά στο γεγονός ότι το περιεχόμενό της δεν μπορεί να αλλάξει. Δηλώνεται ως εξής: a=("νικος","πέτρος","μαρία") b=(4,3,5,6,2,-3) c=(1,) 11
Tuple Πλειάδα Πλεονέκτημα έναντι της λίστας Αυξάνει την ταχύτητα επεξεργασίας Υπάρχει ασφάλεια λόγω μη δυνατότητα μεταβολής 12
Tuple Πλειάδα Όπως και η λίστα η πλειάδα tuple υποστηρίζει τη διαχείριση των στοιχείων της μέσω δεικτών. Διατηρεί τις ίδιες λειτουργίες με τη λίστα εκτός αυτών που αλλάζει το περιεχόμενό της. 13
Tuple Πλειάδα Διαχείριση με δείκτες Μέθοδοι όπως index Συναρτήσεις len, min, max Εκφράσεις τεμαχισμού Τελεστές in + * 14
Dictionary Λεξικό Μία μεταβλητή τύπου dictionary (λεξικό) είναι συλλογή δεδομένων. Κάθε στοιχείο της συλλογής αυτής αποτελείται από δύο μέρη. Το πρώτο μέρος αναφέρεται ως κλειδί (key) και το δεύτερο μέρος ως τιμή(value) 15
Dictionary Λεξικό Μία μεταβλητή τύπου dictionary tuple (πλειάδα) είναι συλλογή δεδομένων. Κάθε στοιχείο της συλλογής αυτής αποτελείται από δύο μέρη. Το πρώτο μέρος αναφέρεται ως κλειδί (key) και το δεύτερο μέρος ως τιμή(value) Το κλειδί χρησιμοποιείται για τον εντοπισμό μιας τιμής. Σε κάθε κλειδί αντιστοιχεί μία τιμή 16
Dictionary Λεξικό -Δομή Δημιουργία ονομα_λεξικου= {} ονομα_λεξικου= {κλειδι1:τιμή1, κλειδι1:τιμή1, κλειδι1:τιμή1, } Ανάκτηση στοιχείου μέσω της: ονομα_λεξικού[κλειδί] Και το σύστημα επιστρέφει την τιμή εφόσον υπάρχει 17
Dictionary Λεξικό phone_list={4182:"γιαλούρης",4175:"λορέντζος",4183: "Κωστοπούλου"} print(phone_list[4175]) 18
Dictionary Λεξικό Διαγραφή στοιχείου σε λεξικό del Ονομα_λεξικού[κλειδί] Έστω το λεξικό: phone_list={4182:"γιαλούρης",4175:"λορέντζος",4183: "Κωστοπούλου"} Θέλουμε να διαγράψουμε την εγγραφή με κλειδί 4183 del phone_list[4183] 19
Dictionary Λεξικό Προσθήκη Ονομα_λεξικού[κλειδί]=τιμή Έστω το λεξικό: phone_list={4182:"γιαλούρης",4175:"λορέντζος",4183: "Κωστοπούλου"} Θέλουμε να προσθέσουμε μία εγγραφή που αφορά τον Μαλιάππη με κλειδί το 4451 Phone_list[4451]= "Μαλιάππης" 20
Dictionary Λεξικό Έστω το λεξικό: phone_list={4182:"γιαλούρης",4175:"λορέντζος",4183: "Κωστοπούλου"} έλεγχος αν υπάρχει εγγραφή με κλειδί 4451 print(4451 in phone_list) 21
Dictionary clear get items keys values διαγράφει το περιεχόμενο του λεξικού dictionary.clear επιστρέφει την τιμή ενός κλειδιού timi=dictionary.get(kleidi) επιστρέφει όλα τα κλειδιά & τιμές ενός λεξικού dictionary.items επιστρέφει όλα τα κλειδιά dictionary.keys επιστρέφει όλες τις τιμές ενός λεξικού dictionary.values 22
Set Ένα σύνολο set είναι συλλογή δεδομένων από μοναδικές τιμές. Τα στοιχεία ενός συνόλου δεν είναι διατεταγμένα Τα στοιχεία ενός συνόλου μπορεί να είναι διαφορετικού τύπου 23
Set Δημιουργία ονομα_συνόλου= set() Ονομα_συνόλου= set([στοιχείο-1, στοιχείο-ν]) Ονομα_συνόλου= set(string) 24
Set add update clear discard remove προσθέτει ένα στοιχείο σε σύνολο myset.add(στοιχείο) προσθέτει σε υπάρχον σύνολο τα στοιχεία ενός string myset.update(string) διαγράφει το περιεχόμενο του συνόλου myset.clear() διαγράφει ένα συγκεκριμένο στοιχείο από το σύνολο myset.discard(στοιχείο) διαγράφει ένα συγκεκριμένο στοιχείο από το σύνολο myset.remove(στοιχείο) 25
Set union intersection & difference symmetric_difference Ένωση δύο συνόλων newset=myset.union(oldset) Τομή δύο συνόλων newset=myset.intersection(oldset) Διαφορά δύο συνόλων newset=myset.difference(oldset) Συμμετρική διαφορά δύο συνόλων newset=myset.symmetric_difference(oldset) 26
Set In έλεγχος ύπαρξης στοιχείου σε σύνολο if x in myset >= έλεγχος για υποσύνολο issubset <= έλεγχος για υπερσύνολο issuperbset 27
Άσκηση 1 Ένας κτηνοτροφικός συνεταιρισμός διαθέτει σε ένα ψηφιακό αρχείο με όνομα PARAGOGI.TXT τα στοιχεία παραγωγής κρέατος ανά κτηνοτροφική μονάδα. Το αρχείο περιέχει τα εξής στοιχεία σφαγής: - Κωδικός μονάδας (ακέραιος) - Επωνυμία μονάδας (χαρακτήρες). - Κωδικός ζώου (5 ψήφιος ακέραιος) - Κωδικός είδους (μονοψήφιος ακέραιος, 1= μοσχάρι, 2=αρνί, 3=κατσίκι) - Ημέρα (2-ψήφιος ακέραιος) - Μήνας σφαγής (2-ψήφιος ακέραιος). - Έτος σφαγής (4-ψήφιος ακέραιος) - Ποσότητα κρέατος σε κιλά (πραγματικός). Να γραφεί πρόγραμμα που διαβάζει το αρχείο και: Υπολογίζει το ποσόν της επιδότησης που θα εισπράξει κάθε μονάδα για κάθε σφαγή. Η επιδότηση υπολογίζεται ως ποσό ανά κιλό κρέατος και είδος ζώου, ως εξής: Είδος ζώου Ποσό επιδότησης ανά κιλό Μοσχάρι 0.25 Αρνί 0.20 Κατσίκι 0.15 Για κάθε εγγραφή που αφορά σε σφαγή μοσχαριού εμφανίζει στην οθόνη τον κωδικό της μονάδας, την επωνυμία, την ποσότητα κρέατος και το ποσό επιδότησης. Τέλος το κύριο πρόγραμμα υπολογίζει και εμφανίζει στην οθόνη: Για κάθε μονάδα τη συνολική αξία επιδότησης Το συνολικό βάρος κρέατος ανά είδος Προγραμματισμός Υπολογιστών και Εφαρμογές 28