Principalele metode ale șirurilor de caractere
Să explorăm principalele metode ale șirurilor de caractere pe care le putem utiliza în aplicații:
- isalpha(): returnează True dacă șirul conține doar caractere alfabetice
- islower(): returnează True dacă șirul conține doar caractere în minuscule
- isupper(): returnează True dacă toate caracterele din șir sunt majuscule
- isdigit(): returnează True dacă toate caracterele din șir sunt cifre
- isnumeric(): returnează True dacă șirul reprezintă un număr
- startswith(str): returnează True dacă șirul începe cu subșirul str
- endswith(str): returnează True dacă șirul se termină cu subșirul str
- lower(): convertește șirul în minuscule
- upper(): convertește șirul în majuscule
- title(): convertește primele caractere ale fiecărui cuvânt din șir în majuscule
- capitalize(): convertește în majuscule prima literă doar a primului cuvânt din șir
- lstrip(): elimină spațiile de la începutul șirului
- rstrip(): elimină spațiile de la sfârșitul șirului
- strip(): elimină spațiile de la începutul și sfârșitul șirului.
- ljust(width): dacă lungimea șirului este mai mică decât valoarea width, adaugă spații la dreapta pentru a completa la width, aliniind șirul la stânga
- rjust(width): dacă lungimea șirului este mai mică decât valoarea width, adaugă spații la stânga pentru a completa la width, aliniind șirul la dreapta
- center(width): dacă lungimea șirului este mai mică decât valoarea width, adaugă spații la stânga și la dreapta pentru a completa la width, aliniind șirul la centru
- find(str[, start [, end]]): returnează indexul primei apariții a subșirului str în șir. Dacă subșirul nu este găsit, returnează -1
- replace(old, new[, num]): înlocuiește în șir toate aparițiile subșirului old cu new
- split([delimiter[, num]]): împarte șirul în subșiruri în funcție de delimitator
- partition(delimiter): împarte șirul după delimitator în trei subșiruri și returnează un tuplu format din cele trei elemente: subșirul înainte de delimitator, delimitatorul și subșirul după delimitator
- join(strs): unește elementele dintr-o listă de șiruri într-un singur șir, inserând un delimitator între ele
Exemple de utilizare a metodelor
Verificarea dacă un șir conține un număr:
Dacă așteptăm un input numeric de la utilizator, putem verifica cu metoda isnumeric() dacă șirul conține într-adevăr un număr, și dacă da, efectuăm conversia:
string = input("Introduceți un număr: ")
if string.isnumeric():
number = int(string)
print(number)
Verificarea dacă un șir începe sau se termină cu un anumit subșir:
file_name = "hello.py"
starts_with_hello = file_name.startswith("hello") # True
ends_with_exe = file_name.endswith("exe") # False
Eliminarea spațiilor dintr-un șir:
string = " hello world! "
string = string.strip()
print(string) # hello world!
Completarea șirului cu spații și alinierea acestuia:
print("iPhone 7:", "52000".rjust(10))
print("Huawei P10:", "36000".rjust(10))
Rezultatul în consolă:
iPhone 7: 52000
Huawei P10: 36000
Căutarea unui subșir într-un șir:
Metoda find() returnează indexul primei apariții a subșirului în șir și are trei forme:
welcome = "Hello world! Goodbye world!"
index = welcome.find("wor")
print(index) # 6
# căutare de la indexul 10
index = welcome.find("wor", 10)
print(index) # 21
# căutare între indexurile 10 și 15
index = welcome.find("wor", 10, 15)
print(index) # -1
Înlocuirea unui subșir într-un șir:
phone = "+1-234-567-89-10"
# înlocuirea cratimelor cu spații
edited_phone = phone.replace("-", " ")
print(edited_phone) # +1 234 567 89 10
# eliminarea cratimelor
edited_phone = phone.replace("-", "")
print(edited_phone) # +12345678910
# înlocuirea doar a primei cratime
edited_phone = phone.replace("-", "", 1)
print(edited_phone) # +1234-567-89-10
Împărțirea unui șir în subșiruri:
Metoda split() împarte un șir într-o listă de subșiruri, în funcție de delimitator. Delimitatorul poate fi orice caracter sau secvență de caractere.Această metodă are următoarele forme:
- split(): ca delimitator se folosește un spațiu
- split(delimiter): ca delimitator se folosește delimiter
- split(delimiter, num): parametrul num specifică de câte ori să fie folosit delimitatorul delimiter pentru a realiza separarea. Restul șirului este adăugat în listă fără a fi împărțit în subșiruri
text = "Acesta este un text, împărțit pe mai multe secțiuni"
# împărțirea după spații
splitted_text = text.split()
print(splitted_text)
print(splitted_text[2]) # text,
# împărțirea după virgule
splitted_text = text.split(",")
print(splitted_text)
print(splitted_text[1]) # împărțit pe mai multe secțiuni
# împărțirea după primele cinci spații
splitted_text = text.split(" ", 5)
print(splitted_text)
print(splitted_text[5]) # pe mai multe secțiuni
Metoda partition() împarte șirul după delimitator în trei subșiruri și returnează un tuplu cu aceste elemente:
text = "Acesta este un text, împărțit pe mai multe secțiuni"
text_parts = text.partition("text")
print(text_parts)
# ('Acesta este un ', 'text', ', împărțit pe mai multe secțiuni')
Dacă delimitatorul nu este găsit în șir, se returnează un tuplu cu un singur element.
Unirea șirurilor de caractere
Metoda join() unește elementele dintr-o listă de șiruri, inserând un delimitator între ele:
words = ["Let", "me", "speak", "from", "my", "heart", "in", "English"]
# delimitator - spațiu
sentence = " ".join(words)
print(sentence) # Let me speak from my heart in English
# delimitator - linie verticală
sentence = " | ".join(words)
print(sentence) # Let | me | speak | from | my | heart | in | English
În loc de o listă, metoda join poate primi un șir simplu, caz în care delimitatorul va fi inserat între caracterele acestui șir:
word = "hello"
joined_word = "|".join(word)
print(joined_word) # h|e|l|l|o