Lompati ke konten utama
Modul 4 · Pelajaran 2 dari 414/36 dalam kursus~10 min
Pelajaran modul (2/4)

Mengiris dan mengindeks

Dalam Python, string adalah urutan karakter: Anda dapat mengakses karakter individu berdasarkan indeks dan buat substring dengan irisan sintaks [start:stop:step] — persis seperti daftar.

Indeks positif dan negatif

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

Akses di luar jangkauan menimbulkan IndexError.

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

Berbeda dengan pengindeksan, slicing TIDAK menimbulkan error jika indeksnya keluar jangkauan: ia mengukir apa yang ia bisa.

Argumen ketiga: 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] adalah cara idiomatis untuk membalikkan string.

Panjang dan penahanan

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

Indeks negatif dan langkah pemotongan

Sintaks lengkap dari slicing adalah s[start:stop:step]. Jika Anda menghilangkan start dan stop tetapi menetapkan step negatif dari -1 (s[::-1]), Anda akan membalik stringnya. Indeks negatif -1 selalu mewakili karakter terakhir dari string, -2 adalah karakter kedua dari terakhir, dan seterusnya.

Cobalah

Latihan#python.m4.l2.e1
Upaya: 0Memuat…

Diberikan `word = 'PROGRAMMAZIONE'`, dapatkan kebalikannya dalam `reversed_word`. Evaluasi `kata_terbalik`.

Memuat editor…
Tunjukkan petunjuk

kata[::-1]

Solusi tersedia setelah 3 upaya

Tinjau latihan

Latihan#python.m4.l2.e2
Upaya: 0Memuat…

Diberikan `email = 'ada@example.com'`, ekstrak domain (semuanya setelah '@') ke dalam `domain` menggunakan pemotongan setelah menemukan indeks dengan .find. Evaluasi `domain`.

Memuat editor…
Tunjukkan petunjuk

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

Solusi tersedia setelah 3 upaya

Tantangan tambahan

Latihan#python.m4.l2.e3
Upaya: 0Memuat…

Mengingat string \`word = "pythonista"\`, gunakan pengirisan untuk mengekstrak 3 karakter pertama dan 3 karakter terakhir, dan menggabungkannya menjadi string baru \`short_word\`. Terakhir, evaluasi \`short_word\` (harus menghasilkan \`'pytsta'\`).

Memuat editor…
Tunjukkan petunjuk

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

Solusi tersedia setelah 3 upaya