Στην Python, οι συμβολοσειρές (strings) αναπαριστούν μια σειρά από χαρακτήρες και μπορούν να περικλείονται είτε σε μονά εισαγωγικά είτε σε διπλά εισαγωγικά. Οι συμβολοσειρές είναι αμετάβλητες (immutable), πράγμα που σημαίνει ότι μετά τη δημιουργία τους δεν μπορούν να τροποποιηθούν.
Στην Python, υπάρχουν πολλοί τρόποι για την επεξεργασία των συμβολοσειρών. Μπορούμε να χρησιμοποιήσουμε ενσωματωμένες μεθόδους και συναρτήσεις για να εκτελέσουμε διάφορες εργασίες πάνω σε συμβολοσειρές. Ορισμένες από αυτές τις ενσωματωμένες μεθόδους περιλαμβάνουν την εύρεση μήκους της συμβολοσειράς, την αντικατάσταση υποσυμβολοσειράς, τη διαίρεση της συμβολοσειράς σε λίστα χωρισμένη από κάποιον χαρακτήρα διαχωρισμού, και πολλά άλλα.
Παρακάτω παραθέτουμε μερικά παραδείγματα στην Python σχετικά με τις συμβολοσειρές:
# Δημιουργία ενός string my_string = "Hello World!" print(my_string) # Hello World! # Μήκος του string print(len(my_string)) # 12 # Πρόσβαση σε ένα συγκεκριμένο χαρακτήρα print(my_string[0]) # H print(my_string[-1]) # ! # Αλλαγή του χαρακτήρα στη θέση 6 my_string = my_string[:6] + 'Python' print(my_string) # Hello Python! # Εύρεση της θέσης ενός χαρακτήρα print(my_string.index('P')) # 6 # Μετατροπή σε κεφαλαία/πεζά print(my_string.upper()) # HELLO PYTHON! print(my_string.lower()) # hello python! # Έλεγχος αν ένα string ξεκινά με συγκεκριμένο χαρακτήρα print(my_string.startswith('H')) # True # Έλεγχος αν ένα string περιέχει ένα συγκεκριμένο υποσύνολο χαρακτήρων print('Python' in my_string) # True
Στην Python, οι συμβολοσειρές μπορούν να περικλείονται είτε με μονά εισαγωγικά είτε με διπλά εισαγωγικά.
Για παράδειγμα, οι παρακάτω δηλώσεις συμβολοσειράς είναι ισοδύναμες:
# Δημιουργία μεταβλητών με τύπο δεδομένων str (συμβολοσειρά) x = 'hello' y = "hello"
Το παραπάνω πρόγραμμα δημιουργεί δύο μεταβλητές με τύπο δεδομένων str
(συμβολοσειρά). Η πρώτη μεταβλητή x
περικλείει τη συμβολοσειρά μέσα σε μονά εισαγωγικά ('hello'
), ενώ η δεύτερη μεταβλητή y
περικλείει τη συμβολοσειρά μέσα σε διπλά εισαγωγικά ("hello"
). Και οι δύο μεταβλητές έχουν την ίδια τιμή 'hello'
.
[adinserter block=”2″]
Μπορείτε να εμφανίσετε μια συμβολοσειρά χρησιμοποιώντας τη συνάρτηση print(). Για παράδειγμα:
print("Hello, World!")
Επιπλέον, οι συμβολοσειρές στην Python μπορούν να συνενωθούν με τον τελεστή “+” και να επαναληφθούν με τον τελεστή “*”. Για παράδειγμα:
# Συνένωση δύο συμβολοσειρών x = "Hello" y = "World" z = x + " " + y print(z) # Εκτύπωση: "Hello World" # Επανάληψη συμβολοσειράς x = "Hello" y = x * 3 print(y) # Εκτύπωση: "HelloHelloHello"
Το παραπάνω πρόγραμμα δείχνει πώς μπορούμε να εκτελέσουμε διάφορες λειτουργίες σε συμβολοσειρές στην Python. Αρχικά, δημιουργούμε δύο μεταβλητές x
και y
που περιέχουν τις συμβολοσειρές “Hello” και “World” αντίστοιχα. Στη συνέχεια, με τον τελεστή +
, συνενώνουμε τις δύο συμβολοσειρές και το αποτέλεσμα αποθηκεύεται στη μεταβλητή z
. Τέλος, εκτυπώνουμε την τιμή της μεταβλητής z
, η οποία είναι “Hello World”.
Στη δεύτερη περίπτωση, εκχωρούμε στη μεταβλητή x
τη συμβολοσειρά “Hello” και με τον τελεστή *
πολλαπλασιάζουμε τη συμβολοσειρά x
με τον αριθμό 3. Το αποτέλεσμα αποθηκεύεται στη μεταβλητή y
και είναι η συμβολοσειρά “HelloHelloHello”. Τέλος, εκτυπώνουμε την τιμή της μεταβλητής y
.
Στην Python, μπορούμε να αναθέσουμε ένα αλφαριθμητικό σε μια μεταβλητή χρησιμοποιώντας το όνομα της μεταβλητής, ακολουθούμενο από τον τελεστή ανάθεσης (=
), και έπειτα το αλφαριθμητικό. Αυτή η διαδικασία ονομάζεται ανάθεση τιμής σε μια μεταβλητή.
Παράδειγμα:
# Δημιουργία μιας μεταβλητής με τύπο δεδομένων str my_string = "Αυτή είναι μια συμβολοσειρά!" # Εκτύπωση της μεταβλητής print(my_string)
Το παραπάνω πρόγραμμα δημιουργεί μια μεταβλητή με όνομα my_string
και της αναθέτει την τιμή “Αυτή είναι μια συμβολοσειρά!”. Η τιμή αυτή είναι μια συμβολοσειρά (string) και αναπαριστά ένα κείμενο. Με τη χρήση της εντολής print
, εκτυπώνεται η τιμή της μεταβλητής my_string
, που στην περίπτωση αυτή είναι η συμβολοσειρά “Αυτή είναι μια συμβολοσειρά!”.
Το αποτέλεσμα στην οθόνη θα είναι:
Αυτή είναι μια συμβολοσειρά!
Στην Python, μπορείτε να αντιστοιχίσετε μια πολλαπλών γραμμών συμβολοσειρά σε μια μεταβλητή χρησιμοποιώντας τριπλά εισαγωγικά. Αυτή η σύνταξη σας επιτρέπει να δημιουργήσετε μια συμβολοσειρά που αποτελείται από πολλαπλές γραμμές κειμένου χωρίς να χρειάζεται να χρησιμοποιήσετε line escapes ή να δημιουργήσετε πολλαπλά αντικείμενα και να τα συνενώσετε.
Για παράδειγμα, μπορείτε να γράψετε:
# Δημιουργία μιας πολλαπλών γραμμών συμβολοσειράς my_multiline_string = '''Αυτή είναι μια πολλαπλών γραμμών συμβολοσειρά.''' # Εκτύπωση της πολλαπλών γραμμών συμβολοσειράς print(my_multiline_string)
Η τιμή της μεταβλητής my_multiline_string
θα είναι η πολλαπλών γραμμών συμβολοσειρά που περιλαμβάνει το κείμενο “Αυτή είναι”, “μια πολλαπλών γραμμών” και “συμβολοσειρά”.
[adinserter block=”3″]
Η χρήση των τριπλών εισαγωγικών επιτρέπει επίσης τη διατήρηση της μορφοποίησης (όπως κενά διαστήματα και αλλαγές γραμμής) που περιλαμβάνεται στη συμβολοσειρά.
Αυτό θα εμφανίσει:
Αυτή είναι μια πολλαπλών γραμμών συμβολοσειρά
Στην Python, μπορείτε να αντιστοιχίσετε μια πολλαπλών γραμμών συμβολοσειρά σε μια μεταβλητή χρησιμοποιώντας τρία μονά εισαγωγικά ('''
) ή τρία διπλά εισαγωγικά ("""
). Αυτή η σύνταξη σας επιτρέπει να δημιουργήσετε μια συμβολοσειρά που εκτείνεται σε πολλαπλές γραμμές, διατηρώντας τη δομή της και τα κενά διαστήματα μεταξύ των γραμμών.
Για παράδειγμα, μπορείτε να γράψετε:
# Δημιουργία μιας πολλαπλών γραμμών συμβολοσειράς my_multiline_string = '''Αυτή είναι μια πολλαπλών γραμμών συμβολοσειρά.'''
ή
# Δημιουργία μιας πολλαπλών γραμμών συμβολοσειράς my_multiline_string = """Αυτή είναι μια πολλαπλών γραμμών συμβολοσειρά."""
Και η πολλαπλών γραμμών συμβολοσειρά θα αντιστοιχιστεί στη μεταβλητή my_multiline_string
, διατηρώντας τις γραμμές και τα κενά διαστήματα ακριβώς όπως τα έχετε ορίσει.
Αποτέλεσμα:
Αυτή είναι μια πολλαπλών γραμμών συμβολοσειρά.
Στην Python, τα strings αποτελούνται από μια ακολουθία από χαρακτήρες και αναπαριστούν τους Unicode χαρακτήρες. Μπορούν να θεωρηθούν ως πίνακες από bytes, όπου κάθε χαρακτήρας αντιστοιχεί σε ένα στοιχείο του πίνακα.
Σημειώνεται ότι στην Python δεν υπάρχει ειδικός τύπος δεδομένων για έναν μεμονωμένο χαρακτήρα. Ένας μεμονωμένος χαρακτήρας αντιμετωπίζεται απλά ως ένα string με μήκος 1.
Για να αποκτήσουμε πρόσβαση στα στοιχεία ενός string, μπορούμε να χρησιμοποιήσουμε αγκύλες ([]
) για να αναφερθούμε σε ένα συγκεκριμένο στοιχείο του string. Η αρίθμηση των στοιχείων ξεκινά από το 0, δηλαδή το πρώτο στοιχείο έχει δείκτη 0, το δεύτερο έχει δείκτη 1 και ούτω καθεξής.
Παράδειγμα:
my_string = "Hello, World!" print(my_string[0]) # Εκτύπωση του πρώτου χαρακτήρα, που είναι το 'H' print(my_string[7]) # Εκτύπωση του όγδοου χαρακτήρα, που είναι το 'W'
Στον παραπάνω κώδικα, η συμβολοσειρά my_string
περιέχει το κείμενο “Hello, World!”. Χρησιμοποιώντας τη σύνταξη my_string[i]
, μπορούμε να αποκτήσουμε πρόσβαση στον χαρακτήρα που βρίσκεται στη θέση i
της συμβολοσειράς. Οι θέσεις των χαρακτήρων στη συμβολοσειρά ξεκινούν από το 0. Έτσι, my_string[0]
επιστρέφει τον πρώτο χαρακτήρα (το ‘H’), ενώ my_string[7]
επιστρέφει τον όγδοο χαρακτήρα (το ‘W’).
[adinserter block=”4″]
Στην Python, μπορούμε επίσης να προσπελάσουμε τους χαρακτήρες μιας συμβολοσειράς από το τέλος προς την αρχή χρησιμοποιώντας αρνητικούς δείκτες. Ο αρνητικός δείκτης -1 αντιστοιχεί στον τελευταίο χαρακτήρα της συμβολοσειράς, ο -2 αντιστοιχεί στον προτελευταίο χαρακτήρα και ούτω καθεξής.
Για παράδειγμα, αν έχουμε την συμβολοσειρά "Hello, World!"
, μπορούμε να προσπελάσουμε τον τελευταίο χαρακτήρα χρησιμοποιώντας τον αρνητικό δείκτη -1, δηλαδή my_string[-1]
, που θα επιστρέψει το γράμμα “!”.
my_string = "Hello, World!" print(my_string[-1]) # Εκτύπωση του τελευταίου χαρακτήρα, αναστροφή με αρνητικό δείκτη: ! print(my_string[-6]) # Εκτύπωση του έκτου χαρακτήρα από το τέλος, αναστροφή με αρνητικό δείκτη: W
Στον παραπάνω κώδικα, χρησιμοποιούνται αρνητικοί δείκτες για την πρόσβαση σε χαρακτήρες μιας συμβολοσειράς. Οι αρνητικοί δείκτες μετρούν τους χαρακτήρες από το τέλος προς την αρχή. Έτσι, my_string[-1]
αναφέρεται στον τελευταίο χαρακτήρα της συμβολοσειράς, που είναι !
, ενώ my_string[-6]
αναφέρεται στον έκτο χαρακτήρα από το τέλος, που είναι W
.
Μπορείτε να επαναλάβετε τους χαρακτήρες μιας συμβολοσειράς χρησιμοποιώντας ένα for
loop στην Python. Δεδομένου ότι οι συμβολοσειρές στην Python είναι πίνακες (arrays) από bytes που αναπαριστούν χαρακτήρες Unicode, μπορείτε να προσπελάσετε κάθε χαρακτήρα μέσω του for
loop και να εκτελέσετε τις επιθυμητές ενέργειες. Κατά τη διάρκεια του loop, κάθε επανάληψη θα προσπελάσει έναν χαρακτήρα της συμβολοσειράς.
Παραδειγμα 1: Χρησιμοποιώντας τον βρόχο for για να εκτυπώσουμε κάθε χαρακτήρα της συμβολοσειράς.
# Εκτύπωση χαρακτήρων από συμβολοσειρά my_string = "Hello World!" # Επανάληψη για κάθε χαρακτήρα στη συμβολοσειρά for char in my_string: print(char)
Στον παραπάνω κώδικα, χρησιμοποιείται μια for
επανάληψη για να προσπελάσετε και να εκτυπώσετε κάθε χαρακτήρα στη συμβολοσειρά my_string
. Κάθε χαρακτήρας εκτυπώνεται ξεχωριστά σε μια νέα γραμμή.
H e l l o W o r l d !
Χρησιμοποιώντας τον βρόχο for για να επεξεργαστούμε κάθε χαρακτήρα της συμβολοσειράς.
# Αρχική συμβολοσειρά my_string = "Hello World!" # Αρχικοποίηση νέας συμβολοσειράς new_string = "" # Επανάληψη για κάθε χαρακτήρα στην αρχική συμβολοσειρά for char in my_string: # Έλεγχος αν ο χαρακτήρας είναι διάφορος από "o" if char != "o": # Προσθήκη του χαρακτήρα στη νέα συμβολοσειρά new_string += char # Εκτύπωση της νέας συμβολοσειράς print(new_string)
Στον παραπάνω κώδικα, δημιουργείται μια νέα συμβολοσειρά new_string
από την αρχική συμβολοσειρά my_string
με την αφαίρεση όλων των χαρακτήρων “o”. Χρησιμοποιείται μια επαναληπτική δομή (for
loop) για να προσπελάσει κάθε χαρακτήρα της my_string
. Αν ο χαρακτήρας δεν είναι “o”, προστίθεται στην new_string
. Τέλος, η new_string
εκτυπώνεται, παρουσιάζοντας το αποτέλεσμα της αφαίρεσης των χαρακτήρων “o” από την αρχική συμβολοσειρά.
Hell Wrld!
Για να υπολογίσετε το μήκος ενός συμβολοσειράς στην Python, μπορείτε να χρησιμοποιήσετε την ενσωματωμένη συνάρτηση len()
. Η συνάρτηση len()
παίρνει μια συμβολοσειρά ως είσοδο και επιστρέφει τον αριθμό των χαρακτήρων στη συμβολοσειρά.
Παράδειγμα:
# Ορίζουμε μια μεταβλητή με την τιμή "Hello, World!" my_string = "Hello, World!" # Υπολογίζουμε το μήκος της συμβολοσειράς χρησιμοποιώντας τη συνάρτηση len() length = len(my_string) # Εκτυπώνουμε το μήκος της συμβολοσειράς print("Το μήκος της συμβολοσειράς είναι:", length)
Ο παραπάνω κώδικας ορίζει μια μεταβλητή my_string
με την τιμή “Hello, World!”. Στη συνέχεια, χρησιμοποιείται η συνάρτηση len()
για να υπολογίσει το μήκος της συμβολοσειράς my_string
και αποθηκεύεται στη μεταβλητή length
. Τέλος, το μήκος της συμβολοσειράς εκτυπώνεται στην οθόνη με τη χρήση της συνάρτησης print()
. Στην περίπτωση αυτή, το αποτέλεσμα θα είναι 13, καθώς η συμβολοσειρά περιλαμβάνει 13 χαρακτήρες.
[adinserter block=”5″]
Για να ελέγξετε αν μια συγκεκριμένη φράση ή χαρακτήρας είναι παρόν σε ένα string, μπορείτε να χρησιμοποιήσετε τη λέξη-κλειδί “in”. Η σύνταξη είναι η εξής:
if φράση ή χαρακτήρας in string: # Κώδικας που εκτελείται αν η συνθήκη είναι αληθής # Εδώ μπορείτε να προσθέσετε τις επιθυμητές ενέργειες else: # Κώδικας που εκτελείται αν η συνθήκη είναι ψευδής # Εδώ μπορείτε να προσθέσετε τις επιθυμητές ενέργειες
Εάν ο χαρακτήρας ή η φράση που αναζητάτε βρίσκεται στο string, η συνθήκη θα είναι αληθής και ο αντίστοιχος κώδικας θα εκτελεστεί. Αντίθετα, αν ο χαρακτήρας ή η φράση δεν βρίσκεται στο string, η συνθήκη θα είναι ψευδής και θα εκτελεστεί ο κώδικας μέσα στο else
block.
Παράδειγμα:
# Αρχική συμβολοσειρά με το κείμενο "Hello, world" txt = "Hello, world" # Έλεγχος αν η λέξη "world" υπάρχει στη συμβολοσειρά if "world" in txt: # Εκτύπωση μηνύματος αν η λέξη υπάρχει print("Yes, 'world' is present in the string.") # Νέα συμβολοσειρά με το κείμενο "Banana, orange, grape" txt = "Banana, orange, grape" # Έλεγχος αν η λέξη "apple" δεν υπάρχει στη συμβολοσειρά if "apple" not in txt: # Εκτύπωση μηνύματος αν η λέξη δεν υπάρχει print("No, 'apple' is not present in the string.")
Στον παραπάνω κώδικα, χρησιμοποιούμε τον τελεστή in
για να ελέγξουμε αν η συμβολοσειρά “world” υπάρχει μέσα στην αρχική συμβολοσειρά txt
. Αν ναι, τότε εκτυπώνεται το μήνυμα “Yes, ‘world’ is present in the string.”.
Στη συνέχεια, ορίζουμε μια νέα συμβολοσειρά txt
με το κείμενο “Banana, orange, grape”. Έπειτα, χρησιμοποιούμε τον τελεστή not in
για να ελέγξουμε αν η λέξη “apple” δεν υπάρχει μέσα στη συμβολοσειρά txt
. Αν ναι, τότε εκτυπώνεται το μήνυμα “No, ‘apple’ is not present in the string.”.
Αν τρέξετε αυτόν τον κώδικα, θα δείτε τα παρακάτω αποτελέσματα:
Yes, 'world' is present in the string. No, 'apple' is not present in the string.
Για να ελέγξετε αν ένα συγκεκριμένο κείμενο ή χαρακτήρας ΔΕΝ υπάρχει σε μια συμβολοσειρά, μπορείτε να χρησιμοποιήσετε τη φράση “not in”. Αυτή η φράση-κλειδί εφαρμόζεται στην πρόταση “if” και επιτρέπει να ελέγξετε την αντίθετη συνθήκη αναζήτησης.
Παράδειγμα:
# Αρχική συμβολοσειρά με το κείμενο "Hello World" text = "Hello World" # Έλεγχος αν η λέξη "apple" δεν υπάρχει στη συμβολοσειρά if "apple" not in text: # Εκτύπωση μηνύματος αν η λέξη δεν υπάρχει print("The word 'apple' is not present")
Η συμβολοσειρά που περιέχει το κείμενο “Hello World” είναι αποθηκευμένη στη μεταβλητή text
. Έπειτα, γίνεται έλεγχος αν η λέξη “apple” δεν υπάρχει στη συμβολοσειρά χρησιμοποιώντας την not in
παράσταση. Αν η συνθήκη είναι αληθής, τότε εκτυπώνεται το μήνυμα “Η λέξη ‘apple’ δεν υπάρχει”. Αυτό θα εμφανίσει το ακόλουθο κείμενο:
The word 'apple' is not present