Βασικές Ασκήσεις από τα Εργαστήρια της Python. Πέμπτη Εργ. 3 17:15 και 19:15

Σχετικά έγγραφα
Βασικά Στοιχεία Python 3

ΠΛΗΡΟΦΟΡΙΚΗ Ι (Python) Ενότητα 4

ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Ακολουθίες: Λίστες και Πλειάδες Χειμερινό Εξάμηνο 2016

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

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

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

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

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

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

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

ακολουθία (sequence)

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι (Python) Ενότητα 5. Λεξικά (Dictionaries)

Πίνακες. 1 Πίνακες. 30 Μαρτίου 2014

Εισαγωγή στον Προγραμματισμό με την Python 3. Βασίλης Βασιλάκης Γιώργος Μπουκέας

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

Βασικές Ασκήσεις από τα Εργαστήρια της PYTHON (εβδομάδα 6 & 7) Πέμπτη ΠΚ2 11:15, 13:15, 15:15, 17:15 και 19:15

Object Oriented Programming με Python

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

Βασικές Ασκήσεις από τα Εργαστήρια της Python. Πέμπτη ΠΚ2 11:15, 13:15, 15:15, 17:15 και 19:15

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

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

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

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

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

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

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

Λίστες. Lista=[ red, green, blue ] Το πλήθος των στοιχείων μια λίστας δίνεται από τη συνάρτηση len(): Len(Lista)

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

Στόχοι και αντικείμενο ενότητας. Πέρασμα Πίνακα σε Συνάρτηση (συν.) Πέρασμα Πίνακα σε Συνάρτηση. #8.. Ειδικά Θέματα Αλγορίθμων

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

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

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

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

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

Κεφάλαιο Πίνακες Ι. (Διάλεξη 16)

Εισαγωγή στον Προγραμματισμό Python Μάθημα 4: Συναρτήσεις (functions) και δομοστοιχεία (modules) στην Python

Εχουμε ήδη συναντήσει μονοδιάστατους πίνακες, οι οποίοι ορίζονται ως εξής:

Εισαγωγή στην Γλώσσα Προγραμματισμού Python. 12/10/16 1

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

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

Σημειώσεις όγδοης εβδομάδας

Ανακτήθηκε από την ΕΚΠΑΙΔΕΥΤΙΚΗ ΚΛΙΜΑΚΑ

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

ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6)

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

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

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

Μεθόδων Επίλυσης Προβλημάτων

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

Προγραμματισμός Η/Υ. Ενότητα 8: Ειδικά Θέματα Αλγορίθμων

Μορφοποίηση εξόδου. Σημειώσεις

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 17/1/08

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

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

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

Διάλεξη 21η: Απλά Συνδεδεμένες Λίστες

Κεφάλαιο. δομές ελέγχου. Περίγραμμα. Στόχοι

Φροντιστήριο 4 Σκελετοί Λύσεων

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ ΤΡΙΤΗ 11 ΙΟΥΝΙΟΥ 2019 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ

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

Βάσεις Δεδομένων Ι 8. Ερωτήματα (B) Τμήμα Διοίκησης Επιχειρήσεων (Μεσολόγγι) ΤΕΙ Δυτικής Ελλάδας

ΚΕΦΑΛΑΙΟ 6. Συμβολοσειρές, λίστες, πλειάδες, λεξικά. 6.1 Εισαγωγή

Φροντιστήριο 4 Σκελετοί Λύσεων

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Εξετάσεις Προσομοίωσης 24/04/2019

Σημειώσεις δεύτερης εβδομάδας

Προγραμματιστικά Εργαλεία και Τεχνολογίες για Επιστήμη Δεδομένων

Σύνοψη Προηγούμενου. Λίστες (Lists) Συνδεδεμένες Λίστες: Εισαγωγή (1/2) Συνδεδεμένες Λίστες. Ορέστης Τελέλης

ΣΥΝΟΛΟ ΣΕΛΙ ΩΝ: ΕΠΤΑ (7)

Array-based sequences

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 6 : ΠΙΝΑΚΕΣ

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

Κεφάλαιο Πίνακες Ι. ( ιάλεξη 15) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

Εργαστήριο 10 Πίνακες. Πίνακες. Η έννοια της δόμησης δεδομένων στη PASCAL. Σκοπός

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

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων

ΟΜΟΣΠΟΝΔΙΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑΔΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2018 Β ΦΑΣΗ

Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Εργαλεία ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ FILE & PROCESS HANDLING

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 5. Αφηρημένοι Τύποι Δεδομένων / Στοίβες και Ουρές

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #15

ΗΥ-150. Πίνακες (Arrays)

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

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

Μέρος 2 Κατασκευή Συντακτικού Αναλυτή

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

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

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

Δομές Δεδομένων και Αλγόριθμοι

Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων. 14. Πίνακες Ι. Ιωάννης Κατάκης. ΕΠΛ 032: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής

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

POINTERS, AGGREGATION, COMPOSITION

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

Ηλεκτρονικοί Υπολογιστές

διανύσματα - Πίνακες - Struct Στατικό διάνυσμα Είσοδος Έξοδος δεδομένων Συναρτήσεις Χειρισμός σφαλμάτων ΤΕΤΑΡΤΗ ΔΙΑΛΕΞΗ

Transcript:

Βασικές Ασκήσεις από τα Εργαστήρια της Python Πέμπτη Εργ. 3 17:15 και 19:15 Αντί να χρησιμοποιούμε πολλές ομοειδείς μεταβλητές του ίδιου τύπου, όπως παραδείγματος χάριν, οι 7 μέσες θερμοκρασίες μίας εβδομάδας, μέσω των οποίων θα υπολογιστεί ο μέσος όρος της εβδομάδας, είναι πολύ πιο βολικό να χρησιμοποιούμε λίστες. Το παρακάτω παράδειγμα υπολογίζει τον μέσο όρο των θερμοκρασιών επτά ημερών χωρίς λίστα. Είναι προφανές ότι πρόκειται για κακή προσέγγιση, λόγω του μεγάλου αριθμού μεταβλητών που αναγκαζόμαστε να χρησιμοποιήσουμε: # program13.py t1=int(input('vale temp 1: ')) t2=int(input('vale temp 2: ')) t3=int(input('vale temp 3: ')) t4=int(input('vale temp 4: ')) t5=int(input('vale temp 5: ')) t6=int(input('vale temp 6: ')) t7=int(input('vale temp 7: ')) mo=(t1+t2+t3+t4+t5+t6+t7)/7.0 print('o MO einai %.2f'%mo) Το προηγούμενο πρόγραμμα, βελτιώνεται με τη χρήση της λίστας t. Είναι προφανές ότι αν θέλουμε να βρούμε τον μέσο όρο μηνός αρκεί να αλλάξουμε την σταθερά SIZE, πχ. από 7 σε 31: # program14.py SIZE=7 t=[] for i in range(0,size): t.append(int(input('vale temp ' + str(i+1) +': '))) print(t) athroisma=0 for i in t: athroisma+=i print(athroisma) print('mo einai %.2f'%(athroisma/SIZE)) 1 costis@teicrete.gr 25 Οκτώβρη 18

Στην γλώσσα C, δηλώνουμε το μέγεθος ενός ακέραιου πίνακα με δέκα θέσεις γράφοντας int a[10]; Στην Python οι λίστες είναι δυναμικές. Λέγοντας a=[] δηλώνουμε μία κενή λίστα χωρίς στοιχεία. Με την μέθοδο append, προσθέτουμε στοιχεία στη λίστα αυτή. Με τον τελεστή + μπορούμε να προσθέσουμε λίστα σε λίστα. =[] [].append(3) [3].append(5) [3, 5] +2 Traceback (most recent call last): File "<pyshell#15>", line 1, in <module> a+2 TypeError: can only concatenate list (not "int") to list +[3,4] [3, 5, 3, 4] [3, 5] =a+[3,4] [3, 5, 3, 4] >>> Για να μπορέσουμε να χρησιμοποιήσουμε τις λίστες στην Python με τρόπο παρεμφερή με αυτόν που χρησιμοποιείται για τα arrays στην C, μπορούμε να δεσμεύσουμε δέκα θέσεις εκ των προτέρων, γράφοντας a=[0]*10. Δηλαδή δημιουργούμε μία λίστα με 10 στοιχεία με δείκτες από 0 έως 9, που το κάθε ένα έχει την τιμή 0. =[] [4]=1 Traceback (most recent call last): File "<pyshell#1>", line 1, in <module> a[4]=1 IndexError: list assignment index out of range =[0]*10 [4]=1 [0, 0, 0, 0, 1, 0, 0, 0, 0, 0] =[None]*10 [None, None, None, None, None, None, None, None, None, None] [4]=1 [None, None, None, None, 1, None, None, None, None, None] >>> 2 costis@teicrete.gr 25 Οκτώβρη 18

Το επόμενο πρόγραμμα διανέμει ένα ποσό 50.000 σε 5 σχολές, ανάλογα με το πλήθος των φοιτητών τους. Διαβάζει το πλήθος των φοιτητών για κάθε σχολή και υπολογίζει το ποσό που πρέπει να δοθεί σε κάθε σχολή. #program15.py s=[] for i in range(0,5): s.append(int(input('sxoli '+str(i+1)+': '))) print(s) sum=0 for i in s: sum+=i print(sum) for i in range(0,5): print('%d %d' % (i+1, s[i])) # posa ana sxoli for i in range(0,5): print('sxoli %d pairnei %.2f' % (i+1, 50000/sum*s[i])) Το παρακάτω πρόγραμμα βρίσκει την μέγιστη και την ελάχιστη από 6 θερμοκρασίες: #program16.py t=[] for i in range(0,6): t.append(int(input('temp '+str(i+1)+': '))) max=min=t[0] for i in t: if(max<i): max=i if(min>i): min=i print('max is %d, min is %d' % (max, min)) 3 costis@teicrete.gr 25 Οκτώβρη 18

Μία βασική διαφορά μεταξύ array και list, είναι ότι τα arrays περιέχουν μόνο στοιχεία ίδιου τύπου. Πχ. Ακέραιους, χαρακτήρες κλπ. Η Python επιτρέπει τη δημιουργία array με χρήση του αντικειμένου array, η υλοποίηση του οποίου βασίζεται σε λίστα, περιορίζοντας τους τύπους. class array.array(typecode[, initializer]) Επιτρεπτοί τύποι: #program17.py import array i=array.array('i', [1,3,4,6,7]) i[4] = 123 print(i) i.append(41) print(i) 4 costis@teicrete.gr 25 Οκτώβρη 18

Σχετικά με τις λίστες στην Python: Η Python γνωρίζει έναν αριθμό σύνθετων τύπων δεδομένων, που χρησιμοποιούνται για την ομαδοποίηση άλλων τιμών. Ο πιο ευέλικτος είναι η λίστα, η οποία να γραφτεί σαν λίστα τιμών (αντικειμένων) που χωρίζονται με κόμματα και βρίσκεται μέσα σε αγκύλες. Οι λίστες μπορούν να περιέχουν αντικείμενα διαφορετικού τύπου, αλλά συνήθως τα στοιχεία έχουν όλα τον ίδιο τύπο. Μέθοδοι των αντικειμένων τύπου list: list.append(x) Προσθέτει ένα αντικείμενο στο τέλος της λίστας. Ισοδύναμο με a[len(a):] = [x]. list.extend(iterable) Επεκτείνει την λίστα προσθέτοντας όλα τα στοιχεία ενός iterable. Equivalent to a[len(a):] = iterable. =[1,2,3] >>> type(a) <class 'list'>.extend([4,5]) [1, 2, 3, 4, 5].extend('a') [1, 2, 3, 4, 5, 'a'] >>> b=[9,10].append(b) [1, 2, 3, 4, 5, 'a', [9, 10]].extend(b) [1, 2, 3, 4, 5, 'a', [9, 10], 9, 10] >>> list.insert(i, x) Προσθέτει ένα στοιχείο στην δεδομένη θέση. Η πρώτη παράμετρος είναι ο δείκτης του στοιχείου πριν το οποίο θα τοποθετηθεί το νέο, έτσι a.insert(0, x) εισαγάγει μπροστά από τη λίστα το στοιχείο x. To insert(len(a), x) είναι ισοδύναμε με το a.append(x). 5 costis@teicrete.gr 25 Οκτώβρη 18

list.remove(x) Διαγράφει το πρώτο στοιχείο της λίστας του οποίου η τιμή ισούται με x. Εάν δεν υπάρχει τέτοιο στοιχείο δημιουργείται σφάλμα. list.pop([i]) Διαγράφει το στοιχείο που βρίσκεται στην θέση i και το επιστρέφει. Εάν δεν δοθεί παράμετρος η pop() διαγράφει και επιστρέφει το τελευταίο στοιχείο της λίστας. list.clear() Διαγράφει όλα τα στοιχεία της λίστας. Ισοδύναμο με del a[:]. list.index(x[, start[, end]]) Επιστρέφει τον δείκτη της θέσης στην οποία βρίσκεται το πρώτο στοιχείο του οποίου η τιμή ισούται με x. Δημιουργεί ValueError εάν δεν υπάρχει το στοιχείο. Οι προαιρετικές παράμετροι start και end επιτρέπουν την αναζήτηση σε συγκεκριμένο τμήμα της λίστας. list.count(x) Επιστρέφει τον αριθμό των φορών που το x εμφανίζεται στη λίστα. list.sort(key=none, reverse=false) Ταξινομεί τη λίστα. Δες την sorted() list.reverse() Αντιστρέφει τα στοιχεία της λίστας list.copy() Επιστρέφει αντίγραφο της λίστας. Ισοδύναμε με a[:]. 6 costis@teicrete.gr 25 Οκτώβρη 18

Παράδειγμα χρήσης των μεθόδων: >>> fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana'] >>> fruits.count('apple') 2 >>> fruits.count('tangerine') 0 >>> fruits.index('banana') 3 >>> fruits.index('banana', 4) # Find next banana starting a position 4 6 >>> fruits.reverse() >>> fruits ['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange'] >>> fruits.append('grape') >>> fruits ['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange', 'grape'] >>> fruits.sort() >>> fruits ['apple', 'apple', 'banana', 'banana', 'grape', 'kiwi', 'orange', 'pear'] >>> fruits.pop() 'pear' Ίσως παρατηρήσατε ότι μέθοδοι όπως insert, remove ή sort οι οποίες μόνο μετατρέπουν την λίστα δεν επιστρέφουν τιμή για να τυπωθεί επιστρέφουν το default None. Αυτή η σχεδιαστική αρχή ισχύει για όλες τις mutable δομές δεδομένων της Python. 7 costis@teicrete.gr 25 Οκτώβρη 18