Salt la conținutul principal
Modulul 4 · Lecția 2 din 414/36 în curs~10 min
Lecții din modul (2/4)

Tăierea și indexarea

În Python, șirurile sunt secvențe de caractere: puteți accesa caractere individuale după index și decupează subșiruri cu felia sintaxă [start:stop:step] — exact ca în cazul listelor.

Indici pozitivi si negativi

Python
s = "Python"
#    0123456
#   -6-5-4-3-2-1
s[0]    # 'P'
s[5]    # 'n'
s[-1]   # 'n'   (ultimo)
s[-2]   # 'o'   (penultimo)

Accesul în afara razei de acțiune ridică IndexError.

Tăierea [start:stop:step]

Python
s = "Python"
s[0:3]    # 'Pyt'      indici 0,1,2 (stop ESCLUSO)
s[2:]     # 'thon'     dal 2 alla fine
s[:3]     # 'Pyt'      dall'inizio fino al 3 (escluso)
s[:]      # 'Python'   copia completa
s[-3:]    # 'hon'      ultimi 3
s[:-2]    # 'Pyth'     tutto tranne gli ultimi 2

Spre deosebire de indexare, slicing NU generează erori dacă indicii sunt în afara de gamă: scoate tot ce poate.

Al treilea argument: step

Python
s = "Python"
s[::2]    # 'Pto'    salta uno sì uno no
s[1::2]   # 'yhn'    dispari
s[::-1]   # 'nohtyP' INVERSIONE (idiom famoso)

s[::-1] este modalitatea idiomatică de a inversa un șir.

Lungime și reținere

Python
len("Python")        # 6
"th" in "Python"     # True
"java" in "Python"   # False

Indici negativi și pas în feliere

Sintaxa completă a tăierii este s[start:stop:step]. Dacă omiteți start și stop, dar setați un step negativ din -1 (s[::-1]), inversați șirul. Indicele negativ -1 reprezintă întotdeauna ultimul caracter al șirului de caractere, -2 este penulul, etc.

Încearcă

Exercițiu#python.m4.l2.e1
Încercări: 0Se încarcă…

Dat `cuvânt = 'PROGRAMMAZIONE'`, obțineți reversul în `cuvânt_inversat`. Evaluați `cuvânt_inversat`.

Se încarcă editorul...
Afișează indiciu

cuvânt[::-1]

Soluție disponibilă după 3 încercări

Exercițiu de revizuire

Exercițiu#python.m4.l2.e2
Încercări: 0Se încarcă…

Având în vedere `email = 'ada@example.com'`, extrageți domeniul (tot ce urmează după '@') în `domain` folosind slicing după ce găsiți indexul cu .find. Evaluați „domeniu”.

Se încarcă editorul...
Afișează indiciu

e-mail[email.find('@') + 1:]

Soluție disponibilă după 3 încercări

Provocare suplimentară

Exercițiu#python.m4.l2.e3
Încercări: 0Se încarcă…

Având în vedere șirul \`cuvânt = "pythonista"\`, utilizați slicing pentru a extrage primele 3 caractere și ultimele 3 caractere și concatenați-le într-un șir nou \`short_word\`. În cele din urmă, evaluați \`short_word\` (ar trebui să rezulte \`'pytsta'\`).

Se încarcă editorul...
Afișează indiciu

The first 3 characters are word[:3], the last 3 are word[-3:]. Concatenate the two slices.

Soluție disponibilă după 3 încercări