Python

ΕΝΟΤΗΤΑ 8 - Formatting Strings

image description

Είναι πολύ σημαντικό στην Python αλλά και γενικότερα στον προγραμματισμό να γνωρίζουμε πως μπορούμε να διαχειριστούμε πολλαπλά strings. Μπορεί να μην βλέπετε άμεσα αυτή την ανάγκη, αλλά όπως αναλύουμε την θεωρία στο σημερινό δωρεάν μάθημα Python, σίγουρα θα καταλάβετε την χρησιμότητα των έτοιμων μεθόδων που μας προσφέρει η Python και σε ποιες περιπτώσεις μπορούν να χρησιμοποιηθούν. Στο σημερινό δωρεάν μάθημα Python θα δούμε τι έννοια του concatenation όπως και κάποια functions που μας δίνει η Python για να λάβουμε συγκεκριμένες πληροφορίες μέσα από ένα string

Ας ξεκινήσουμε με την πιο απλή μορφή διαχείρισης strings που είναι το concatenation - δηλαδή ο τρόπος να ενοποιούμε ένα ή και περισσότερα strings σε ένα μεγαλύτερο string. Το σύμβολο που χρησιμοποιείται για αυτό το σκοπό είναι το σύμβολο ( + ). Όταν η Python βλέπει ότι και οι δύο όροι αριστερά και δεξιά του συμβόλου ( + ) είναι string μεταβλητές, δεν εκτελεί την πράξη της πρόσθεσης ανάμεσα στους δύο όρους αλλά ενοποιεί (ή πιο απλά κολλάει) το ένα string δίπλα στο άλλο. Ας δούμε ένα παράδειγμα.

App.py


first_name = "Michail"
last_name = "Kassapoglou"
full_name = first_name + " " + last_name
print(full_name)
  

Output


Michail Kassapoglou
   

Προσέξτε ότι έχουμε προσθέσει και ένα κενό ανάμεσα στις δύο μεταβλητές έτσι ώστε το αποτέλεσμα, αν και είναι ένα ενιαίο string, θα εμφανιστεί με κενό ανάμεσα στο όνομα και το επίθετο.

Έχουμε πολλά έτοιμα functions που μας προσφέρει η Python για να μπορέσουμε να διαχειριστούμε καλύτερα τα strings. Άλλωστε αυτός είναι και ο λόγος δημιουργίας αυτής της ενότητας. Όσο αφορά την έννοια του function την γνωρίζετε ήδη αφού έχετε χρησιμοποιήσει την print( ) function αλλά και την format( ) στους αριθμούς. Η Python προσφέρει αντίστοιχα χρήσιμα functions και για την διαχείριση των strings. Ας δούμε μερικά από αυτά τα functions και ας καταλάβουμε τι δυνατότητες μας προσφέρουν.

Ο πιο εύκολος τρόπος να εισάγουμε ένα string σε οποιαδήποτε θέση μέσα σε ένα άλλο string είναι με την χρήση των f strings.

App.py


first = "Michail"
last = "Kassapoglou"
print( f"Your first name is {first }")
print( f"Your last name is {last }")
print(f"Your complete name is {first} {last}")
   

Output


Your first name is Michail
Your last name is Kassapoglou
Your complete name is Michail Kassapoglou
    

Ορίζουμε το μεταβλητό μέρος του string με τα{ } σύμβολα και ορίζουμε την αρχή του string με το γράμμα f. Μέσα στα { } γράφουμε το όνομα της μεταβλητής που περιέχει την string τιμή. Είναι πολύ απλό από ότι βλέπετε και εσείς.

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

App.py


first = "Michail"
last = "Kassapoglou"
print( "Your first name is %s" % first)
print( "Your last name is %s" % last)
print(f"Your complete name is %s %s" % (first, last))
   

Output


Your first name is Michail
Your last name is Kassapoglou
Your complete name is Michail Kassapoglou
    

Εκεί όπου θα εισάγουμε την μεταβλητή γράφουμε το %s. Το γράμμα s μετά το σύμβολο % ενημερώνει την Python ότι θα εισάγουμε ένα string. Εάν για παράδειγμα είχαμε αριθμό αντί για string τότε θα γράφαμε %d. Αμέσως μετά γράφουμε το σύμβολο % που υποδηλώνει ότι θα ακολουθήσει το όνομα της μεταβλητής. Στην τελευταία γραμμή όπου έχουμε εισαγωγή πολλαπλών strings, λόγω κανόνα πρέπει να βάλουμε τις μεταβλητές μέσα σε παρένθεση.

Ένα άλλο σημαντικό στοιχείο που έχουν τα strings αν και δεν είναι ορατό άμεσα είναι ο αριθμός index. Για κάθε χαρακτήρα ενός string η Python αναθέτει έναν αριθμό ξεκινώντας από το 0. Οπότε το όνομα μου θα είχε την εξής αρίθμηση.

Δωρεάν Μαθήματα και Σεμινάρια PYTHON

Για να διαβάσουμε τον χαρακτήρα που αντιστοιχεί σε μια συγκεκριμένη index θέση, γράφουμε το όνομα της string μεταβλητής και αμέσως μετά μέσα σε [ ] τον αριθμό του index. Αν γράψουμε αρνητικό αριθμό τότε διαβάζουμε το string από το τέλος. Προσέξτε με τον αριθμό του index. Αν ζητήσετε έναν αριθμό index μεγαλύτερο από εκείνο του string τότε το πρόγραμμα σας θα σταματήσει να λειτουργεί γιατί πολύ απλά ζητάτε κάποιον χαρακτήρα στην μνήμη του υπολογιστή που δεν υπάρχει.

App.py


first = "Michail"
print(first[2])
print(first[-3])
    

Output


c
a
    

Αν και μας αρέσει η ιδιότητα του index που υπάρχει στα string, συνήθως δεν ζητάμε ένα μεμονωμένο χαρακτήρα αλλά ένα υποσύνολο του string. Για να καταφέρουμε να διαβάσουμε ένα υποσύνολο του string χρησιμοποιούμε slicing.

App.py


first = "Michail"
print(first[0:3])
    

Output


Mic
    

Ο πρώτος αριθμός δηλώνει το index από το οποίο θα αρχίζουμε να διαβάζουμε το string, ενώ ο δεύτερος αριθμός δηλώνει πόσα index στο σύνολο τους θα διαβάσουμε. Άρα η εξήγηση στο πιο πάνω κώδικα είναι: ξεκίνησε να διαβάζεις από το index 0 και διάβασε συνολικά τρία index. Υπάρχει και μια τρίτη παράμετρος που είναι το step και δηλώνει ανά πόσους χαρακτήρες θα διαβάζουμε. Εάν δεν το δηλώσουμε τότε εξ ορισμού διαβάζονται όλοι οι χαρακτήρες από την αρχή μέχρι το σύνολο που έχει οριστεί γιατί η αύξηση του αριθμού index γίνεται κατά έναν αριθμό. Αν, για παράδειγμα δηλώσουμε τον αριθμό 2 για step, τότε θα διαβάζονται οι χαρακτήρες που αντιστοιχούν ανά δύο index αριθμούς. Στο επόμενο παράδειγμα δηλώνουμε ότι θέλουμε να διαβάσουμε όλο το string αλλά ενδιαφερόμαστε μόνο για τους χαρακτήρες που αντιστοιχούν σε κάθε δύο index αριθμούς.

App.py


first = "Michail"
print(first[0:6:2])
   

Output


Mca
     

Πριν κλείσουμε την σημερινή δωρεάν ενότητα στην Python γλώσσα προγραμματισμού, ας δούμε μερικά ακόμα functions που μπορούμε να χρησιμοποιήσουμε.

Το title( ) είναι ένα function που μετατρέπει σε κεφαλαία τα πρώτα μόνο γράμματα σε κάθε λέξη που περιέχεται στο string.

App.py


name = "michail kassapoglou"
print(name.title())
    

Output


Michail Kassapoglou
   

Η replace( ) function αντικαθιστά χαρακτήρες σε ένα string. Δέχεται δύο παραμέτρους – η πρώτη είναι ο χαρακτήρας που ψάχνουμε να αντικαταστήσουμε και η δεύτερη παράμετρος είναι ο καινούργιος χαρακτήρας που επιθυμούμε να εισάγουμε στο string ως αντικατάσταση του πρώτου.

App.py


name = "Michail Kassapogloy"
print( name.replace( "y", "u" ) )
    

Output


Michail Kassapoglou
     

Με την function find( ) μπορούμε να ψάξουμε για έναν ή περισσότερους χαρακτήρες σε ένα string. Το αποτέλεσμα είναι ένας αριθμός ο οποίος αντιπροσωπεύει τον index από τον οποίο αρχίζει ο χαρακτήρας ή η λέξη που ψάχνουμε στο string.

App.py


name = "Michail Kassapoglou"
print( name.find("Kassapoglou") )
    

Output


8
    

Με την strip( ) function μπορούμε να αφαιρέσουμε κενά από αριστερά και δεξιά ενός string ή χαρακτήρες που είναι στα άκρα του string. Συνήθως όμως το χρησιμοποιούμε για να αφαιρέσουμε τυχόν κενά που υπάρχουν ανάμεσα στα quotes ( “ ”) και τους χαρακτήρες.

App.py


name = "  Michail Kassapoglou  "
print( name.strip() )
    

Output


Michail Kassapoglou
    

Η τελευταία function που θα αναλύσουμε είναι η split( ) η οποία επιστρέφει μια λίστα με όλες τις λέξεις που περιέχονται σε ένα string. Δεν πειράζει αν ακόμα δεν καταλαβαίνετε την έννοια της λίστας. Θα μιλήσουμε για αυτήν σε μελλοντική ενότητα.

App.py


name = "Michail Kassapoglou"
print( name.split(" ") )
     

Output


['Michail', 'Kassapoglou']
     

Νομίζω πριν κλείσουμε την ενότητα, θα ήταν χρήσιμο να αναφερθούμε στο πως μπορείτε να βρείτε από μόνοι σας όλες αυτές τις μεθόδους και ακόμα περισσότερες που δεν έχουμε αναφέρει εδώ. Αυτό που έχετε να κάνετε είναι να γράψετε το όνομα της μεταβλητής που περιέχει μια string τιμή και να γράψετε την τελεία. Αμέσως μετά θα εμφανιστεί μια λίστα με όλα τα functions που μπορείτε να εφαρμόσετε στο συγκεκριμένο string. Αν η λίστα δεν εμφανιστεί αμέσως μπορείτε να πατήσετε Ctrl + Space Bar για να την εμφανίσετε.

Δωρεάν Μαθήματα και Σεμινάρια PYTHON

Επίσης για κάθε ένα από τα functions υπάρχει μια γρήγορη επεξήγηση της λειτουργίας της και της παραμέτρους που χρειάζεται για να λειτουργήσει σωστά.

Δωρεάν Μαθήματα και Σεμινάρια PYTHON

ΕΙΣΗΓΗΤΗΣ

Merry Jhonson

Μιχάλης Κασάπογλου

Ο Μιχάλης Κασάπογλου, είναι ένας από τους πιο έμπειρους τεχνικούς εκπαιδευτές στον χώρο του προγραμματισμού με πάνω από 20 χρόνια εμπειρία. Έχει εργαστεί σαν IT Operations Manager, Senior Programmer, και Training Team Leader ενώ κατέχει και αρκετές πιστοποιήσεις που καλύπτουν ένα μεγάλο φάσμα τεχνολογιών στο προγραμματισμό, σε βάσεις δεδομένων και cloud. Στον ελεύθερο του χρόνο διατηρεί ένα τεχνολογικό blog στο οποίο θα βρείτε αρκετά δωρεάν μαθήματα προγραμματισμού για αρχάριους.

loader