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 hexHH\uHHHH-- codepoint UnicodeHHHH
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.
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().