Direct naar de hoofdinhoud
Module 4 · Les 2 van 414/36 in de cursus~10 min
Modulelessen (2/4)

Snijden en indexeren

In Python zijn strings reeksen van tekens: waartoe u toegang hebt individuele tekens per index en subtekenreeksen uitsnijden met het segment syntaxis [start:stop:step] — precies zoals bij lijsten.

Positieve en negatieve indexen

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

Toegang buiten bereik verhoogt IndexError.

Snijden [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

In tegenstelling tot indexeren levert slicing GEEN fouten op als de indexen niet kloppen bereik: het haalt eruit wat het kan.

Het derde 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] is de idiomatische manier om een ​​string om te keren.

Lengte en insluiting

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

Negatieve indices en stap in het snijden

De volledige syntaxis van segmenteren is s[start:stop:step]. Als u start en stop weglaat maar een negatieve step van -1 (s[::-1]) instelt, keert u de tekenreeks om. De negatieve index -1 vertegenwoordigt altijd het laatste teken van de string, -2 is het op een na laatste teken, enz.

Probeer het

Oefening#python.m4.l2.e1
Pogingen: 0Laden…

Gegeven `word = 'PROGRAMMAZIONE'`, verkrijg het omgekeerde in `reversed_word`. Evalueer `omgekeerd_woord`.

Editor laden…
Toon hint

woord[::-1]

Oplossing beschikbaar na 3 pogingen

Oefening beoordelen

Oefening#python.m4.l2.e2
Pogingen: 0Laden…

Gegeven `email = 'ada@example.com'`, extraheer het domein (alles na '@') in `domain` met behulp van slicing nadat u de index hebt gevonden met .find. Evalueer 'domein'.

Editor laden…
Toon hint

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

Oplossing beschikbaar na 3 pogingen

Extra uitdaging

Oefening#python.m4.l2.e3
Pogingen: 0Laden…

Gegeven de string \`word = "pythonista"\`, gebruik je slicing om de eerste 3 tekens en de laatste 3 tekens te extraheren, en voeg ze samen in een nieuwe string \`short_word\`. Evalueer ten slotte \`kort_woord\` (het zou \`'pytsta'\` moeten opleveren).

Editor laden…
Toon hint

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

Oplossing beschikbaar na 3 pogingen