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().