🔤

Python — Lecția 5

Șiruri de Caractere (Strings)

Indexare • Slicing • Metode • Formatare

Lecția 5  |  10-14 ani  |  Nivel: Începător - Intermediar

1. Ce este un Șir de Caractere?

În Python, un string reprezintă o secvență ordonată de caractere — litere, cifre, spații sau simboluri speciale.

String-urile sunt esențiale în orice program și se definesc folosind ghilimele simple (' ') sau duble (" "). Putem folosi și ghilimele triple pentru texte lungi.

text1 = 'Salut' text2 = "Salut" multi_line = """Acesta este un string care se întinde pe mai multe rânduri."""

2. Accesarea Caracterelor și Slicing

Fiecare caracter are un index numeric, începând de la 0 pentru primul caracter. Indexul -1 reprezintă ultimul caracter.

cuvant = "Python" print(cuvant[0]) # 'P' print(cuvant[-1]) # 'n'

Slicing (Felierea)

Extragem un subșir folosind sintaxa string[start:stop:step]. Valoarea stop nu este inclusă.

text = "Python" print(text[0:3]) # 'Pyt' print(text[::2]) # 'Pto' (sărituri din 2 în 2)

3. Modificarea String-urilor

String-urile sunt imutabile. Metodele de mai jos returnează întotdeauna un string nou:

MetodăEfectExemplu
upper()Majuscule"abc" -> "ABC"
lower()Minuscule"ABC" -> "abc"
strip()Șterge spații" hey " -> "hey"
replace(v, n)Înlocuiește"mere" -> "pere"

4. Concatenarea String-urilor

Unirea se face cu operatorul +, iar repetarea cu *.

salut = "Buna" + " " + "ziua" # "Buna ziua" repetare = "Ha" * 3 # "HaHaHa"

5. Formatarea String-urilor

Metoda recomandată este f-string. Prefixăm textul cu f și inserăm variabile în acolade {}.

nume = "Alex" varsta = 12 print(f"Numele meu este {nume} și am {varsta} ani.")

6. Caractere Speciale (Escape)

Secvențele care încep cu backslash (\) reprezintă caractere ce nu pot fi scrise direct.

print("Linie1\nLinie2") # Rând nou print("Tab\torizontal") # Tab orizontal print("Ghilimele: \"Python\"")

7. Metode Utile

Python include un set bogat de funcții predefinite pentru analiză:

len() returnează lungimea totală a string-ului (inclusiv spațiile!).

parola = "secret123" print(len(parola)) # 9 print(parola.isdigit()) # False print(parola.count("e")) # 2
🧠

8. Quiz — Testează-ți cunoștințele!

10 întrebări • Răspunde și află imediat dacă ai dreptate

Scorul tău final
0/10
⭐⭐⭐⭐⭐

Felicitări!

📝

9. Teme pentru Acasă

3 exerciții practice • Ușor → Mediu → Dificil • Click pe temă pentru detalii

🟢 Tema 1 — Cartea de Vizită Digitală Ușor

Scrie un program care afișează o carte de vizită folosind f-strings și metode de string.

Cerințe:
1. Declară variabilele: nume, varsta, oras, hobby
2. Afișează un mesaj formatat care să includă toate variabilele
3. Afișează numele cu majuscule (upper()) și numărul de caractere din nume (len())
4. Afișează un separator din caracterul "-" repetat de 30 de ori

Exemplu de output așteptat:

--- Carte de Vizită --- Nume: ALEX POPESCU (12 caractere) Vârsta: 13 ani Oraș: București Hobby: programare ------------------------------
Folosește f"Nume: {nume.upper()} ({len(nume)} caractere)" și "-" * 30 pentru separator.
🟠 Tema 2 — Analizator de Parole Mediu

Creează un program care primește o parolă și îi analizează caracteristicile.

Cerințe:
1. Definește o variabilă parola = "Python2024!"
2. Afișează lungimea parolei cu len()
3. Afișează primele 3 și ultimele 3 caractere folosind slicing
4. Verifică dacă parola conține litera "a" folosind operatorul in
5. Afișează parola cu toate literele mici (lower()) și cu toate majusculele (upper())
6. Numără de câte ori apare caracterul "0" în parolă cu count()

Exemplu de output așteptat:

Parolă: Python2024! Lungime: 11 caractere Primele 3 caractere: Pyt Ultimele 3 caractere: 24! Conține 'a': False Minuscule: python2024! Majuscule: PYTHON2024! Număr de '0': 2
Folosește parola[:3] pentru primele 3 și parola[-3:] pentru ultimele 3 caractere. Operatorul in: "a" in parola.
🔴 Tema 3 — Cifrator Caesar BONUS Dificil

Implementează un cifrator simplu care înlocuiește fiecare literă cu una de la câteva poziții distanță în alfabet.

Cerințe:
1. Definește mesajul: mesaj = "salut prietene"
2. Definește cheia: cheie = 3 (câte poziții se deplasează fiecare literă)
3. Folosind replace(), înlocuiește manual minim 5 litere diferite
(ex: 'a'→'d', 'b'→'e', 's'→'v', 'l'→'o', 'u'→'x', 't'→'w', 'p'→'s', etc.)
4. Afișează mesajul original și cel cifrat
5. BONUS: Afișează lungimea ambelor mesaje și verifică dacă sunt egale

Exemplu de output așteptat:

Mesaj original: salut prietene Mesaj cifrat: vdoxw sulhwhqh Lungime originală: 14 Lungime cifrată: 14 Lungimi egale: True
Aplică replace() în lanț: mesaj.replace('a','d').replace('s','v').replace('l','o').... Atenție la ordinea înlocuirilor — dacă înlocuiești 'a' cu 'd' și după 'd' cu altceva, vei modifica și literele deja înlocuite!