PYTHON ΕΝΟΤΗΤΑ 8 – Formatting Strings

 

Δωρεάν μαθήματα Python

ΕΙΣΑΓΩΓΗ

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

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

Concatenation

Ας ξεκινήσουμε με την πιο απλή μορφή διαχείρισης 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, θα εμφανιστεί με ένα κενό ανάμεσα στο όνομα και το επίθετο. Στην ουσία γίνεται πρώτα concatenation του first_name με το empty string και μετά προσθέτουμε και το last_name.

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

F - Strings

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

app.py

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

Output


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

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

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

app.py

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

Output


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

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

String Index

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


Δωρεάν μαθήματα Python

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

app.py

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

Output


c
a

String Slicing

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

app.py

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

Output

Mic

Ο πρώτος αριθμός δηλώνει το index από το οποίο θα αρχίζουμε να διαβάζουμε το string, ενώ ο δεύτερος αριθμός δηλώνει σε ποιο index θα σταματήσουμε. Τον χαρακτήρα στο index στο οποίο σταματάμε δεν το λαμβάνουμε υπόψη στο τελικό αποτέλεσμα. Άρα η εξήγηση στο παραπάνω παράδειγμα είναι: ξεκίνησε να διαβάζεις από το index 0 και σταμάτησε στο index 3 χωρίς όμως να διαβάσεις το στοιχείο στο index 3.

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

app.py

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

Output


Mca

Title( ) Function

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

app.py

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

Output


Michail Kassapoglou

Replace( ) Function

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

app.py

name = "michail kassapogloy"
print(name.replace("y", "u"))

Output


michail kassapoglou

Find( ) Function

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

app.py

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

Output


8

Strip( ) Function

Με την strip( ) function μπορούμε να αφαιρέσουμε τα κενά από την αρχή και το τέλος ενός string.

app.py

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

Output


Michail Kassapoglou

Split( ) Function

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

app.py

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

Output


['Michail', 'Kassapoglou']

GENERAL APPROACH

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



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

Μην ξεχάσετε να κάνετε ένα μικρό donationέτσι ώστε αυτό το siteνα μεγαλώσει ακόμα πιο πολύ και να αποκτήσει περισσότερες δυνατότητες onlineπαράδοσης δωρεάν μαθημάτων.

full-width

Post a Comment

0 Comments