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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πως θα αποθηκεύσει τη λίστα με τα ψώνια του και θα την ανακτήσει στο Σ/Μ; και πως θα προσθέσει στη λίστα του επιπλέον προϊόντα;

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

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

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

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

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

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

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

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

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

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

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

ΚΕΦΑΛΑΙΟ 5. Eπανάληψη με την εντολή while. 5.1 Εισαγωγή

Διαχείριση Έργων Πληροφορικής Εργαστήριο

Σύντομες εισαγωγικές σημειώσεις για την. Matlab

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

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

Εισαγωγή στη Fortran. Μάθημα 1 ο. Ελευθερία Λιούκα

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

Προγραμματισμός Υπολογιστών Τάξη Γ Αθανασιάδης Χρήστος ΠΕ19 ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργία Κλάσεων και Αντικειμένων Constructors

Εισαγωγή στους Η/Υ και τις Εφαρμογές Ενότητα 5: Επεξεργασία δεδομένων με τη γλώσσα προγραμματισμού python Υπο-ενότητα 5.2: Συμβολοσειρές-Έλεγχος Ροής

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

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

ΕΠΛ131 Αρχές Προγραμματισμού Ι

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

Κεφάλαιο 5: Δομές δεδομένων

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

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

Γραφικά υπολογιστών Εργαστήριο 4 Εισαγωγή στις λίστες

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

ΕΠΑΝΑΛΗΠΤΙΚΗ ΕΞΕΤΑΣΗ (14/9/2012)

ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Έλεγχος Ροής - Παραδείγματα

ΕΠΛ 231 Δομές Δεδομένων και Αλγόριθμοι 4-1

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

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

ΘΕΜΑΤΑ ΚΑΙ ΛΥΣΕΙΣ. 1) Έστω η λογική συνάρτηση F = A' + Β'. D + B. C' + C. D' (όπου οι τόνοι δηλώνουν συμπληρώματα).

3. Γράψτε μία εντολή που να εμφανίζει π.χ. «Πόσα είναι τα κορίτσια του;» και μία που να εμφανίζει: «Τα κορίτσια του Τζειμς Μποντ είναι 4»

Ασκήσεις στις Δομές Δεδομένων (Λίστες-Συμβολοσειρές)

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

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

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

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

Αρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record)

JavaScript 6. Πίνακες

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PYTHON (ΟΜΑΔΑ Α)

App Inventor 3ο Μάθημα (Ζάρια - επέκταση)

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring

Βυζαντινός Ρεπαντής Κολλέγιο Αθηνών 2010

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

ΚΕΦΑΛΑΙΟ 9. Ταυτόχρονος προγραμματισμός και νήματα. 9.1 Εισαγωγή

Εργαστήρια Αριθμητικής Ανάλυσης Ι. 4 ο Εργαστήριο. Διανύσματα-Πίνακες 1 ο Μέρος

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

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου

Εισαγωγή στους Η/Υ και τις Εφαρμογές Ενότητα 5: Επεξεργασία δεδομένων με τη γλώσσα προγραμματισμού python Υπο-ενότητα 5.

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

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

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

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

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

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

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Το Σύστημα Κανόνων CLIPS. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ. Πως γίνεται ο ορισμός μιας διαδικασίας; Να δοθούν σχετικά παραδείγματα. ΑΡΧΗ Εντολές ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

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

Τομέας Υλικού και Αρχιτεκτονικής Υπολογιστών ΗΥ134 - Εισαγωγή στην Οργάνωση και Σχεδίαση Η/Υ 1. Εργαστήριο 6. Εαρινό Εξάμηνο

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

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Σύντοµος Οδηγός της Qbasic. Πέρδος Αθανάσιος Καθηγητής Πληροφορικής

4 η Διάλεξη Python - Συναρτήσεις

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

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

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

Εργαστήριο 7: Ο αλγόριθμος ταξινόμησης Radix Sort

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

Γράψτε ένα πρόγραμμα που θα προσομοιώνει τη ρίψη ενός νομίσματος και θα εμφανίζει στην οθόνη Κορώνα» ή «Γράμματα».

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα

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

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

Transcript:

Προηγούμενο Σημειώσεις Επόμενο Λίστες Σειρά στοιχείων Μία σειρά στοιχείων (αριθμών, συμβολοσειρών κλπ) μπορούν να οργανωθούν σε μία δομή η οποία ονομάζεται λίστα. Η σειρά των στοιχείων ορίζεται από ορθογώνιες παρενθέσεις και τα στοιχεία χωρίζονται μεταξύ τους με κόμμα. Παραδείγματα: >>> rgb = ['red','green','blue'] >>> cities = ['Agios','Heraklion','Rethymno','Chania'] >>> digits = [0,1,2,3,4,5,6,7,8,9] Ο αριθμός των στοιχείων μίας λίστας μπορεί να βρεθεί με χρήση της συνάρτησης len: >>> len(digits) 10 Μπορούμε να ανακτήσουμε ένα από τα στοιχεία της λίστας χρησιμοποιώντας τον δείκτη του. Η δεικτοδότηση είναι ακριβώς όπως στις συμβολοσειρές. >>> rgb[1] 'green' >>> rgb[-1] 'blue' Τεμαχισμός (slicing): Μπορούμε να ανακτήσουμε ένα τμήμα της λίστας χρησιμοποιώντας ένα εύρος δεικτών. Το αποτέλεσμα είναι μία νέα λίστα. >>> digits[1:3] http://users.tem.uoc.gr/~komineas/teaching/mem104_2017/lectures/04_lecture.html 1/9

[1,2] >>> digits[7:] [7,8,9] Βλέπουμε ότι η σύνταξη είναι όμοια με αυτή που χρησιμοποιήσαμε στον τεμαχισμό συμβολοσειρών. Βασικές λειτουργίες Μπορούμε να χρησιμοποιήσουμε τo σύμβολo της πρόσθεσης (+) για λίστες. Από την πρόσθεση δύο λιστών προκύπτει μία μέα λίστα η οποία περιέχει όλα τα στοιχεία των δύο λιστών. Για παράδειγμα: >>> cmyk = ['cyan','magenta','yellow','black'] = rgb + cmyk ['red','green','blue','cyan','magenta','yellow','black'] Μπορούμε να χρησιμοποιήσουμε τo σύμβολo του πολλαπλασιασμού (*) μεταξύ ακεραίου n και λίστας L: >>> 2*rbg ['red','green','blue','red','green','blue'] >>> 2*[0,1] [0,1,0,1] Η n*l δίνει μία νέα λίστα η οποία περιέχει n φορές τα στοιχεία της L σε διαδοχική σειρά. Μέθοδοι Σε μία υπάρχουσα λίστα μπορούμε να προσθέσουμε ένα στοιχείο. Για παράδειγμα: >>> colours.append('white') ['red','green','blue','cyan','magenta','yellow','black','white'] http://users.tem.uoc.gr/~komineas/teaching/mem104_2017/lectures/04_lecture.html 2/9

L.append(e): Έχουμε χρησιμοποιήσει μία μέθοδο η οποία ονομάζεται append και αυτή επέδρασε στη λίστα colors. Προστέθηκε ένα στοιχείο ('white') στην λίστα. Το όρισμα e της μεθόδου append προστίθεται ως τελευταίο στοιχείο στη λίστα L και η υπάρχουσα λίστα μεγαλώνει κατά ένα στοιχείο. Η γενική σύνταξη για μία μέθοδο είναι λιστα.μεθοδος(ορισμα). Ας δούμε τώρα μερικές χρήσιμες μεθόδους για λίστες. L.remove(e): Αφαιρεί το στοιχείο e από την λίστα L. Για παράδειγμα:.remove('white') ['red', 'green', 'blue', 'cyan', 'magenta', 'yellow', 'black'] L.pop(): Αφαιρεί το τελευταίο στοιχείο λίστας L (και το επιστρέφει). Επίσης μπορούμε να αφαιρέσουμε στοιχείο με συγκεκριμένο δείκτη..pop() 'white' ['red','green','blue','cyan','magenta','yellow', 'black']].pop(1) 'green' ['red','blue','cyan','magenta','yellow', 'black'] Μπορούμε να ελέγξουμε αν ένα στοιχείο υπάρχει σε λίστα: >>> 'white' in colors False Θα μπορούσαμε να προσθέσουμε στην λίστα στοιχεία εφόσον αυτά δεν υπάρχουν ήδη: >>> if 'white' not in colors: colors.append('white') http://users.tem.uoc.gr/~komineas/teaching/mem104_2017/lectures/04_lecture.html 3/9

Παράδειγμα. # Create lists with the countries of the continents Europe = ['greece','italy','france','norway','denmark','the netherlands'] Asia = ['china','india','korea','nepal','thailand','iran'] America = ['USA','perou','canada','mexico'] # ask the user for the name of a country country = input('give the name of a country: ') # Initialize an auxiliary variable newcountry = '' # check whether the given country is included in a list if country in Europe: print(country,'is in Europe') elif country in Asia: print(country,'is in Asia') elif country in America: print(country,'is in America') newcountry = input('does this country belong to Europe, Asia or America? ') # Add the new country to one of the lists if newcountry == 'Europe': Europe.append(country) elif newcountry == 'Asia': Asia.append(country) elif newcountry == 'America': America.append(country) # Print the content of the lists print(europe) print(asia) print(america) http://users.tem.uoc.gr/~komineas/teaching/mem104_2017/lectures/04_lecture.html 4/9

Παρατήρηση. Μία λίστα είναι δυνατόν να μεταβληθεί και αυτό μπορεί να συμβεί, π.χ., με μία μέθοδο. Λέμε ότι οι λίστες είναι μεταλλάξιμες. Παράδειγμα. Εισάγετε μία ημερομηνία (ημέρα, μήνας, έτος) και βρείτε (και τυπώστε) την ημερομηνία της επόμενης ημέρας. import sys # Εισάγει εντολές και συναρτήσεις του interpreter months31 = [1,3,5,7,8,10,12] months30 = [4,6,9,11] # Μήνες με 31 ημέρες # Μήνες με 30 ημέρες # Εισάγουμε ημερομηνία day = int(input("give day: ")) month = int(input("give month: ")) year = int(input("give year: ")) if 1 <= month <= 12: # Ο μήνας πρέπει να είναι από 1 έως 12 print("you entered the date {}-{}-{}".format(day,month,year)) print("there is no such month") sys.exit() # Τερματίζεται η εκτέλεση του προγράμματος if month in months31: μήνα lastday = 31 elif month in months30: lastday = 30 elif month == 2: lastday = 28 πόσες ημέρες έχει ο μήνας print("month has no days!") sys.exit() # Βρίσκουμε την τελευταία ημέρα του # Θα συμβεί αν δεν έχουμε προβλέψει # Βρίσκουμε την επόμενη ημερομηνία: ημέρα, μήνα, έτος if 0 < day < lastday: day = day + 1 elif day == lastday: day = 1 http://users.tem.uoc.gr/~komineas/teaching/mem104_2017/lectures/04_lecture.html 5/9

if month == 12: month = 1 year = year + 1 month = month + 1 print("there is no such day!") sys.exit() # Τυπώνουμε το αποτέλεσμα print("next date is {}-{}-{}".format(day,month,year)) Άσκηση. Εισάγετε μία ημερομηνία (ημέρα, μήνας, έτος) και βρείτε (και τυπώστε) την ημερομηνία της επόμενης ημέρας. Λάβετε υπόψιν την περίπτωση να είναι το έτος δίσεκτο. Άλλες μέθοδοι L.index(e). Επιστρέφει το δείκτη της πρώτης παρουσίας του στοιχείου e στη λίστα L. L.count(e). Επιστρέφει τον αριθμό φορών που εμφανίζεται το στοιχείο e στη λίστα L. L.reverse(). Αναστρέφει τη σειρά των στοιχείων στη λίστα L. L.sort(). Ταξινομεί τα στοιχεία της λίστας L σε αύξουσα σειρά. L.insert(i,e). Το στοιχείο e τοποθετείται στη θέση i της λίστας L. Παράδειγμα. Ας δημιουργήσουμε μία λίστα, μετά θα αντιστρέψουμε τη σειρά των στοιχείων της. >>> L = ['a','b','c','d','e','f'] >>> L.reverse() >>> L ['f', 'e', 'd', 'c', 'b', 'a'] Παρατήρηση. Δείτε ότι η εντολή L.reverse (καθώς και αρκετές άλλες μέθοδοι: sort, insert κλπ) μεταλλάσσει την ίδια τη λίστα (και δεν δημιουργεί μία καινούρια για να βάλει το αποτέλεσμα της μεθόδου). http://users.tem.uoc.gr/~komineas/teaching/mem104_2017/lectures/04_lecture.html 6/9

Παράδειγμα. Ας δημιουργήσουμε μία λίστα για την οποία μετά θα ανακατέψουμε τα στοιχεία της με τυχαίο τρόπο και τέλος θα εντοπίσουμε ένα συγκεκριμένο στοιχείο της. import random L = ['a','b','c','d','e','f'] random.shuffle(l) print(l.index('a')) Ειδικότερα είδη λιστών Παρατήρηση. Μία λίστα μπορεί να περιέχει στοιχεία διαφορετικών τύπων: >>> examplelist = ['father',30,'son',3] Παρατήρηση. Μία λίστα μπορεί να περιέχει λίστες: >>> examplelist = [[1,2,3],['a','b','c']] Παράδειγμα. (Άρτιες μεταθέσεις τριών αριθμών.) Ξεκινούμε με μία άδεια λίστα []. Ακολούθως, της επεκτείνουμε βάζοντας μία-μία τις άρτιες μεταθέσεις τριών αριθμών. Κάθε μία από τις μεταθέσεις είναι λίστα τριών αριθμών. >>> permute = [] >>> permute.append([1,2,3]) >>> permute.append([2,3,1]) >>> permute.append([3,1,2]) >>> permute [[1, 2, 3], [2, 3, 1], [3, 1, 2]] Παράδειγμα. Θα δούμε την πρόσβαση στα στοιχεία μίας λίστας L1 η οποία είναι στοιχείο άλλης λίστας L. Αυτό μπορεί να γίνει με δύο τρόπους: είτε μέσω της αρχικής λίστας L1 είτε μέσω του αντίστοιχου στοιχείου της μεγαλύτερης λίστας L. http://users.tem.uoc.gr/~komineas/teaching/mem104_2017/lectures/04_lecture.html 7/9

>>> L1 = ['a','b','c'] >>> L2 = [1,2,3] >>> L = [L1,L2] >>> L [['a', 'b', 'c'], [1, 2, 3]] L1.append('d') >>> L [['a', 'b', 'c', 'd'], [1, 2, 3]] >>> L[0].append('e') >>> L [['a', 'b', 'c', 'd', 'e'], [1, 2, 3]] >>> L1 ['a', 'b', 'c', 'd', 'e'] Ακολουθία range() Η εντολή range(n,m) δημιουργεί μία ακολουθία ακεραίων από τον n έως τον m-1. >>> range(1,10) range(1, 10) Μπορούμε να δημιουργήσουμε μία λίστα που περιέχει την ακολουθία αριθμών της range: >>> list(range(1,10)) [1, 2, 3, 4, 5, 6, 7, 8, 9] Παραδείγματα. (α) Αν παραλήψουμε το πρώτο όρισμα τότε αυτό θεωρείται ότι είναι το 0. (β) Ως τρίτο όρισμα μπορούμε να βάλουμε το βήμα για την ακολουθία των παραγόμενων αριθμών. >>> list(range(10)) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> list(range(0,10,2)) http://users.tem.uoc.gr/~komineas/teaching/mem104_2017/lectures/04_lecture.html 8/9

[0, 2, 4, 6, 8] Η γενική μορφή της συνάρτησης είναι range(start,end,step) και κατασκευάζει την αριθμητική πρόοδο start, start+step, start+2*step,...,start+n*step. Αν step>0 τότε στην παραπάνω ακολουθία ο start+n*step είναι ο μεγαλύτερος ακέραιος μικρότερος από τον end. Αν step<0 τότε ο start+n*step είναι ο μικρότερος ακέραιος μεγαλύτερος από τον end. Αν το start παραληφθεί τότε start=0. Αν το step παραληφθεί τότε step=1. Μελέτη Βιβλιογραφία 1. J.V. Guttag, Υπολογισμοί και προγραμματισμός με την python (Κεφάλαιο 5). 2. Δημήτριος Καρολίδης, Μαθαίνετε εύκολα python (Παράγραφοι 4.1, 4.2) (Εκδόσεις Καρολίδη, 2016). 3. Κ. Μαγκούτης, Χ. Νικολάου, Εισαγωγή στον αντικειμενοστραφή προγραμματισμό με Python, (Αποθετήριο "Κάλλιπος", 2016) - Κεφάλαιο 6. Συμβολοσειρές, λίστες, πλειάδες, λεξικά. Προηγούμενο Επόμενο http://users.tem.uoc.gr/~komineas/teaching/mem104_2017/lectures/04_lecture.html 9/9