Materi
Di Python 3, setiap teks bertipe str, yaitu urutan code point Unicode. Code point adalah nomor yang diberikan standar Unicode kepada satu karakter: huruf A bernomor 65, huruf é bernomor 233, dan emoji pun punya nomornya sendiri. Fungsi ord() memberi nomor sebuah karakter, chr() melakukan kebalikannya, dan len() menghitung banyaknya code point, bukan banyaknya byte atau huruf yang tampak di layar.
kota = "Bogor"
print(len(kota)) # 5
print(ord(kota[0])) # 66
print(chr(111)) # o
print(kota[-1]) # rIni penting sebelum teks dihitung, dibandingkan, atau dipecah. Teks dari formulir, media sosial, dan berkas ekspor datang dari banyak papan ketik dan aplikasi, sehingga dua teks yang tampak sama bisa berbeda urutan code point-nya. Karakter bernomor di atas 127 berada di luar ASCII; huruf beraksen, tanda kutip miring dari pengolah kata, dan spasi tak terputus U+00A0 termasuk di dalamnya.
Kesalahan umum: menganggap str dan bytes sama. Teks yang dibaca dari jaringan atau berkas biner bertipe bytes, dan menggabungkannya dengan str berhenti dengan TypeError: can only concatenate str (not "bytes") to str. Method decode("utf-8") mengubah bytes menjadi str, dan encode("utf-8") melakukan kebalikannya. Panjang hasil encode dihitung dalam byte, sehingga "é".encode("utf-8") panjangnya 2, bukan 1.