2.4. String

Sebuah string adalah urutan karakter Unicode yang ditulis di antara tanda kutip. Tanda kutip tunggal dan ganda setara -- pilih gaya yang memungkinkan Anda menghindari penggunaan escape pada tanda kutip yang muncul di dalam teks:

name    = "OpenMV Cam"
company = 'OpenMV, LLC'
message = "She said \"hi\""        # both styles can be used
same    = 'She said "hi"'

String dengan tiga tanda kutip ("""...""" atau '''...''') mencakup beberapa baris dan mempertahankan baris baru secara harfiah:

banner = """boot ok
firmware v1.28
"""
print(banner)

Output:

boot ok
firmware v1.28

2.4.1. Escape sequence

Di dalam string biasa, \ memperkenalkan karakter khusus:

  • \n -- baris baru

  • \t -- tab

  • \\ -- backslash harfiah

  • \' / \" -- tanda kutip harfiah (ketika karakter tersebut akan mengakhiri string)

  • \xHH -- karakter dengan kode hex HH

  • \uHHHH -- codepoint Unicode HHHH

Ketika sebuah string mengandung banyak backslash, tambahkan awalan r pada literal untuk menjadikannya string raw. Backslash kemudian diambil secara harfiah -- \n tetap dua karakter dan tidak diganti dengan baris baru:

win_path = r"C:\Users\OpenMV\camera.py"
literal  = r"\n is two characters, not a newline"

2.4.2. Penggabungan dan pengulangan

Dua string digabung dengan +; sebuah string diulang dengan *:

greeting = "Hello, " + name + "!"
line     = "-" * 40              # 40-character separator

Penggunaan + berulang dalam sebuah loop mengalokasikan string baru di setiap iterasi. Untuk membangun string yang lebih besar dari banyak bagian, gunakan str.join().

2.4.3. Panjang, pengindeksan, dan pemotongan

len() mengembalikan jumlah karakter dalam sebuah string. Pengindeksan dengan [] mengembalikan string satu karakter pada posisi yang diberikan; indeks negatif dihitung dari akhir:

>>> s = "OpenMV"
>>> len(s)
6
>>> s[0]
'O'
>>> s[-1]
'V'

Sebuah slice s[start:stop] mengembalikan substring dari posisi start hingga tetapi tidak termasuk stop. Salah satu ujung dapat dihilangkan untuk berarti "awal" atau "akhir", dan nilai ketiga opsional s[start:stop:step] memungkinkan Anda melewati karakter.

The string "OpenMV" with position markers between each character, illustrating how a slice selects the characters between two positions.

Posisi slice berada di antara karakter. s[2:5] memilih karakter pada posisi 2, 3, dan 4.

>>> s = "OpenMV"
>>> s[2:5]
'enM'
>>> s[:3]
'Ope'
>>> s[3:]
'nMV'
>>> s[::-1]
'VMnepO'                     # whole string, reversed

Slice di luar jangkauan secara diam-diam mengembalikan bagian yang ada -- s[100:200] adalah string kosong "", bukan sebuah kesalahan. Pengindeksan di luar jangkauan, di sisi lain, memunculkan IndexError.

2.4.4. Immutability

String tidak dapat dimodifikasi di tempat. Operasi yang terlihat seperti mengubah string sebenarnya mengembalikan string baru dan membiarkan yang asli tidak berubah:

>>> name = "OpenMV"
>>> name.upper()
'OPENMV'
>>> name
'OpenMV'                     # unchanged

Untuk "mengubah" sebuah string, ikat ulang nama ke nilai baru: name = name.upper().