Ana içeriğe geç
Modül 4 · Ders 2 ders 4Kurstaki 14/36~10 min
Modül dersleri (2/4)

Dilimleme ve indeksleme

Python'da dizeler karakter dizileridir: erişebilirsiniz karakterleri dizine göre ayrı ayrı düzenleyin ve dilimle alt dizeleri bölün sözdizimi [start:stop:step] — tam olarak listelerde olduğu gibi.

Pozitif ve negatif endeksler

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

Menzil dışı erişim IndexError değerini artırır.

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

İndekslemenin aksine, indeksler dışarıdaysa dilimleme hatalara yol açmaz menzil: elinden geleni ortaya çıkarır.

Üçüncü argüman: 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] bir dizeyi tersine çevirmenin deyimsel yoludur.

Uzunluk ve kapsam

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

Negatif endeksler ve dilimleme adımı

Dilimlemenin tam sözdizimi s[start:stop:step] şeklindedir. start ve stop atlarsanız ancak -1 (s[::-1]) değerinden step negatifini ayarlarsanız, dizeyi ters çevirirsiniz. Negatif dizin -1 her zaman dizenin son karakterini temsil eder, -2 sondan ikinci karakterdir, vb.

Deneyin

Egzersiz#python.m4.l2.e1
Denemeler: 0Yükleniyor…

`word = 'PROGRAMMAZIONE'` verildiğinde, bunun tersini `reversed_word`de elde edin. "Tersine çevrilmiş_kelime"yi değerlendirin.

Düzenleyici yükleniyor…
İpucu göster

kelime[::-1]

3 denemeden sonra çözüm mevcut

Alıştırmayı gözden geçirin

Egzersiz#python.m4.l2.e2
Denemeler: 0Yükleniyor…

`email = 'ada@example.com'` verildiğinde, .find ile dizini bulduktan sonra, alanı ('@'dan sonraki her şey) dilimleme kullanarak `domain` içine çıkarın. 'Alan'ı değerlendirin.

Düzenleyici yükleniyor…
İpucu göster

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

3 denemeden sonra çözüm mevcut

Ek zorluk

Egzersiz#python.m4.l2.e3
Denemeler: 0Yükleniyor…

\`word = "pythonista"\` dizesi göz önüne alındığında, ilk 3 karakteri ve son 3 karakteri çıkarmak için dilimlemeyi kullanın ve bunları yeni bir \`short_word\` dizesinde birleştirin. Son olarak, \`short_word\` değerini değerlendirin (\`'pytsta'\` sonucunu vermelidir).

Düzenleyici yükleniyor…
İpucu göster

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

3 denemeden sonra çözüm mevcut