Εισαγωγή στην Python


 

Λογισμικό που θα χρειαστούμε

Για να εγκαταστήσουμε την python πάμε http://www.python.org/downloads και εγκαθιστούμε την κατάλληλη έκδοση.
Για να γράφουμε κώδικα μπορούμε να χρησιμοποιήσουμε το IDLE που εγκαθίσταται μαζί με την python ή κάποιο εξειδικευμένο πρόγραμμα όπως π.χ. PyCharm Community Edition (https://www.jetbrains.com/pycharm/download/#section=windows) ή Notepad++(https://notepad-plus-plus.org/download/v6.9.html).

 

Ρυθμίσεις για το Notepad++

plugins_menu

Εικόνα 1

plugin_manager

Εικόνα 2

Εικόνα 3

Εικόνα 3

 

 

 

 

 

 

Αρχικά πρέπεει να εγκαταστήσουμε το NppExec. Αν είναι εγκατεστημένο τότε θα φαίνεται όταν πάμε στο μενού Plugins (Εικόνα 1) διαφορετικά από το ίδιο μενού επιλέγουμε Plugin Manager > Show Plugin Manager και αναζητούμε το NppExec το οποίο και εγκαθιστούμε (Εικόνα 2). Το Πρόγραμμα θα σας ζητήσει να κάνει επανεκίνηση την οποία και θα αποδεχθείτε. Στην συνέχεια θα πρέπει να κάνουμε τις ακόλουθες ρυθμίσεις στο  NppExec Plugin :

  • Από το μενού Plugins > NppExec τσεκάρουμε τις επιλογές «Show Console Dialog«, «Save all files on execute«,  «Follow $(CURRENT_DIRECTORY)«
  • Από το μενού Plugins > NppExec > Execute… πληκτρολογήστε τις εντολές cd «$(CURRENT_DIRECTORY)» C:\Python34\Python «$(FILE_NAME)» και αποθηκεύστε το με το όνομα Run Python.
  • Από το μενού Plugins > NppExec > Advance Options τσεκάρουμε την επιλογή Place to the Macros submenu και   κάτω από το κείμενο Associated script: επιλέγουμε Run Python (Εικόνα 3) και πατάμε τα κουμπιά Add/Modify και ΟΚ. Το πρόγραμμα θα ξανακάνει επανεκκίνση.
  • Από το μενού Setting > Shortcut mapper… επιλέγουμε την καρτέλα Plugin commands και κάνουμε διπλό κλικ στο Run Python. Στο νέο παράθυρο που θα ανοίξει επιλέγουμε την συντόμευση που επιθυμούμε (δηλ. τον συνδυασμό πλήκτρων που θα πατάμε για να εκτελείτε ο κώδικας python στο Notepad++). Υπάρχει μεγάλη πιθανότητα να επιλέξετε κάποια συντόμευση που ήδη υπάρχει για άλλη λειτουργία του Notepad++ οπότε θα πρέπει να πάτε κανά στο Shortcut mapper και να αλλάξετε είτε την συντόμευση της άλλης λειτουργίας ή του Run Python.  

https://www.cs.auckland.ac.nz/courses/compsci101s1c/resources/SetUpNotePad++.pdf

 

Εισαγωγικές έννοιες
  • Τα αρχεία με κώδικα Python πρέπει να έχουν την κατάληξη (.py) στο τέλος του ονόματος τους.
  • H python είναι η μόνη ίσως γλώσσα που απαιτεί να γράφουμε στοιχειοθετημένα (άρα και ευανάνγωστα) προγράμματα.Οι εντολές που πάνε μαζί, πρέπει να έχουν το ίδιο επίπεδο εσοχής (συνήθως 4 κενά αλλά μπορώ να χρησιμοποιήσω και λιγότερα). Κάθε τέτοια ομάδα εντολών ονομάζεται μπλοκ (block). Θυμίζουμε οτι σε άλλες γλώσσες όπως C, Java, Javascript κλπ χρησιμοποιούμε άγκιστρα για τα μπλοκ. Πρέπει να στοιχίζω δηλ. τις εντολές του μπλοκ, 4 θέσεις δεξιότερα της if. Όταν τελειώσουν οι εντολές του μπλοκ, μειώνω την εσοχή κατά 4 κενά και συνεχίζω.
  • Για σχόλιο μιας γραμμής χρησιμοποιούμε το σύμβολο #.
  • Η συνάρτηση print(«κείμενο προς εμφάνιση») εμφανίζει ένα μήνυμα/αποτελέσμα στην οθόνη και πηγαίνει τον κέρσορα στην επόμενη γραμμή. Για να μην κατεβαίνει μια γραμμή πρέπει να γράψουμε print(«κείμενο προς εμφάνιση», end=»»). Επίσης μπορούμε να συμπεριλάβουμε πολλές τιμές στην ίδια print αρκεί να διαχωρίζονται με κόμμα. Θα εμφανιστούν όλες οι τιμές στην ίδια γραμμή με ένα κενό μεταξύ τους. Μπορούμε αντί για κενό να παρεμβάλεται κάτι άλλο όπως π.χ. το σύμβολο ?. Σε αυτή την περίπτωση θα γράψουμε print(«ένα»,»ένα»,»ένα»,sep=»?») .
  • Η συνάρτηση input( «κείμενο προς εμφάνιση») διαβάζει τιμή από το πληκτρολόγιο. Π.χ. χ=input( «Πληκτρολογήστε το όνομα σας»). Η input επιστρέφει πάντα κείμενο ακόμη και αν ο χρήστης πληκτρολογήσει αριθμό. Σε αυτή την περίπτωση θα πρέπει να γράψουμε int() ή float(). Π.χ. int(input(«Πληκτρολογήστε την ηλικία σας:»)).
  • Η συνάρτηση len («κάποιο κείμενο ή μεταβλητή») που υπολογίζει το πλήθος των χαρακτήρων ενός κειμένου. Π.χ. η εντολή print (len(«Καλημέρα»)) θα εμφανίσει την τιμή 8.
  • Τα ονόματα μεταβλητών αρχίζουν με γράμμα και περιέχουν γράμματα ή αριθμούς ή _.
  • Η εντολή type(x) επιστρέφει τον τύπο της μεταβλητής x.
  • Εντολές όπως int(x) , float(x) και str(x) μετατρέπουν εμφανίζουν την μεταβλητή x στην αντίστοιχη μορφή. Δεν αλλάζουν την τιμή της μεταβλητής.
  • Στην C επιτρέπονται τα πεζά και κεφαλαία γράμματα του λατινικού αλφαβήτου (a – z, A – Z ), τα ψηφία 0-9 και οι ειδικοί χαρακτήρες ~ ‘ ! @ # % ^ & * ( ) _ – + = | \ { } [ ] : ; ” ‘ < > , . ? / . Καλό είναι να αποφεύγεται η χρήση κεφαλαίων γραμμάτων.
  • Τα ονόματα των μεταβλητών προκύπτουν από συνδυασμό γραμμάτων, ψηφίων και της κάτω παύλας (_). Πρέπει όμως υποχρεωτικά να ξεκινούν με γράμμα ή κάτω παύλα (_). Η C κάνει διάκριση πεζών- κεφαλαίων που σημαίνει ότι οι μεταβλητές y1 kai Y1 είναι διαφορετικές.
  • Οι Δεσμευμένες Λέξεις είναι λέξεις που χρησιμοποιεί η C αποκλειστικά και δεν μπορούμε συνεπώς να τις χρησιμοποιήσουμε σαν ονόματα μεταβλητών, συναρτήσεων κλπ. Οι λέξεις αυτές είναι: auto, break, case, char, const, continue, default, do, double, else, enum, extern, float, for, goto, if, int, long, register, return, short, signed, sizeof, static, struct, switch, typedef, union, unsigned, void, volatile, while, _Packed .

 

Τύποι δεδομένων

Τύποι Δεδομένων: Ακέραιοι (π.χ. 3 , -4), Κινητής υποδιαστολής (π.χ. 3.14, ) και Μιγαδικοί αριθμοί (π.χ. 1-2j), Λογικές (True ή False),  Συμβολοσειρές (κείμενο), Λίστες (π.χ. [5,7,9,11]) και Tuples .
Τα παρακάτω παραδείγματα είναι αποδεκτά:

Για να δούμε τον τύπο μιας μεταβλητής χρησιμοποιούμαι την συνάρτηση typo(μεταβλητή)

 

 

Τελεστές
  • Αριθμητικοί:  +, -, *, / (διαίρεση), ** (δύναμη), % (το υπόλοιπο ακέραιας διαίρεσης), // (Ακέραια Διαίρεση όπου το υπόλοιπο αγνοείται! π.χ. 20 // 6 = 3)
  • Συγκριτικοί:  > , >= , < ,<= , != (Διάφορο), == (Ισότητα)
  • Λογικοί: not (όχι), and (και), or (ή)

Οι λογικοί τελεστές είναι short-circuit, δηλαδή εάν έχουμε την έκφραση (2>1) or (6<1) τότε η Python θα δεί οτι ο πρώτος τελεστέος είναι αληθής και δεν θα προχωρήσει στον υπολογισμό της τιμής του δεύτερου τελεστέου αφού έτσι και αλλιώς η έκφαρση είναι αληθής.

Οι τελεστέοι δεν έχουν την ίδια προταιρεότητα. Έστω π.χ. η έκφραση 2+5*3. Πρώτα θα εκτελεστεί ο πολλαπλασιασμός και μετά η πρόσθεση. Εάν έχουμε τελεστές με την ίδια προτεραιότητα τότε εκτελείτε αυτός που είναι αριστερά.  Η ιεραρχία των τελεστών είναι ως εξής:

  • (  )
  • **, * , /, //, %
  • +, _
  •  > , >= , < ,<= , != (Διάφορο), == (Ισότητα)
  • not, and,  or

Οι τελεστές + και * μπορούν να χρησιμοποιηθούν και για κείμενα. Δείτε δύο παραδείγματα: x=»Καλη»+»μέρα» y=»αβγ»*3. Οι τιμές των μεταβλητών x και y θα είναι Καλημέρα και αβγαβγαβγ.

Ο τελεστές in επιστρέφει την τιμή αληθής εάν ο τελεστέος αριστερά συμπεριλαμβάνεται στον τελεστέο δεξιά. Ο τελεστής not in κάνει το αντίθετο.

Η εντολή x=x+1 μπορεί να γραφεί και ως εξής : x+=1. Αντίστοιχοι τελεστές υπάρχουν και για την αφαίρεση (-=), διαίρεση (/=), πολλαπλασιασμό (*/) κλπ.

 

Ασκήσεις

  1. Να γραφεί πρόγραμμα που να διαβάζει την ακτίνα ενός κύκλου και να υπολογίζει και να εμφανίζει το μήκος της περιφέρειας του κύκλου και το εμβαδόν του.
  2. Να γραφεί πρόγραμμα που να διαβάζει έναν αριθμό (σε δευτερόλεπτα) και να τον μετατρέπει σε ώρες, λεπτά και δευτερόλεπτα. Παράδειγμα: 3750 δευτ. αντιστοιχούν σε 1 ώρα, 2 λεπτά και 30 δευτερόλεπτα.

 

Δομή της Επιλογής
Παρατήρηση: Τα μπλοκ των εντολών αποτελούνται από εντολές με την ίδια εσοχή. Αν το μπλοκ αποτελείται από μια μόνο εντολή, τότε μπορεί να γραφτεί στην ίδια γραμμή με την if ή την elif ή την else. Π.χ.
 

Ασκήσεις

  1. Να γραφεί πρόγραμμα που να δέχεται 2 αριθμούς και ένα τελεστή (+ , – , * , /). Στη συνέχεια, να υπολογίζει και να εμφανίζει το αποτέλεσμα της πράξης που δέχθηκε με τους δύο αριθμούς, εμφανίζοντας κατάλληλο μήνυμα.
  2. Να γραφτεί πρόγραμμα που να υπολογίζει το μισθό μιας εργαζόμενης, η οποία αμοίβεται με την ώρα. Το πρόγραμμα, θα διαβάζει το όνομά της, τις ώρες εργασίας της για τον μήνα, το ωρομίσθιό της και αν είναι έγγαμη ή άγαμη. Οι κρατήσεις, εξαρτώνται από το ύψος του μισθού. Αν ο μισθός είναι μέχρι 1000€ το μήνα, έχει 15% κρατήσεις, διαφορετικά 25%. Οι έγγαμοι, δικαιούνται ένα επίδομα 50€.

 

Δομές Επανάληψης
Παρατήρηση: Η τιμή του μέχρι που είναι μέσα στη παρένθεση του range δεν είναι η τελική τιμή. Η τελική τιμή της μεταβλητής είναι (μέχρι – βήμα). Επίσης οι τιμές αρχή και βήμα είναι προεραιτικές, εαν παραλειφθούν παίρνουν τις τιμές 0 και 1 αντίστοιχα.

Η εντολή break μέσα σε μια while ή for τερματίζει τις επαναλήψεις. Η εντολή continue αγνοεί τις εντολές που ακολουθούν στην while ή for και πηγαίνει στην αρχή της επανάληψης. Η χρήση και των δύο συναρτήσεων πρέπει να γίνεται με φειδώ.

Αν το πρόγραμμα μας πέσει σε ατέρμωνη επανάληψη τότε για να την διακόψουμε πρέπει να πατήσουμε Ctrl+C.

Ασκήσεις

  1. Να γραφτεί πρόγραμμα που να διαβάζει βαθμούς μέχρι να δεχθεί αρνητικό αριθμό. Στην συνέχεια να εμφανίζει το μέσο όρο τους.
  2. Να γραφτεί πρόγραμμα που να διαβάζει 100 ηλικίες και να υπολογίζει τον μέσο όρο τους.
  3. Να γραφτεί πρόγραμμα σε γλώσσα Python, που να δέχεται 100 αριθμούς από τον χρήστη και να εμφανίζει το πλήθος των άρτιων αριθμών που πληκτρολογήθηκαν.
  4. Να γραφτεί πρόγραμμα σε γλώσσα Python, που να δέχεται αριθμούς από τον χρήστη μέχρι να δώσει το μηδέν και να εμφανίζει το πλήθος των περιττών που πληκτρολογήθηκαν.
  5. Να γραφτεί πρόγραμμα σε γλώσσα Python, που να δέχεται 100 αριθμούς από το πληκτρολόγιο. Στη συνέχεια να υπολογίζει και να εμφανίζει το πλήθος των θετικών, το πλήθος των αρνητικών και το πλήθος των μηδενικών που δόθηκαν.
  6. Να γραφτεί πρόγραμμα που να υπολογίζει το άθροισμα 1+2+3+…+100.
  7. Να γραφτεί πρόγραμμα που να υπολογίζει το άθροισμα 12+32+52+…+502.
  8. Σε ένα τμήμα 27 μαθητών Γ΄ Λυκείου, θέλουμε να υπολογίσουμε το ποσοστό των μαθητών που πήραν γραπτό βαθμό στη Πληροφορική κάτω από 10, το ποσοστό των μαθητών που πήραν βαθμό από 10 μέχρι 15 και το ποσοστό με βαθμό μεγαλύτερο του 15. Να γραφτεί πρόγραμμα, που να δέχεται τους βαθμούς των μαθητών, να υπολογίζει και να εμφανίζει τα παραπάνω ποσοστά.
  9. Για κάθε μαθητή δίνονται τα στοιχεία: ονοματεπώνυμο, προφορικός και γραπτός βαθμός ενός μαθήματος. Να γραφτεί πρόγραμμα που να εκτελεί τις παρακάτω λειτουργίες:
    i. Να διαβάζει τα στοιχεία πολλών μαθητών και σταματά, όταν δοθεί ως ονοματεπώνυμο το κενό.
    ii. Να ελέγχει αν ο προφορικός και ο γραπτός βαθμός είναι από 0 μέχρι 20. Στην περίπτωση που δεν είναι ο βαθμός στα επιτρεπτά όρια, να ξαναδιαβάζεται ο βαθμός μέχρι να δώσουμε τον σωστό βαθμό.
    iii. Να υπολογίζει τον τελικό βαθμό του μαθήματος, ο οποίος είναι άθροισμα του 30% του προφορικού βαθμού και του 70% του γραπτού βαθμού. Επίσης, να εμφανίζει το ονοματεπώνυμο του μαθητή και τον τελικό βαθμό του μαθήματος.
    iv. Να υπολογίζει και να εμφανίζει το πλήθος των μαθητών που έχουν βαθμό μεγαλύτερο του 18.
  10. Μία εταιρεία δημοσκοπήσεων θέτει σ’ ένα δείγμα 500 πολιτών ένα ερώτημα. Για την επεξεργασία των δεδομένων να αναπτυχθεί πρόγραμμα που:
    i. Να διαβάζει το φύλλο του πολίτη (Α= Άνδρας, Γ= Γυναίκα).
    ii. Να διαβάζει την απάντηση στο ερώτημα, η οποία μπορεί να είναι ‘ΝΑΙ’ ή ‘ΟΧΙ’ ή ‘ΔΕΝ ΞΕΡΩ’ .
    iii. Να υπολογίζει και να εμφανίζει το πλήθος των ατόμων που απάντησαν ‘ΝΑΙ’.
    iv. Να υπολογίζει και να εμφανίζει το πλήθος των ατόμων που απάντησαν ‘ΟΧΙ’.
    v. Στο πλήθος των ατόμων που απάντησαν ‘ΝΑΙ’ να υπολογίζει και να εμφανίζει το ποσοστό των ανδρών και το ποσοστό των γυναικών.
  11. Ένα σχολείο αποφάσισε να πάει μια 3ήμερη εκδρομή. Να γίνει πρόγραμμα που θα εκτελεί τα παρακάτω:
    i. Να δίνει το σύνολο των μαθητών του σχολείου.
    ii. Για κάθε μαθητή θα δίνεται το ερώτημα «Θέλεις να πας εκδρομή (ΝΑΙ/ΟΧΙ) ;»
    iii. Ο μαθητής θα απαντά στο παραπάνω ερώτημα με ΝΑΙ ή ΟΧΙ.
    iv. Να υπολογίζει και να εμφανίζει το πλήθος και το ποσοστό των μαθητών που απάντησαν «ΝΑΙ».
  12. Να γραφτεί πρόγραμμα που να δέχεται αριθμούς μέχρι να πληκτρολογήσουμε το 100. Το πρόγραμμα να υπολογίζει και να εμφανίζει το άθροισμα, το πλήθος και το μέσο όρο των αριθμών που δόθηκαν. Ο αριθμός 100, που σηματοδοτεί και το τέλος της πληκτρολόγησης, να λαμβάνεται υπόψη στους παραπάνω υπολογισμούς.
  13. Στα Μαθηματικά, οι Αριθμοί Φιμπονάτσι (Fibonacci ) είναι οι αριθμοί της παρακάτω ακέραιης ακολουθίας: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, …  Εξ ορισμού, οι πρώτοι δύο αριθμοί Φιμπονάτσι είναι το 0 και το 1, και κάθε επόμενος αριθμός είναι το άθροισμα των δύο προηγούμενων. Να γραφτεί πρόγραμμα που να διαβάζει ένα ακέραιο αριθμό και να υπολογίζει και να εμφανίζει τους όρους της ακολουθίας Fibonacci που είναι μικρότεροι από τον αριθμό αυτό.
    Λύση
    Ακολουθεί μια δεύτερη πιο σύντομη λύση
  14. Να γραφτεί πρόγραμμα για 35 μαθητές, που να δίνονται οι μέσοι όροι των βαθμών τους. Το πρόγραμμα να υπολογίζει και να εμφανίζει:
    i. Τον μεγαλύτερο βαθμό
    ii. Τον μικρότερο βαθμό, και
    iii. Τον μέσο όρο όλων των βαθμών.
  15. Η εικασία του Lothar  Collatz διατυπώθηκε από τον ίδιο το 1937 και μέχρι τώρα δεν έχει αποδειχθεί: Έστω ν ένας τυχαίος ακέραιος αριθμός. Αν ο ω είναι άρτιος τότε πρέπει να τον διαρέσουμε με το 2 ενώ αν είναι περιττός να τον πολλαπλασιάσουμε με το 3 και να προσθέσουμε 1. Αν επαναλάβετε αυτή την απλή διαδικασία στο τέλος θα καταλήξουμε με  τον αριθμό 1.
    Να γραφεί πρόγραμμα που διαβάζει ένα τυχαίο ακέραιο αριθμό και εμφανίζει όλες τις μετατροπές του μέχρι να γίνει 1.
    Λύση
  16. Να γραφτεί πρόγραμμα που επιλέγει ένα τυχαίο ακέραιο αριθμό μεταξύ 1 εως 100 και στην συνέχεια μας ζητάει να μαντέψουμε τον αριθμό. Αν δεν τον βρούμε τότε μας ενημερώνει για το αν ο αριθμός που μαντέψαμε είναι μικρότερος ή μεγαλύτερος από αυτον που επέλεξε το πρόγραμμα. Ο χρήστης επιτρέπεται να δοκιμάσει μέχρι και 7 φορές.
    Λύση

 

Συναρτήσεις

Υπάρχουν κάποιες συναρτήσεις που όταν τις χρειαστούμε απλά τις καλούμε όπως π.χ. input, print και len. Αυτές καλούνται built-in (ενσωματωμένες). Για να δείτε όλες τις ενσωματωμένες συναρτήσεις κάντε κλικ εδώ. Οι υπόλοιπες συναρτήσεις είναι ομαδοποιημένες. Για να χρησιμοποιήσουμε μία τέτοια συνάρτηση θα πρέπει πρώτα να γράψουμε import όνομα_ομάδας. Παραδείγματα:

  • Η συνάρτηση randint(x,y) επιστρέφει ένα τυχαίο ακέραιο μεταξύ x και y και ανήκει στην ομάδα με όνομα random. Για να την χρησιμοποιήσουμε πρέπει πρώτα να γράψουμε import random. Στην Python οι ομάδες αποκαλούνται modules.
  • Ένα πρόγραμμα τερματίζεται αυτόματα όταν εκτελεστεί και η τελευταία εντολή. Για να προκαλέσουμε τερματισμό νωρίτερα μπορούμε να χρησιμοποιήσουμε την συνάρτηση sys.exit()  που ανήκει στην ομάδα (module) sys. Άρα πρέπει κάπου στην αρχή να έχουμε γράψει import sys.

Μπορούμε να φτιάξουμε και δικές μας συναρτήσεις. Η σύνταξη είναι:

και ένα παράδειγμα:

Στην περίπτωση που μια συνάρτηση δεν περιλαμβάνει την εντολή return τότε επιστρέφει την τιμή None.

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

  • Δεν μπορούμε να χρησιμοποιήσουμε μία τοπική μεταβλητή πουθενά αλλού παρά μόνο μέσα στην συνάρτηση της.
  • Αντίθετα, μπορούμε να χρησιμοποιήσουμε μία καθολική μεταβλητή μέσα σε οποιαδήποτε συνάρτηση.
  • Επιτρέπεται η χρήση του ίδιου ονόματος για δύο (ή περιοσσότερες) μεταβλητές αρκεί να μην βρίσκονται στην ίδια συνάρτηση ή και οι δύο στο κυρίως πρόγραμμα.

 

Λίστες

Μοιάζουν με τους πίνακες που συναντάμε στις περισσότερες γλώσσες προγραμματισμού αλλά μας παρέχουν περισσότερη ευελιξία. Η Λίστα είναι μια δομή δεδομένων. Είναι ένα διατεταγμένο σύνολο στοιχείων/αντικειμένων όχι κατ’ανάγκη του ίδιου τύπου (συνήθως είναι του ίδιου τύπου) και περιλαμβάνονται μεταξύ των συμβόλων των αγκυλών [  … ].Ένα στοιχείο μιας Λίστας μπορεί να επαναλαμβάνεται περισσότερες από μία φορές.

Για να αναφερθούμε στο 1ο στοιχείο μιας λίστας πρέπει να γράψουμε όνομα_λίστας[0], για το δεύτερο όνομα_λίστας[1] κοκ. Επίσης για το τελευταίο στοιχείο , το προτελευταίο, κοκ μπορούμε να γράψουμε αντίστοιχα όνομα_λίστας[-1], όνομα_λίστας[-2] κοκ.

Επιτρέπεται λίστα μέσα σε λίστα.

Μπορούμε να διαγράψουμε διαδοχικά στοιχεία της λίστας με την εντολή del Όνομα_λίστας[ν1:ν2], όπου ν1 η θέση του πρώτου στοιχείου προς διαγραφή και ν2 η θέση του επόμενου από το τελευταίο προς διαγραφή. Θα διαγράψει δηλ τα στοιχεία που είναι στις θέσεις ν1, ν1+1, …, ν2-1. Θυμίζουμε οτι το πρώτο κελί είναι στην θέση 0.

Για να τροποποίησουμε ένα στοιχείο απλά εκχωρούμε μία τιμή σε αυτό.

 

Χρήσιμοι Μέθοδοι για Λίστες

Το κείμενο δεν είναι παρά μία λίστα χαρακτήρων. Κάθε χαρακτήρας και ένα διαφορετικό στοιχείο της λίστας.

Προσοχή: Σε αντίθεση με τις λίστες στο κείμενο δεν μπορούμε να αλλάξουμε κάποιους χαρακτήρες. Το ακόλουθο τμήμα πρόγράμματος είναι λάθος.

Ο σωστός τρόπος είναι :

 

Ασκήσεις

  1. Συμπληρώστε το παρακάτω τμήμα προγράμματος ώστε να διαβάζει τον αριθμό κάποιου μήνα (1-12) και να εμφανίζει το όνομα του σε συντόμευση.
    Λύση
  2. Κάθε χαρακτήρας αποθηκευέται στο υπολογιστή σαν αριθμός. Το σύστημα που χρησιμοποιείται για την μετατροπή χαρακτήρων σε αριθμούς και αντίστροφα λέγεται Unicode (utf-8). Η συνάρτηση ord(«Α») επιστρέφει τον αριθμό που αντιστοιχεί στον χαρακτήρα Α (για το ελληνικό Α είναι 913), η συνάρτηση chr(913) κάνει το αντίθετο.
    Να φτιάξετε πρόγραμμα που διαβάζει ένα κείμενο και το κωδικοποιεί μετατρέποντας κάθε χαρακτήρα στον επόμενο του σύμφωνα με το σύστημα utf-8. Στο τέλος να εμφανίζει το κωδικοποιημένο κείμενο.
    Να φτιάξετε ένα δεύτερο πρόγραμμα που θα αποκωδικοποιεί τα κρυπτογραφημένα μηνύματα του πρώτου προγράμματος και θα το εμφανίζει.
    Λύση

 

Tuple και Dictionary

Tuples (Πλειάδα ?). Μοιάζουν καταπληκτικά με τις λίστες. Έχουν όμως δύο διαφορές:

  • αντί για αγκύλες [ ] χρησιμοποιούμε παρενθέσεις ( ) και
  • Τα στοιχεία τους δεν μπορούν να τροποποιηθούν (παραμένει σταθερή).

Δύο χρήσιμες συναρτήσεις για μετατροπή σε λίστα ή tuple είναι η tuple() και list().

 

Dictionaries. Μοιάζουν με τις λίστες. Αντί για αγκύλες έχουν άγκιστρα { } Η σημαντικότερη διαφορά είναι οτι κάθε στοιχείο τους (value) πρέπει να συνδυάζεται με μία τιμή (key). Η σειρά είναι key-value. Για παράδειγμα, ας υποθέσουμε ότι θέλουμε να συσχετίσουμε κάποιους Αγγλικούς όρους με τους αντίστοιχους ελληνικούς.

Στο πρόγραμμα που ακολουθεί έχουν ήδη καταχωρηθεί τα ονόματα και οι ημερομηνίες γέννησης κάποιων ανθρώπων. Ο χρήστης καλείται να πληκτρολογήσει ένα όνομα. Αν το όνομα υπάρχει καταχωρημένο τότε εμφανίζεται η ημερομηνία γέννησης αλλιώς εμφανίζεται μήνυμα που ζητάει την ημερομηνία γέννησης. Το νέο όνομα και η ημερομηνία προστίθενται στο dictionary και η διαδικασία επαναλαμβάνεται μέχρι ο χρήστης να πληκτρολογήσει την λέξη ΤΕΛΟΣ.

 

Καλές ιστοσελίδες:

Σχολικό βιβλίο: εδώ.