Διαδρομές
/
Python
Python
/
Ύλη
/
Μέθοδοι συμβολοσειρών
Μέ

Μέθοδοι συμβολοσειρών σε Python

60 ασκήσεις

Σχετικά με την έννοια Μέθοδοι συμβολοσειρών

Μια str είναι μια αμετάβλητη ακολουθία από σημεία κώδικα Unicode. Αυτή μπορεί να περιλαμβάνει γράμματα, διακριτικά σημάδια, χαρακτήρες τοποθέτησης, αριθμούς, σύμβολα νομισμάτων, emoji, σημεία στίξης, κενά και αλλαγές γραμμής, και άλλα.

Οι συμβολοσειρές υλοποιούν όλες τις κοινές πράξεις ακολουθιών και μπορούν να διατρεχτούν με τη σύνταξη for item in <str> ή for index, item in enumerate(<str>). Τα επιμέρους σημεία κώδικα (συμβολοσειρές μήκους 1) μπορούν να προσπελαστούν με αριθμό 0-based index από τα αριστερά ή με αριθμό -1-based index από τα δεξιά.

Οι συμβολοσειρές μπορούν να συνενωθούν με <str> + <other str> ή <str>.join(<iterable>) και να χωριστούν με <str>.split(<separator>). Προσφέρουν επίσης πολλές άλλες επιλογές μορφοποίησης και σύνθεσης.

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

Μερικές από τις πιο συχνά χρησιμοποιούμενες μεθόδους str είναι:

  • Έλεγχος για προθέματα/επιθέματα με <str>.startswith(<substr>) και <str>.endswith(<substr>)
  • Αλλαγή πεζών/κεφαλαίων σε μια συμβολοσειρά με μεθόδους όπως <str>.title(), <str>.upper()/<str>.lower() και <str>.swapcase()
  • Αφαίρεση αρχικών ή τελικών χαρακτήρων από μια συμβολοσειρά με <str>.strip(<chars>), <str>.lstrip(<chars>) ή <str>.rstrip(<chars>)
  • Αντικατάσταση υποσυμβολοσειρών με τη μέθοδο <str>.replace(<old>, <new>)

Επειδή είναι αμετάβλητη, η τιμή ενός αντικειμένου str στη μνήμη δεν μπορεί να αλλάξει· οι μέθοδοι που φαίνεται να τροποποιούν μια συμβολοσειρά επιστρέφουν ένα νέο αντίγραφο ή στιγμιότυπο αυτού του αντικειμένου str.

Η <str>.endswith(<suffix>) επιστρέφει True αν η συμβολοσειρά τελειώνει με <suffix>, αλλιώς False.

>>> 'My heart breaks. 💔'.endswith('💔')
True

>>> 'cheerfulness'.endswith('ness')
True

# Punctuation is part of the string, so needs to be included in any endswith match.
>>> 'Do you want to 💃?'.endswith('💃')
False

>>> 'The quick brown fox jumped over the lazy dog.'.endswith('dog')
False

Η <str>.title() αναλύει μια συμβολοσειρά και κάνει κεφαλαίο τον πρώτο "χαρακτήρα" κάθε "λέξης" που βρίσκει. Στην Python, αυτό εξαρτάται σε μεγάλο βαθμό από τον κωδικοποιητή γλώσσας που χρησιμοποιείται και από το πώς η συγκεκριμένη γλώσσα αναπαριστά λέξεις και χαρακτήρες. Μπορεί επίσης να ισχύουν τοπικές ρυθμίσεις για μια γλώσσα ή ένα σύνολο χαρακτήρων.

>>> man_in_hat_th = 'ผู้ชายใส่หมวก'
>>> man_in_hat_ru = 'мужчина в шляпе'
>>> man_in_hat_ko = '모자를 쓴 남자'
>>> man_in_hat_en = 'the man in the hat.'

>>> man_in_hat_th.title()
'ผู้ชายใส่หมวก'

>>> man_in_hat_ru.title()
'Мужчина В Шляпе'

>>> man_in_hat_ko.title()
'모자를 쓴 남자'

>> man_in_hat_en.title()
'The Man In The Hat.'

Η <str>.strip(<chars>) επιστρέφει ένα αντίγραφο της str με τα αρχικά και τα τελικά <chars> αφαιρεμένα. Τα σημεία κώδικα που ορίζονται στο <chars> δεν είναι πρόθεμα ή επίθεμα: όλοι οι συνδυασμοί των σημείων κώδικα θα αφαιρεθούν ξεκινώντας από τα δύο άκρα της συμβολοσειράς. Αν δεν έχει οριστεί τίποτα για το <chars>, θα αφαιρεθούν όλοι οι συνδυασμοί σημείων κώδικα κενού διαστήματος. Αν θέλεις αφαίρεση μόνο από τα αριστερά ή μόνο από τα δεξιά, μπορείς να χρησιμοποιήσεις τις <str>.lstrip(<chars>) και <str>.rstrip(<chars>).

# This will remove "https://", because it can be formed from "/stph:". 
>>> 'https://unicode.org/emoji/'.strip('/stph:')
'unicode.org/emoji'

# Removal of all whitespace from both ends of the str.
>>> '   🐪🐪🐪🌟🐪🐪🐪   '.strip()
'🐪🐪🐪🌟🐪🐪🐪'

>>> justification = 'оправдание'
>>> justification.strip('еина')
'оправд'

# Prefix and suffix in one step.
>>> 'unaddressed'.strip('dnue')
'address'

>>> '  unaddressed  '.strip('dnue ')
'address'

Η <str>.replace(<substring>, <replacement substring>) επιστρέφει ένα αντίγραφο της συμβολοσειράς με όλες τις εμφανίσεις του <substring> αντικατεστημένες με <replacement substring>.

Το απόσπασμα που χρησιμοποιείται παρακάτω είναι από το The Hunting of the Snark του Lewis Carroll

# The Hunting of the Snark, by Lewis Carroll
>>> quote = '''
"Just the place for a Snark!" the Bellman cried,
   As he landed his crew with care;
Supporting each man on the top of the tide
   By a finger entwined in his hair.

"Just the place for a Snark! I have said it twice:
   That alone should encourage the crew.
Just the place for a Snark! I have said it thrice:
   What I tell you three times is true."
'''

>>> quote.replace('Snark', '🐲')
...
'\n"Just the place for a 🐲!" the Bellman cried,\n   As he landed his crew with care;\nSupporting each man on the top of the tide\n   By a finger entwined in his hair.\n\n"Just the place for a 🐲! I have said it twice:\n   That alone should encourage the crew.\nJust the place for a 🐲! I have said it thrice:\n   What I tell you three times is true."\n'

>>> 'bookkeeper'.replace('kk', 'k k')
'book keeper'

🌟Νέο στην Python 3.9

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

Η <str>.removeprefix(<substring>) επιστρέφει τη συμβολοσειρά χωρίς το πρόθεμα (string[len(<substring>):]). Αν το <substring> δεν υπάρχει, θα επιστραφεί ένα αντίγραφο της αρχικής συμβολοσειράς.

# removing a prefix
>>> 'TestHook'.removeprefix('Test')
'Hook'
>>> 'bookkeeper'.removeprefix('book')
'keeper'

Η <str>.removesuffix(<substring>) επιστρέφει τη συμβολοσειρά χωρίς το επίθεμα (string[:-len(substring)]). Αν το <substring> δεν υπάρχει, θα επιστραφεί ένα αντίγραφο της αρχικής συμβολοσειράς.

# removing a suffix
>>> 'TestHook'.removesuffix('Hook')
'Test'
>>> 'bookkeeper'.removesuffix('keeper')
'book'

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

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

Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα

Μάθε την έννοια Μέθοδοι συμβολοσειρών

Η εξάσκηση είναι κλειδωμένη

Ξεκλείδωσε 3 ακόμη ασκήσεις για να εξασκηθείς στην έννοια Μέθοδοι συμβολοσειρών