Post Pic

Μαθαίνοντας Python – Μέρος 3ο

Σε προηγούμενα βοηθήματα κάναμε την εισαγωγή στην Γλώσσα προγραμματισμού Python, και είδαμε κάποια βασικά προβλήματα που μπορεί να αντιμετωπήσουμε. Το σημερινό μας άρθρο συμπληρώνει την παρουσίαση των βασικών θεμάτων της γλώσσας Python και θα μας επιτρέψει, από την επόμενη φορά, να αρχίσουμε να σχεδιάζουμε τα πρώτα μας προγράμματα.

Προαπαιτούμενα

Δημιουργία ενός Python script (βλ. Μαθαίνοντας Python – Μέρος 1ο )

Εισαγωγή στην Python (βλ. Μαθαίνοντας Python – Μέρος 2ο)

Πριν ξεκινήσουμε…

… θα ήθελα να επισημάνω ένα – δύο πρακτικά ζητήματα.

Στη συνέχεια παρουσιάζεται ο τρόπος για να επιτευχθούν οι στόχοι που περιγράψαμε στην εισαγωγή. Θα παρατηρήσετε ότι το άρθρο ακολουθεί τη δομή:

Μικρή περιγραφή του τι θέλουμε να επιτύχουμε (+ επιπλέον σχόλια)

Παράδειγμα κώδικα

Στ ο τέλος του αρχείου θα βρείτε συνημμένο ένα python script που περιέχει συγκεντρωμένα όλα τα παραδείγματα.

Για να τα χρησιμοποιήσετε, αντιγράφετε το εκάστοτε παράδειγμα σε ένα νέο αρχείο python και το εκτελείτε (βλ. Μαθαίνοντας Python – Μέρος 1ο ). Τα παραδείγματα είναι φτιαγμένα με τέτοιον τρόπο ώστε να τυπώνουν τα αποτελέσματα στην οθόνη ώστε να μπορείτε να πιστοποιήσετε εύκολα τη λειτουργικότητά τους. Για διευκόλυνσή σας έχουμε χωρίσει τα παραδείγματα με σχόλια που δίνουν μια μικρή περιγραφή του τι επιχειρούμε κάθε φορά.

Καθίστε αναπαυτικά γιατί, θα πάρει λίγο χρόνο…

Συνένωση αλφαριθμητικών

Στην python μπορούμε να συνενώσουμε αλφαριθμητικά με 3 τρόπους.

  • Τα αλφαριθμητικά σε παράθεση χωρισμένα με τον χαρακτήρα ‘+’
  • Τα αλφαριθμητικά απλά σε παράθεση
  • Με χρήση της συνάρτησης .strip()

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


print("Are you suggesting" " coconuts migrate?")

print('Are you suggesting'.strip() + ' coconuts migrate?')

Το αλφαριθμητικό ως πίνακας χαρακτήρων

Ένα αλφαριθμητικό στην Python μπορεί κανείς να το διαχειριστεί και ως πίνακα χαρακτήρων (λειτουργικότητα που παρέχεται και από άλλες γλώσσες όπως για παράδειγμα η C).

Για να καταλάβουμε λίγο καλύτερα γιατί ακριβώς μιλάμε αν έχουμε το αλφαριθμητικό “test” σαν πίνακας χαρακτήρων αυτό αναπαρίσταται ως:

0

1

2

3

t

e

s

t

Δηλαδή αν η μεταβλητή μας που περιέχει το αλφαριθμητικό καλείται myString τότε δίνοντας στον διερμηνευτή της Python myString[0] θα πρέπει να μας επιστρέψει τον χαρακτήρα ‘t’.

Ας δούμε λίγο πιο αναλυτικά τι ενέργειες μας επιτρέπει η Python να εκτελέσουμε σε έναν πίνακα χαρακτήρων.


text = "Are you suggesting coconuts migrate?"

text[8]

text[0:3]

text[4:7]

text[:19]

text[19:]

Δημιουργούμε το αλφαριθμητικό text. Εν συνέχεια, οι γραμμές κώδικα που σας δίνουμε έχουν τα εξής αποτελέσματα (κατά σειρά εμφάνισης):

  • Επιστρέφεται ο χαρακτήρας που βρίσκεται στην θέση 8 (δηλαδή ο 9ος κατά σειρά χαρακτήρας του αλφαριθμητικού αφού η αρίθμηση των θέσεων ξεκινά από το 0)
  • Επιστρέφονται οι χαρακτήρες από τη θέση 0 ως την 3
  • Επιστρέφονται οι χαρακτήρες από τη θέση 4 ως την 7
  • Επιστρέφονται οι χαρακτήρες από τη θέση 19 και πριν’
  • Επιστρέφονται οι χαρακτήρες από τη θέση 19 και μετά

Εκτός από θετικούς δείκτες θέσεων μπορούμε να έχουμε και αρνητικούς


text = "Are you suggesting coconuts migrate?"

text[-1]

text[-2]

text[-3:]

text[:-10]

text[-0]

Και πάλι κατά σειρά εμφάνισης:

  • Επιστρέφεται ο τελευταίος χαρακτήρας
  • Επιστρέφεται ο προ-τελευταίος χαρακτήρας
  • Επιστρέφονται οι 3 τελευταίοι χαρακτήρες
  • Επιστρέφονται οι χαρακτήρες από την δέκατη, από το τέλος, θέση και πριν
  • Επιστρέφεται ο πρώτος χαρακτήρας [το  -0 θεωρείται ίσο με το 0 ]

Μπορούμε να συνδυάσουμε την συνένωση αλφαριθμητικών με τους πίνακες χαρακτήρων ως εξής:


'Do ' + text[4:]

Η συγκεκριμένη γραμμή κώδικα συνενώνει το αλφαριθμητικό ‘Do’ με τους χαρακτήρες του αλφαριθμητικού της μεταβλητής text από την τέταρτη θέση και μετά.

Hacks πινάκων χαρακτήρων

Αν θεωρήσουμε το ίδιο αλφαριθμητικό


text = "Are you suggesting coconuts migrate?"

text[1:2000]

text[120:]

text[5:4]

text[-100:]

Κατά σειρά εμφάνισης:

  • Παίρνουμε το κομμάτι του πίνακα χαρακτήρων στο οποίο υπάρχει πληροφορία
  • Παίρνουμε “ “ (κενό χαρακτήρα)
  • Παίρνουμε “ “ (κενό χαρακτήρα)
  • Παίρνουμε το κομμάτι του πίνακα χαρακτήρων στο οποίο υπάρχει πληροφορία

Από τα παραπάνω συμπεραίνουμε δηλαδή πως όταν οι θέσεις που ζητούμε δεν υπάρχουν ή δεν έχουν πληροφορία η Python μας επιστρέφει έναν κενό χαρακτήρα.

ΠΡΟΣΟΧΗ: Αν ζητήσουμε τον χαρακτήρα μιας θέσης με αρνητικό δείκτη που βρίσκεται έξω από τα όρια του αλφαριθμητικού μας τότε η Python θα μας επιστρέψει error. Για παράδειγμα, για το αλφαριθμητικό Are you suggesting coconuts migrate?  Η εντολή text[-50] θα προκαλέσει σφάλμα.

Εισαγωγή Unicode χαρακτήρα

Η εισαγωγή Unicode χαρακτήρων γίνεται στην Python με τη χρήση του \u ακολουθούμενο από τον κωδικό του χαρακτήρα. Για παράδειγμα:


print( "Are\u0020you suggesting..." )

Θα εμφανίσει στην κονσόλα μας:

Are you suggesting…

Μεταφράζοντας το \u0020 ως τον κενό χαρακτήρα.

Το μήκος ενός αλφαριθμητικού

Το μήκος ενός αλφαριθμητικού μπορούμε να το ανακτήσουμε χρησιμοποιώντας την συνάρτηση len() όπως φαίνεται παρακάτω:


len(text)

Αν εκτελείτε τις εντολές του βοηθητικού μας αρχείου καθώς διαβάζεται τον οδηγό και στο συγκεκριμένο σημείο η Python σας επέστρεψε 36 τότε γνωρίζετε πλέον πώς να διαχειρίζεστε αλφαριθμητικά και σας αξίζει μια κούπα του αγαπημένου σας καφέ ή τσαγιού.

Λίστες

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

Στην Python δηλώνουμε μια λίστα περικλείοντας τα αντικείμενά της σε τετραγωνικές αγκύλες [ … , … , … , ]. Δεν είναι απαραίτητο να δηλώσουμε εξ’ αρχής όλα τα αντικείμενα που θέλουμε να περιλαμβάνει η λίστα μας. Επίσης, λόγω του ότι στην Python δεν δηλώνουμε τύπους δεδομένων οι λίστες μας μπορούν να αποτελούνται από αντικείμενα διαφορετικά μεταξύ τους (ακεραίους, πραγματικούς, αλφαριθμητικά, κ.ο.κ.).

Ας δούμε μερικά παραδείγματα:

Έστω η λίστα myList:


myList = ['monty', 'python', 999, 222]

myList

myList[0]

myList[-1]

myList[1:-1]

Κατά σειρά οι παραπάνω εντολές έχουν τα εξής αποτελέσματα:

  • Εμφανίζεται η λίστα όπως έχει δηλωθεί
  • Εμφανίζεται το πρώτο στοιχείο της λίστας
  • Εμφανίζεται το τελευταίο στοιχείο της λίστας
  • Εμφανίζονται τα στοιχεία της λίστας μεταξύ του πρώτου και του τελευταίου

Εισαγωγή στοιχείου σε λίστα


myList[1:1] = ['foo', 'foo2']

Η παραπάνω εντολή εισάγει τα στοιχεία ‘foo’ και ‘foo2’ στην δεύτερη και τρίτη θέση της λίστας που δηλώσαμε στο προηγούμενο ακριβώς παράδειγμα.

Εν γένει:


myList[X] = κάποιος τύπος δεδομένου 

Θα εισάγει το περιεχόμενο της μεταβλητής Κάποιος τύπος δεδομένου στην θέση Χ της λίστας myList

Διαγραφή στοιχείου από λίστα


myList[0:2] = []

Η παραπάνω εντολή θα διαγράψει τα τρία πρώτα στοιχεία της λίστας myList

Εν γένει:


myList[X] = [] 

Θα διαγράψει το στοιχείο που βρίσκεται στη θέση Χ της λίστας myList

Εισαγωγή ενός αντιγράφου της λίστας στην αρχή της


myList[:0] = myList

Η παραπάνω εντολή θα δημιουργήσει ένα αντίγραφο της λίστας myList στην αρχή της

Καθαρισμός της λίστας


myList[:] = []

Η παραπάνω εντολή θα καθαρίσει την λίστα myList από τα περιεχόμενά της

Μήκος μιας λίστας

Η συνάρτηση len() που είδαμε παραπάνω να χρησιμοποιείται για να μας δώσει το μήκος ενός πίνακα χαρακτήρων χρησιμοποιείται και στις λίστες με τον ίδιο ακριβώς σκοπό

Επομένως η εντολή:


Len(myList)

Μας επιστρέφει τον αριθμό των στοιχείων που περιέχει η λίστα myList

Εμφωλευμένες λίστες

Η Python υποστηρίζει τον όρο της εμφωλευμένης λίστας δηλαδή μια λίστα μέσα σε μια άλλη λίστα.


myNestedList = ["Holy", "Grail"]

myList = [myNestedList, "by", "Monty", "Python"]

print( myList )

Στον παραπάνω κώδικα η λίστα myNestedList αποτελεί στοιχείο της λίστας myList και επομένως αν εκτελέσουμε το συγκεκριμένο τμήμα κώδικα το αποτέλεσμα που θα πάρουμε θα είναι:


[['Holy', 'Grail'], 'by', 'Monty', 'Python']

Προσθήκη στοιχείου στο τέλος της λίστας με χρήση της append()

Εκτελώντας


myList.append(Χ)

το στοιχείο Χ προστίθεται στο τέλος της τρέχουσας μορφής της λίστας myList.

Σε αυτό το σημείο ο σημερινός μας οδηγός έφθασε στο τέλος του και πλέον έχετε γνωρίσει τα βασικά στοιχεία της γλώσσας Python. Στον επόμενο οδηγό μας θα αρχίσουμε να σχεδιάζουμε μικρά python scripts που θα μας επιτρέψουν να εξερευνήσουμε την γλώσσα Python σε μεγαλύτερο βάθος.

Ως τότε όμως, να είστε καλά και να προσέχετε τον εαυτό σας.

Μπορείτε να κατεβάσετε τα αρχεία του βοηθήματος εδώ

download




Ένα Σχόλιο

14:21 / 06.04.10
#1

Καταρχήν θα ήθελα να δώσω συγχαρητήρια για την προσπάθεια που γίνεται τόσο από το GreekTuts, αλλά και από εσένα για το κομμάτι της Python που έχω ξεκινήσει να διαβάζω.

Θα ήθελα να κάνω μία παρατήρηση στο σημείο: “Εισαγωγή στοιχείου σε λίστα” που αναφέρεις:
myList[1:1] = ['foo', 'foo2']
για να μπουν τα ‘foo’ και ‘foo2′ στη 2η και 3η θέση της λίστας μήπως θα έπρεπε να είναι έτσι:
myList[1:2] = ['foo', 'foo2']

Ευχαριστώ πολύ. :)

Trackbacks - Pingbacks

Αφήστε ένα σχόλιο

* Το όνομα σας, το Email, και το σχόλιο είναι απαιτούμενα

Γραφτείτε στις Email Ενημερώσεις

Εισάγετε το email σας:

Powered by FeedBurner

Log In

Register

Lost your Password?

Tag Cloud

Οι Φίλοι μας στο Twitter

gkapraras
tophostGR
jsclavos
gegenos
papaki
FORADA
lennondtps
wdfgr
nfountas
zouri9
Th3Ag3nt
ThodorisV
thevoyager
techfansGR
wp2blog
St0iK
andreas_m68
herath72
silve992
Dimitraakis
kymagr
papano
amorphis_
nikos171984
kalliophhhh
g_argyrakis
gstam78
GamesHellasGR
dimsim7
gkatsampirhs
giorgioret
Zoitsa_2010
ultrathunder
Weird_AL
splusgr
payne4life
fotisk
bartvii
LewisHowes
Chrysanthospro
Serderides
ideodoxeio
hambos227
BeBestT
gamosgamos
Φίλοι: 271 Μας ακολουθούν: 221

To GreekTuts Στο Διαδύκτιο

Bookmark & Share

Γίνε Συνδρομητής Στο GreekTuts


Κερδίστε πρόσβαση σε επιπλέον υλικό και άρθρα, αλλά και πολλές άλλες παροχές και προσφορές αγοράζοντας μία απο τις συνδρομές που σας προσφέρει το GreekTuts.

Γράψτε Για Το GreekTuts


Θέλετε και εσείς να γράψετε άρθρα για το GreekTuts; Διαβάστε περισσότερα εδώ. Οποιοσδήποτε μπορεί να στείλει, γι'αυτό αδράξτε την ευκαιρία και στείλτε μας και εσείς.