string = "freeCodeCamp" print(string[0:5])_3. Indeks awal substring. Karakter pada indeks ini termasuk dalam substring. Jika string = "freeCodeCamp" print(string[0:5])3 tidak disertakan, diasumsikan sama dengan 0
string = "freeCodeCamp" print(string[0:5])5. Indeks terminasi dari substring. Karakter pada indeks ini tidak termasuk dalam substring. Jika string = "freeCodeCamp" print(string[0:5])5 tidak disertakan, atau jika nilai yang ditentukan melebihi panjang string, diasumsikan sama dengan panjang string secara default
string = "freeCodeCamp" print(string[0:5])_7. Setiap karakter "langkah" setelah karakter saat ini akan disertakan. Nilai standarnya adalah 1. Jika string = "freeCodeCamp" print(string[0:5])7 tidak disertakan, diasumsikan sama dengan 1
Inilah Scrim Interaktif tentang Cara Substring sebuah String dengan Python
Penggunaan Dasar
string = "freeCodeCamp" print(string[0:5])_9. Dapatkan semua karakter dari string = "freeCodeCamp" print(string[0:5])3 hingga string = "freeCodeCamp" print(string[0:5])5 - 1
> freeC_2. Dapatkan semua karakter dari awal string ke string = "freeCodeCamp" print(string[0:5])5 - 1
> freeC_4. Dapatkan semua karakter dari string = "freeCodeCamp" print(string[0:5])_3 hingga akhir string
> freeC_6. Dapatkan semua karakter dari string = "freeCodeCamp" print(string[0:5])3 hingga string = "freeCodeCamp" print(string[0:5])5 - 1, tidak termasuk setiap string = "freeCodeCamp" print(string[0:5])7 karakter
Contoh
1. Dapatkan 5 karakter pertama dari sebuah string
string = "freeCodeCamp" print(string[0:5])Keluaran
> freeC_Catatan. string = "freeCodeCamp" print(string[2:6])0 mengembalikan hasil yang sama dengan string = "freeCodeCamp" print(string[2:6])1
2. Dapatkan substring sepanjang 4 karakter, mulai dari karakter ke-3 string
string = "freeCodeCamp" print(string[2:6])Keluaran
> eeCo3. Dapatkan karakter terakhir dari string
string = "freeCodeCamp" print(string[-1])Keluaran
> pPerhatikan bahwa indeks string = "freeCodeCamp" print(string[0:5])3 atau string = "freeCodeCamp" print(string[0:5])5 dapat berupa angka negatif. Indeks negatif berarti Anda mulai menghitung dari ujung string, bukan dari awal (dari kanan ke kiri)
Indeks -1 mewakili karakter terakhir dari string, -2 mewakili karakter kedua hingga terakhir dan seterusnya
4. Dapatkan 5 karakter terakhir dari sebuah string
string = "freeCodeCamp" print(string[-5:])Keluaran
> eCamp5. Dapatkan substring yang berisi semua karakter kecuali 4 karakter terakhir dan karakter pertama
string = "freeCodeCamp" print(string[1:-4])Keluaran
string = "freeCodeCamp" print(string[0:5])06. Dapatkan setiap karakter lain dari sebuah string
string = "freeCodeCamp" print(string[0:5])_1Keluaran
string = "freeCodeCamp" print(string[0:5])_2IKLAN
IKLAN
IKLAN
Jika artikel ini bermanfaat, tweetlah
Belajar kode secara gratis. Kurikulum open source freeCodeCamp telah membantu lebih dari 40.000 orang mendapatkan pekerjaan sebagai pengembang. Memulai
Dalam tutorial tentang Tipe Data Dasar dengan Python, Anda belajar cara mendefinisikan string. objek yang berisi urutan data karakter. Memproses data karakter merupakan bagian integral dari pemrograman. Ini adalah aplikasi langka yang tidak perlu memanipulasi string setidaknya sampai batas tertentu
Inilah yang akan Anda pelajari dalam tutorial ini. Python menyediakan sekumpulan operator, fungsi, dan metode yang kaya untuk bekerja dengan string. Saat Anda selesai dengan tutorial ini, Anda akan mengetahui cara mengakses dan mengekstrak bagian dari string, dan juga terbiasa dengan metode yang tersedia untuk memanipulasi dan memodifikasi data string.
Anda juga akan diperkenalkan dengan dua objek Python lain yang digunakan untuk merepresentasikan data byte mentah, tipe >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29 dan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 30
Ikuti Kuis. Uji pengetahuan Anda dengan kuis "String Python dan Data Karakter" interaktif kami. Setelah selesai Anda akan menerima skor sehingga Anda dapat melacak kemajuan belajar Anda dari waktu ke waktu
Ikuti Kuis »
Manipulasi Tali
Bagian di bawah menyoroti operator, metode, dan fungsi yang tersedia untuk bekerja dengan string
Hilangkan iklanOperator String
Anda telah melihat operator >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _31 dan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 32 diterapkan pada operan numerik dalam tutorial tentang Operator dan Ekspresi dengan Python. Kedua operator ini juga dapat diterapkan pada string
Operator ________33______31
Operator >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _31 menggabungkan string. Ini mengembalikan string yang terdiri dari operan yang digabungkan, seperti yang ditunjukkan di sini
>>> >>> s = 'foo' >>> t = 'bar' >>> u = 'baz' >>> s + t 'foobar' >>> s + t + u 'foobarbaz' >>> print('Go team' + '!!!') Go team!!! _
Operator ________33______32
Operator >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _32 membuat banyak salinan string. Jika >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _37 adalah string dan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 38 adalah integer, salah satu dari ekspresi berikut mengembalikan string yang terdiri dari >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 38 salinan gabungan dari >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37
>>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _41
>>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _42
Berikut adalah contoh dari kedua bentuk tersebut
>>>_______ 33 ________>>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.'
Operan pengali >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _38 harus bilangan bulat. Anda akan berpikir itu akan diperlukan untuk menjadi bilangan bulat positif, tapi anehnya, itu bisa menjadi nol atau negatif, dalam hal ini hasilnya adalah string kosong.
>>> >>> 'foo' * -8 '' _
Jika Anda membuat variabel string dan menginisialisasinya ke string kosong dengan memberinya nilai >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 44, siapa pun akan berpikir Anda sedikit gila. Tapi itu akan berhasil
Operator ________33______45
Python juga menyediakan operator keanggotaan yang dapat digunakan dengan string. Operator >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _45 mengembalikan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 47 jika operan pertama terkandung dalam operan kedua, dan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 48 sebaliknya
>>> >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False _
Ada juga , yang sebaliknya
>>>_______ 57 ________>>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False
Fungsi String bawaan
Seperti yang Anda lihat di tutorial tentang Tipe Data Dasar di Python, Python menyediakan banyak fungsi yang sudah ada di dalam interpreter dan selalu tersedia. Berikut adalah beberapa yang bekerja dengan string
FunctionDescription>>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 50Mengonversi bilangan bulat menjadi karakter>>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 51Mengonversi karakter menjadi bilangan bulat>>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 52Mengembalikan panjang string>>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 53Mengembalikan representasi string dari suatu objek
Ini dieksplorasi lebih lengkap di bawah ini
>>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _54
Mengembalikan nilai integer untuk karakter yang diberikan
Pada tingkat paling dasar, komputer menyimpan semua informasi sebagai angka. Untuk merepresentasikan data karakter, digunakan skema translasi yang memetakan setiap karakter ke nomor representatifnya
Skema paling sederhana yang umum digunakan disebut ASCII. Ini mencakup karakter Latin umum yang mungkin paling sering Anda gunakan. Untuk karakter ini, >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 54 mengembalikan nilai ASCII untuk karakter >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 56
>>> >>> ord('a') 97 >>> ord('#') 35 _
Sejauh ini ASCII baik-baik saja. Tetapi ada banyak bahasa berbeda yang digunakan di dunia dan simbol dan mesin terbang yang tak terhitung jumlahnya muncul di media digital. Set lengkap karakter yang mungkin perlu direpresentasikan dalam kode komputer jauh melampaui huruf, angka, dan simbol Latin biasa yang biasa Anda lihat
Unicode adalah standar ambisius yang berupaya menyediakan kode numerik untuk setiap karakter yang memungkinkan, dalam setiap bahasa yang memungkinkan, di setiap platform yang memungkinkan. Python 3 mendukung Unicode secara ekstensif, termasuk memungkinkan karakter Unicode dalam string
Untuk informasi lebih lanjut. Lihat Pengkodean Unicode & Karakter dengan Python. Panduan Tanpa Rasa Sakit dan dalam dokumentasi Python
Selama Anda tetap berada di domain karakter umum, ada sedikit perbedaan praktis antara ASCII dan Unicode. Tetapi fungsi >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _51 juga akan mengembalikan nilai numerik untuk karakter Unicode
>>> >>> ord('€') 8364 >>> ord('∑') 8721 _
>>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _58
Mengembalikan nilai karakter untuk bilangan bulat yang diberikan
>>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _50 melakukan kebalikan dari >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 51. Diberi nilai numerik >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 38, >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 58 mengembalikan string yang mewakili karakter yang sesuai dengan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 38
>>> >>> chr(97) 'a' >>> chr(35) '#' _
>>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _50 juga menangani karakter Unicode
>>> >>> chr(8364) '€' >>> chr(8721) '∑' _
>>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _65
Mengembalikan panjang string
Dengan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _52, Anda dapat memeriksa panjang string Python. >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _65 mengembalikan jumlah karakter di >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37
>>> ________81______
>>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _69
Mengembalikan representasi string dari suatu objek
Hampir semua objek di Python dapat dirender sebagai string. >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _69 mengembalikan representasi string dari objek >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 71
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 0
Hilangkan iklanPengindeksan String
Seringkali dalam bahasa pemrograman, masing-masing item dalam kumpulan data terurut dapat diakses secara langsung menggunakan indeks numerik atau nilai kunci. Proses ini disebut sebagai pengindeksan
Dalam Python, string adalah urutan data karakter, dan dengan demikian dapat diindeks dengan cara ini. Karakter individu dalam sebuah string dapat diakses dengan menentukan nama string diikuti dengan angka dalam tanda kurung siku (>>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 72)
Pengindeksan string dalam Python berbasis nol. karakter pertama dalam string memiliki indeks >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _73, berikutnya memiliki indeks >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 74, dan seterusnya. Indeks karakter terakhir adalah panjang string dikurangi satu
Misalnya, diagram skematis dari indeks string >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 75 akan terlihat seperti ini
Karakter individual dapat diakses dengan indeks sebagai berikut
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 1
Mencoba mengindeks di luar akhir string menghasilkan kesalahan
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 2
Indeks string juga dapat ditentukan dengan angka negatif, dalam hal ini pengindeksan terjadi dari ujung string ke belakang. >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _76 mengacu pada karakter terakhir, >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 77 karakter kedua hingga terakhir, dan seterusnya. Berikut adalah diagram yang sama yang menunjukkan indeks positif dan negatif ke dalam string >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 75
Berikut adalah beberapa contoh pengindeksan negatif
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 3
Mencoba mengindeks dengan angka negatif di luar awal string menghasilkan kesalahan
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 4
Untuk string tidak kosong apa pun >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _37, >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 80 dan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 81 keduanya mengembalikan karakter terakhir. Tidak ada indeks yang masuk akal untuk string kosong
Pemotongan Tali
Python juga memungkinkan bentuk sintaks pengindeksan yang mengekstraksi substring dari sebuah string, yang dikenal sebagai pemotongan string. Jika >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _37 adalah sebuah string, ekspresi dari bentuk >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 83 mengembalikan bagian dari >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 dimulai dengan posisi >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 85, dan sampai dengan tetapi tidak termasuk posisi >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 38
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 5
Ingat. Indeks string berbasis nol. Karakter pertama dalam string memiliki indeks >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 73. Ini berlaku untuk pengindeksan dan pemotongan standar
Sekali lagi, indeks kedua menentukan karakter pertama yang tidak disertakan dalam hasil—karakter >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 88 (>>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 89) pada contoh di atas. Itu mungkin tampak sedikit tidak intuitif, tetapi menghasilkan hasil yang masuk akal. ekspresi >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 83 akan mengembalikan substring dengan panjang >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 91 karakter, dalam hal ini, >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 92
Jika Anda menghilangkan indeks pertama, irisan akan dimulai di awal string. Jadi, >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 93 dan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 94 setara
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 6
Demikian pula, jika Anda menghilangkan indeks kedua seperti pada >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 95, irisan memanjang dari indeks pertama hingga akhir string. Ini adalah alternatif yang bagus dan ringkas untuk >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 96 yang lebih rumit
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 7
Untuk string apa pun >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 dan bilangan bulat apa pun >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 38 (>>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 99), >>> 'foo' * -8 '' 00 akan sama dengan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37
>>> ________33______8
Menghilangkan kedua indeks akan mengembalikan string asli, secara keseluruhan. Secara harfiah. Ini bukan salinan, ini referensi ke string asli
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 9
Jika indeks pertama dalam sebuah slice lebih besar atau sama dengan indeks kedua, Python mengembalikan string kosong. Ini adalah cara lain yang dikaburkan untuk menghasilkan string kosong, jika Anda sedang mencarinya
>>> >>> 'foo' * -8 '' 0
Indeks negatif dapat digunakan dengan mengiris juga. >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _76 mengacu pada karakter terakhir, >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 77 karakter kedua hingga terakhir, dan seterusnya, sama seperti pengindeksan sederhana. Diagram di bawah menunjukkan cara memotong substring >>> 'foo' * -8 '' 04 dari string >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 75 menggunakan indeks positif dan negatif
Berikut adalah kode Python yang sesuai
>>> >>> 'foo' * -8 '' 1
Hilangkan iklanMenentukan Stride dalam String Slice
Ada satu varian lagi dari sintaks pemotongan untuk didiskusikan. Menambahkan >>> 'foo' * -8 '' 06 tambahan dan indeks ketiga menunjuk langkah (juga disebut langkah), yang menunjukkan berapa banyak karakter untuk melompat setelah mengambil setiap karakter dalam irisan
Misalnya, untuk string >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _75, irisan >>> 'foo' * -8 '' 08 dimulai dengan karakter pertama dan diakhiri dengan karakter terakhir (keseluruhan string), dan setiap karakter kedua dilewati. Ini ditunjukkan dalam diagram berikut
Demikian pula, >>> 'foo' * -8 '' _09 menentukan irisan yang dimulai dengan karakter kedua (indeks >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 74) dan diakhiri dengan karakter terakhir, dan lagi nilai langkah >>> 'foo' * -8 '' 11 menyebabkan setiap karakter lain dilewati
Kode REPL ilustratif ditampilkan di sini
>>> >>> 'foo' * -8 '' 2
Seperti halnya pemotongan apa pun, indeks pertama dan kedua dapat dihilangkan, dan masing-masing default ke karakter pertama dan terakhir
>>> >>> 'foo' * -8 '' 3
Anda juga dapat menentukan nilai langkah negatif, dalam hal ini Python melangkah mundur melalui string. Dalam hal ini, indeks awal/pertama harus lebih besar dari indeks akhir/kedua
>>> >>> 'foo' * -8 '' 4
Dalam contoh di atas, >>> 'foo' * -8 '' 12 berarti “mulai dari karakter terakhir dan mundur dengan >>> 'foo' * -8 '' 11, hingga tetapi tidak termasuk karakter pertama. ”
Saat Anda melangkah mundur, jika indeks pertama dan kedua dihilangkan, default dibalik dengan cara yang intuitif. indeks pertama default ke akhir string, dan indeks kedua default ke awal. Ini sebuah contoh
>>> >>> 'foo' * -8 '' 5
Ini adalah paradigma umum untuk membalikkan string
>>> >>> 'foo' * -8 '' 6
Interpolasi Variabel Menjadi String
Dalam Python versi 3. 6, mekanisme pemformatan string baru diperkenalkan. Fitur ini secara resmi bernama Formatted String Literal, tetapi lebih sering disebut dengan julukan f-string
Kemampuan pemformatan yang disediakan oleh f-string sangat luas dan tidak akan dibahas secara mendetail di sini. Jika Anda ingin mempelajari lebih lanjut, Anda dapat melihat artikel Real Python f-Strings Python 3. Sintaks Pemformatan String yang Disempurnakan (Panduan). Ada juga tutorial tentang Formatted Output yang akan muncul kemudian dalam seri ini yang membahas f-string lebih dalam
Salah satu fitur sederhana f-string yang bisa langsung Anda gunakan adalah interpolasi variabel. Anda dapat menentukan nama variabel secara langsung di dalam literal f-string, dan Python akan mengganti nama tersebut dengan nilai yang sesuai
Misalnya, Anda ingin menampilkan hasil perhitungan aritmatika. Anda dapat melakukan ini dengan pernyataan >>> 'foo' * -8 '' _14 langsung, memisahkan nilai numerik dan literal string dengan koma
>>> ________50______7
Tapi ini rumit. Untuk mencapai hal yang sama menggunakan f-string
- Tentukan huruf kecil >>> 'foo' * -8 '' _15 atau huruf besar >>> 'foo' * -8 '' 16 langsung sebelum kutipan pembuka dari literal string. Ini memberi tahu Python bahwa itu adalah f-string, bukan string standar
- Tentukan variabel apa saja yang akan diinterpolasi dalam kurung kurawal (>>> 'foo' * -8 '' 17)
Recast menggunakan f-string, contoh di atas terlihat jauh lebih bersih
>>> ________50______8
Salah satu dari tiga mekanisme kutipan Python dapat digunakan untuk mendefinisikan f-string
>>> >>> 'foo' * -8 '' 9
Hilangkan iklanMemodifikasi String
Singkatnya, Anda tidak bisa. String adalah salah satu tipe data yang dianggap tidak dapat diubah oleh Python, artinya tidak dapat diubah. Faktanya, semua tipe data yang Anda lihat sejauh ini tidak dapat diubah. (Python memang menyediakan tipe data yang bisa berubah, seperti yang akan segera Anda lihat. )
Pernyataan seperti ini akan menyebabkan kesalahan
>>> >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 0
Sebenarnya, sebenarnya tidak perlu banyak memodifikasi string. Anda biasanya dapat dengan mudah mencapai apa yang Anda inginkan dengan membuat salinan dari string asli yang memiliki perubahan yang diinginkan. Ada banyak cara untuk melakukan ini dengan Python. Inilah satu kemungkinan
>>> >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 1
Ada juga metode string bawaan untuk melakukannya
>>> >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 2
Baca terus untuk informasi lebih lanjut tentang metode string bawaan
Metode String bawaan
Anda belajar dalam tutorial tentang Variabel dalam Python bahwa Python adalah bahasa yang sangat berorientasi objek. Setiap item data dalam program Python adalah objek
Anda juga akrab dengan fungsi. prosedur yang dapat dipanggil yang dapat Anda panggil untuk melakukan tugas tertentu
Metode mirip dengan fungsi. Metode adalah jenis khusus dari prosedur yang dapat dipanggil yang terkait erat dengan objek. Seperti fungsi, metode dipanggil untuk melakukan tugas yang berbeda, tetapi dipanggil pada objek tertentu dan mengetahui objek targetnya selama eksekusi
Sintaks untuk memanggil metode pada objek adalah sebagai berikut
>>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 3
Ini memanggil metode >>> 'foo' * -8 '' _18 pada objek >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 71. >>> 'foo' * -8 '' 20 menentukan argumen yang diteruskan ke metode (jika ada)
Anda akan menjelajahi lebih jauh tentang mendefinisikan dan memanggil metode nanti dalam pembahasan pemrograman berorientasi objek. Untuk saat ini, tujuannya adalah untuk menyajikan beberapa metode bawaan yang lebih umum digunakan yang didukung Python untuk beroperasi pada objek string
Dalam definisi metode berikut, argumen yang ditentukan dalam tanda kurung siku (>>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 72) adalah opsional
Konversi Kasus
Metode dalam grup ini melakukan konversi kasus pada string target
>>> 'foo' * -8 '' 22
Mengkapitalisasi string target
>>> 'foo' * -8 '' 22 mengembalikan salinan ________33______37 dengan karakter pertama diubah menjadi huruf besar dan semua karakter lainnya diubah menjadi huruf kecil
>>> >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 4
Karakter non-abjad tidak berubah
>>> >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 5
>>> 'foo' * -8 '' 25
Mengonversi karakter alfabet menjadi huruf kecil
>>> 'foo' * -8 '' 25 mengembalikan salinan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 dengan semua karakter alfabet dikonversi menjadi huruf kecil
>>> >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 6
>>> 'foo' * -8 '' _28
Tukar huruf besar-kecil karakter alfabet
>>> 'foo' * -8 '' 28 mengembalikan salinan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 dengan karakter alfabet huruf besar yang diubah menjadi huruf kecil dan sebaliknya
>>> >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 7
>>> 'foo' * -8 '' _31
Mengonversi string target menjadi “title case. ”
>>> 'foo' * -8 '' 31 mengembalikan salinan ________33______37 di mana huruf pertama dari setiap kata diubah menjadi huruf besar dan huruf lainnya menjadi huruf kecil
>>> ________56______8
Metode ini menggunakan algoritma yang cukup sederhana. Itu tidak berusaha membedakan antara kata-kata penting dan tidak penting, dan tidak menangani apostrof, posesif, atau akronim dengan anggun
>>> >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 9
>>> 'foo' * -8 '' _34
Mengonversi karakter alfabet menjadi huruf besar
>>> 'foo' * -8 '' 34 mengembalikan salinan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 dengan semua karakter alfabet dikonversi menjadi huruf besar
>>> >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 0
Temukan dan ganti
Metode ini menyediakan berbagai cara untuk mencari string target untuk substring yang ditentukan
Setiap metode dalam grup ini mendukung argumen ________50______37 dan >>> 'foo' * -8 '' 38 opsional. Ini ditafsirkan sebagai untuk mengiris string. aksi metode ini dibatasi pada bagian string target yang dimulai dari posisi karakter >>> 'foo' * -8 '' 37 dan berlanjut hingga tetapi tidak termasuk posisi karakter >>> 'foo' * -8 '' 38. Jika >>> 'foo' * -8 '' 37 ditentukan tetapi >>> 'foo' * -8 '' 38 tidak, metode ini berlaku untuk bagian string target dari >>> 'foo' * -8 '' 37 hingga akhir string
>>> 'foo' * -8 '' _44
Menghitung kemunculan substring dalam string target
>>> 'foo' * -8 '' 45 mengembalikan jumlah kemunculan substring yang tidak tumpang tindih >>> 'foo' * -8 '' 46 di >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37
>>> >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 1
Hitungan dibatasi pada jumlah kemunculan dalam substring yang ditunjukkan oleh >>> 'foo' * -8 '' 37 dan >>> 'foo' * -8 '' 38, jika ditentukan
>>> >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 2
>>> 'foo' * -8 '' 50
Menentukan apakah string target diakhiri dengan substring yang diberikan
>>> 'foo' * -8 '' 51 mengembalikan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 47 jika >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 diakhiri dengan >>> 'foo' * -8 '' 54 yang ditentukan dan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 48 sebaliknya
>>> >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 3
Perbandingan dibatasi pada substring yang ditunjukkan oleh >>> 'foo' * -8 '' 37 dan >>> 'foo' * -8 '' 38, jika ditentukan
>>> >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 4
>>> 'foo' * -8 '' 58
Mencari string target untuk substring yang diberikan
Anda dapat menggunakan >>> 'foo' * -8 '' _59 untuk melihat apakah string Python berisi substring tertentu. >>> 'foo' * -8 '' 60 mengembalikan indeks terendah di >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 di mana substring >>> 'foo' * -8 '' 46 ditemukan
>>> >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 5
Metode ini mengembalikan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _76 jika substring yang ditentukan tidak ditemukan
>>> >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 6
Pencarian dibatasi pada substring yang ditunjukkan oleh >>> 'foo' * -8 '' 37 dan >>> 'foo' * -8 '' 38, jika ditentukan
>>> >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 7
>>> 'foo' * -8 '' _66
Mencari string target untuk substring yang diberikan
Metode ini identik dengan >>> 'foo' * -8 '' _59, kecuali metode ini memunculkan pengecualian jika >>> 'foo' * -8 '' 46 tidak ditemukan daripada mengembalikan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 76
>>> ________57______8
>>> 'foo' * -8 '' 70
Mencari string target untuk substring tertentu mulai dari akhir
>>> 'foo' * -8 '' 71 mengembalikan indeks tertinggi di >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 di mana substring >>> 'foo' * -8 '' 46 ditemukan
>>> >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 9
Seperti >>> 'foo' * -8 '' _59, jika substring tidak ditemukan, >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 76 dikembalikan
>>> >>> ord('a') 97 >>> ord('#') 35 0
Pencarian dibatasi pada substring yang ditunjukkan oleh >>> 'foo' * -8 '' 37 dan >>> 'foo' * -8 '' 38, jika ditentukan
>>> >>> ord('a') 97 >>> ord('#') 35 1
>>> 'foo' * -8 '' 78
Mencari string target untuk substring tertentu mulai dari akhir
Metode ini identik dengan >>> 'foo' * -8 '' 79, kecuali metode ini memunculkan pengecualian jika >>> 'foo' * -8 '' 46 tidak ditemukan daripada mengembalikan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 76
>>> >>> ord('a') 97 >>> ord('#') 35 2
>>> 'foo' * -8 '' _82
Menentukan apakah string target dimulai dengan substring yang diberikan
Saat Anda menggunakan metode Python >>> 'foo' * -8 '' 83, >>> 'foo' * -8 '' 84 mengembalikan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 47 jika >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 dimulai dengan >>> 'foo' * -8 '' 54 yang ditentukan dan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 48 sebaliknya
>>> >>> ord('a') 97 >>> ord('#') 35 3
Perbandingan dibatasi pada substring yang ditunjukkan oleh >>> 'foo' * -8 '' 37 dan >>> 'foo' * -8 '' 38, jika ditentukan
>>> >>> ord('a') 97 >>> ord('#') 35 4
Klasifikasi Karakter
Metode dalam grup ini mengklasifikasikan string berdasarkan karakter yang dikandungnya
>>> 'foo' * -8 '' _91
Menentukan apakah string target terdiri dari karakter alfanumerik
>>> 'foo' * -8 '' 91 mengembalikan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 47 jika >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 tidak kosong dan semua karakternya alfanumerik (baik huruf atau angka), dan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 48 sebaliknya
>>> >>> ord('a') 97 >>> ord('#') 35 5
>>> 'foo' * -8 '' _96
Menentukan apakah string target terdiri dari karakter alfabet
>>> 'foo' * -8 '' 96 mengembalikan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 47 jika >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 tidak kosong dan semua karakternya abjad, dan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 48 sebaliknya
>>> >>> ord('a') 97 >>> ord('#') 35 6
>>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False _01
Menentukan apakah string target terdiri dari karakter digit
Anda dapat menggunakan metode Python >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False _02 untuk memeriksa apakah string Anda hanya terdiri dari angka. >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 01 mengembalikan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 47 jika >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 tidak kosong dan semua karakternya adalah angka numerik, dan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 48 sebaliknya
>>> >>> ord('a') 97 >>> ord('#') 35 7
>>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False _07
Menentukan apakah string target adalah pengidentifikasi Python yang valid
>>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 07 mengembalikan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 47 jika >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 adalah pengenal Python yang valid menurut definisi bahasa, dan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 48 sebaliknya
>>> ________65______8
Catatan. >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 12 akan mengembalikan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 47 untuk string yang cocok dengan kata kunci Python meskipun itu sebenarnya bukan pengidentifikasi yang valid
>>> >>> ord('a') 97 >>> ord('#') 35 9
Anda dapat menguji apakah suatu string cocok dengan kata kunci Python menggunakan fungsi yang disebut >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 14, yang terdapat dalam modul bernama >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 15. Salah satu cara yang mungkin untuk melakukan ini ditunjukkan di bawah ini
>>> >>> ord('€') 8364 >>> ord('∑') 8721 0
Jika Anda benar-benar ingin memastikan bahwa string akan berfungsi sebagai pengenal Python yang valid, Anda harus memeriksa bahwa >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 12 adalah >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 47 dan bahwa >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 14 adalah >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 48
Lihat Modul dan Paket Python—Pengantar untuk membaca lebih lanjut tentang modul Python
>>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 20
Menentukan apakah karakter abjad string target adalah huruf kecil
>>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 20 mengembalikan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 47 jika >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 tidak kosong dan semua karakter alfabet yang dikandungnya adalah huruf kecil, dan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 48 sebaliknya. Karakter non-abjad diabaikan
>>> >>> ord('€') 8364 >>> ord('∑') 8721 1
>>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 25
Menentukan apakah string target seluruhnya terdiri dari karakter yang dapat dicetak
>>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 25 mengembalikan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 47 jika >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 kosong atau semua karakter alfabet yang dikandungnya dapat dicetak. Ini mengembalikan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 48 jika >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 berisi setidaknya satu karakter yang tidak dapat dicetak. Karakter non-abjad diabaikan
>>> >>> ord('€') 8364 >>> ord('∑') 8721 2
Catatan. Ini adalah satu-satunya metode >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False _31 yang mengembalikan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 47 jika >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 adalah string kosong. Yang lainnya mengembalikan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 48 untuk string kosong
>>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False _35
Menentukan apakah string target terdiri dari karakter spasi
>>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 35 mengembalikan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 47 jika >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 tidak kosong dan semua karakter adalah karakter spasi, dan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 48 sebaliknya
Karakter spasi yang paling sering ditemui adalah spasi >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 40, tab >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 41, dan baris baru >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 42
>>> >>> ord('€') 8364 >>> ord('∑') 8721 3
Namun, ada beberapa karakter ASCII lain yang memenuhi syarat sebagai spasi putih, dan jika Anda memperhitungkan karakter Unicode, ada beberapa di luar itu.
>>> >>> ord('€') 8364 >>> ord('∑') 8721 4
(>>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False _43 dan >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 44 adalah escape sequence untuk karakter ASCII Form Feed and Carriage Return; >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 45 adalah escape sequence untuk Unicode Four-Per-Em Space. )
>>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False _46
Menentukan apakah string target adalah huruf kapital
>>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 46 mengembalikan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 47 jika >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 tidak kosong, karakter alfabet pertama dari setiap kata adalah huruf besar, dan semua karakter alfabet lainnya di setiap kata adalah huruf kecil. Ia mengembalikan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _48 jika tidak
>>> >>> ord('€') 8364 >>> ord('∑') 8721 5
Catatan. Berikut adalah bagaimana dokumentasi Python menjelaskan >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 51, jika Anda merasa ini lebih intuitif. “Karakter huruf besar hanya boleh mengikuti karakter tanpa huruf dan karakter huruf kecil hanya dengan huruf besar. ”
>>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 52
Menentukan apakah karakter abjad string target adalah huruf besar
>>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 52 mengembalikan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 47 jika >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 tidak kosong dan semua karakter alfabet yang dikandungnya adalah huruf besar, dan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 48 sebaliknya. Karakter non-abjad diabaikan
>>> >>> ord('€') 8364 >>> ord('∑') 8721 6
Pemformatan String
Metode dalam grup ini memodifikasi atau menyempurnakan format string
>>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False _57
Memusatkan string dalam bidang
>>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 58 mengembalikan string yang terdiri dari >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 berpusat di bidang lebar >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 60. Secara default, padding terdiri dari karakter spasi ASCII
>>> >>> ord('€') 8364 >>> ord('∑') 8721 7
Jika argumen >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False _61 opsional ditentukan, ini digunakan sebagai karakter pengisi
>>> ________67______8
Jika >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 sudah setidaknya selama >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 60, dikembalikan tidak berubah
>>> ________67______9
>>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False _64
Memperluas tab dalam sebuah string
>>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 65 mengganti setiap karakter tab (>>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 41) dengan spasi. Secara default, spasi diisi dengan asumsi tab berhenti di setiap kolom kedelapan
>>> >>> chr(97) 'a' >>> chr(35) '#' 0
>>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 67 adalah parameter kata kunci opsional yang menentukan kolom penghentian tab alternatif
>>> >>> chr(97) 'a' >>> chr(35) '#' 1
>>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False _68
Kiri-membenarkan string di bidang
>>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 69 mengembalikan string yang terdiri dari >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 rata kiri di bidang lebar >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 60. Secara default, padding terdiri dari karakter spasi ASCII
>>> >>> chr(97) 'a' >>> chr(35) '#' 2
Jika argumen >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False _61 opsional ditentukan, ini digunakan sebagai karakter pengisi
>>> >>> chr(97) 'a' >>> chr(35) '#' 3
Jika >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 sudah setidaknya selama >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 60, dikembalikan tidak berubah
>>> >>> chr(97) 'a' >>> chr(35) '#' 4
>>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 75
Memangkas karakter utama dari sebuah string
>>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 76 mengembalikan salinan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 dengan karakter spasi yang dihapus dari ujung kiri
>>> >>> chr(97) 'a' >>> chr(35) '#' 5
Jika argumen >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 78 opsional ditentukan, itu adalah string yang menentukan kumpulan karakter yang akan dihapus
>>> >>> chr(97) 'a' >>> chr(35) '#' 6
>>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 79
Mengganti kemunculan substring di dalam string
Di Python, untuk menghapus karakter dari string, Anda dapat menggunakan metode string Python >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 80. >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 81 mengembalikan salinan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 dengan semua kemunculan substring >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 83 diganti dengan >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 84
>>> >>> chr(97) 'a' >>> chr(35) '#' 7
Jika argumen >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 85 opsional ditentukan, maksimal >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 85 penggantian dilakukan, mulai dari ujung kiri >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37
>>> ________74______8
>>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False _88
Kanan-membenarkan string dalam bidang
>>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 89 mengembalikan string yang terdiri dari >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 rata kanan dalam bidang lebar >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 60. Secara default, padding terdiri dari karakter spasi ASCII
>>> >>> chr(97) 'a' >>> chr(35) '#' 9
Jika argumen >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False _61 opsional ditentukan, ini digunakan sebagai karakter pengisi
>>> >>> chr(8364) '€' >>> chr(8721) '∑' 0
Jika >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 sudah setidaknya selama >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 60, dikembalikan tidak berubah
>>> >>> chr(8364) '€' >>> chr(8721) '∑' 1
>>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False _95
Memangkas karakter yang tertinggal dari string
>>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 96 mengembalikan salinan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 dengan karakter spasi yang dihapus dari ujung kanan
>>> >>> chr(8364) '€' >>> chr(8721) '∑' 2
Jika argumen >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 78 opsional ditentukan, itu adalah string yang menentukan kumpulan karakter yang akan dihapus
>>> >>> chr(8364) '€' >>> chr(8721) '∑' 3
>>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False _99
Menghapus karakter dari ujung kiri dan kanan string
>>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False _00 pada dasarnya setara dengan memohon >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 76 dan >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 96 berturut-turut. Tanpa >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False _78 argumen, ini menghilangkan spasi kosong di depan dan di belakang
>>> >>> chr(8364) '€' >>> chr(8721) '∑' 4
Seperti >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 04 dan >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 05, argumen >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 78 opsional menentukan kumpulan karakter yang akan dihapus
>>> >>> chr(8364) '€' >>> chr(8721) '∑' 5
Catatan. Ketika nilai pengembalian dari metode string adalah string lain, seperti yang sering terjadi, metode dapat dipanggil secara berurutan dengan merantai panggilan
>>> >>> chr(8364) '€' >>> chr(8721) '∑' 6
>>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False _07
Bantalan string di sebelah kiri dengan nol
>>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False _07 mengembalikan salinan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 padding kiri dengan >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 10 karakter ke >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 60 yang ditentukan
>>> ________76______7
Jika >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _37 berisi tanda awal, tanda tersebut tetap berada di tepi kiri string hasil setelah nol dimasukkan
>>> ________76______8
Jika >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 sudah setidaknya selama >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 60, dikembalikan tidak berubah
>>> ________76______9
>>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False _15 paling berguna untuk representasi string dari angka, tetapi Python akan tetap dengan senang hati melakukan zero-pad pada string yang tidak
>>> >>> s = 'I am a string.' >>> len(s) 14 0
Konversi Antara String dan Daftar
Metode dalam grup ini mengonversi antara string dan beberapa tipe data komposit dengan menempelkan objek bersama-sama untuk membuat string, atau dengan memecah string menjadi beberapa bagian
Metode ini beroperasi atau mengembalikan iterables, istilah umum Python untuk kumpulan objek berurutan. Anda akan menjelajahi cara kerja bagian dalam iterables dengan lebih mendetail dalam tutorial mendatang tentang iterasi pasti
Banyak dari metode ini mengembalikan daftar atau tupel. Ini adalah dua tipe data komposit serupa yang merupakan contoh prototipe iterables di Python. Mereka tercakup dalam tutorial berikutnya, jadi Anda akan segera mempelajarinya. Sampai saat itu, anggap saja mereka sebagai urutan nilai. Daftar diapit tanda kurung siku (>>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 72), dan tuple diapit tanda kurung (>>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 17)
Dengan pendahuluan itu, mari kita lihat grup metode string terakhir ini
>>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False _18
Menggabungkan string dari iterable
>>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False _18 mengembalikan string yang dihasilkan dari penggabungan objek di >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 20 dipisahkan oleh >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37
Perhatikan bahwa >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False _22 dipanggil pada >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37, string pemisah. >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False _20 juga harus berupa rangkaian objek string
Beberapa kode contoh akan membantu memperjelas. Dalam contoh berikut, pemisah >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 adalah string >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 26, dan >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 20 adalah daftar nilai string
>>> >>> s = 'I am a string.' >>> len(s) 14 1
Hasilnya adalah string tunggal yang terdiri dari daftar objek yang dipisahkan dengan koma
Dalam contoh berikutnya, >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False _20 ditetapkan sebagai nilai string tunggal. Ketika nilai string digunakan sebagai iterable, itu ditafsirkan sebagai daftar karakter individual string
>>> >>> s = 'I am a string.' >>> len(s) 14 2
Jadi, hasil dari >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False _29 adalah string yang terdiri dari setiap karakter di >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 30 dipisahkan oleh >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 31
Contoh ini gagal karena salah satu objek di >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 20 bukan string
>>> ________81______3
Itu bisa diperbaiki
>>> >>> s = 'I am a string.' >>> len(s) 14 4
Seperti yang akan segera Anda lihat, banyak objek komposit di Python dapat ditafsirkan sebagai iterables, dan >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 22 sangat berguna untuk membuat string darinya
>>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False _34
Membagi string berdasarkan pemisah
>>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False _34 membelah >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 pada kemunculan string pertama >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 37. Nilai pengembalian adalah tuple tiga bagian yang terdiri dari
- Bagian dari >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 sebelum >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 37
- >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False _37 itu sendiri
- Bagian dari >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 mengikuti >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 37
Berikut adalah beberapa contoh >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False _43 dalam tindakan
>>> >>> s = 'I am a string.' >>> len(s) 14 5
Jika >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False _37 tidak ditemukan di >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37, tuple yang dikembalikan berisi >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 diikuti oleh dua string kosong
>>> >>> s = 'I am a string.' >>> len(s) 14 6
Ingat. Daftar dan tupel dibahas dalam tutorial berikutnya
>>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False _47
Membagi string berdasarkan pemisah
>>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False _47 berfungsi persis seperti >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 34, kecuali bahwa >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 dibagi pada kejadian terakhir >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 37 bukan kejadian pertama
>>> ________81______7
>>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False _52
Membagi string menjadi daftar substring
Tanpa argumen, >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 53 membagi >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 menjadi substring yang dibatasi oleh urutan spasi dan mengembalikan substring sebagai daftar
>>> ________81______8
Jika >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False _37 ditentukan, ini digunakan sebagai pembatas untuk pemisahan
>>> ________81______9
(Jika >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 37 ditentukan dengan nilai >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 57, string dipisahkan dipisahkan oleh spasi putih, seolah-olah >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 37 belum ditentukan sama sekali. )
Ketika >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False _37 secara eksplisit diberikan sebagai pembatas, pembatas berurutan di >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 diasumsikan membatasi string kosong, yang akan dikembalikan
>>>>>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 00>>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 00
Ini tidak terjadi ketika >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False _37 dihilangkan. Dalam hal ini, karakter spasi putih yang berurutan digabungkan menjadi pembatas tunggal, dan daftar yang dihasilkan tidak akan pernah berisi string kosong
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 01
Jika parameter kata kunci opsional >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False _62 ditentukan, maksimal banyak pemisahan dilakukan, mulai dari ujung kanan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 02
Nilai default untuk >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 62 adalah >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 76, yang berarti semua kemungkinan pemisahan harus dilakukan—sama seperti jika >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 62 dihilangkan seluruhnya
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 03
>>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False _67
Membagi string menjadi daftar substring
>>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False _68 berperilaku persis seperti >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 53, kecuali jika >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 62 ditentukan, pembagian dihitung dari ujung kiri >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 daripada ujung kanan
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 04
Jika >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False _62 tidak ditentukan, >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 73 dan >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 74 tidak dapat dibedakan
>>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False _75
Memecah string pada batas garis
>>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False _76 membagi >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 menjadi beberapa baris dan mengembalikannya dalam daftar. Salah satu dari karakter atau urutan karakter berikut ini dianggap sebagai batas garis
Escape SequenceCharacter>>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 78Newline>>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 79Carriage Return>>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 80Carriage Return + Line Feed>>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 81 or >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 82Line Tabulation>>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 83 or >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 84Form Feed>>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 85File Separator>>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 86Group Separator>>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 87Record Separator>>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 88Next Line (C1 Control Code)>>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 89Unicode Line Separator>>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 90Unicode Paragraph Separator
Berikut adalah contoh menggunakan beberapa pemisah garis yang berbeda
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 05
Jika karakter batas baris berturut-turut hadir dalam string, mereka dianggap membatasi baris kosong, yang akan muncul di daftar hasil
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 06
Jika argumen >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 91 opsional ditentukan dan benar, maka batas garis dipertahankan dalam string hasil
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 07
Hilangkan iklan>>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _29 Objek
Objek >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _29 adalah salah satu tipe bawaan inti untuk memanipulasi data biner. Objek >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _29 adalah urutan nilai byte tunggal yang tidak dapat diubah. Setiap elemen dalam objek >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29 adalah bilangan bulat kecil dalam rentang >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 73 hingga >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 97
Mendefinisikan Objek >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _29 Literal
A >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _29 literal didefinisikan dengan cara yang sama seperti string literal dengan penambahan awalan >>> ord('a') 97 >>> ord('#') 35 00
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 08
Seperti string, Anda dapat menggunakan salah satu dari mekanisme kutipan tunggal, ganda, atau tiga
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 09
Hanya karakter ASCII yang diperbolehkan dalam >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29 literal. Setiap nilai karakter yang lebih besar dari >>> ord('a') 97 >>> ord('#') 35 _02 harus ditentukan menggunakan escape sequence yang sesuai
>>> ________33______10
Awalan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 88 dapat digunakan pada >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29 literal untuk menonaktifkan pemrosesan escape sequence, seperti string
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 11
Mendefinisikan Objek >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29 Dengan Fungsi >>> ord('a') 97 >>> ord('#') 35 06 Bawaan
Fungsi >>> ord('a') 97 >>> ord('#') 35 _06 juga membuat objek >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29. Objek >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _29 seperti apa yang dikembalikan tergantung pada argumen yang diteruskan ke fungsi. Bentuk yang mungkin ditunjukkan di bawah ini
>>> ord('a') 97 >>> ord('#') 35 10
Membuat objek >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _29 dari sebuah string
>>> ord('a') 97 >>> ord('#') 35 10 mengonversi string >>> ord('a') 97 >>> ord('#') 35 13 menjadi objek >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29, menggunakan >>> ord('a') 97 >>> ord('#') 35 15 sesuai dengan >>> ord('a') 97 >>> ord('#') 35 16 yang ditentukan
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 12
Catatan Teknis. Dalam bentuk fungsi >>> ord('a') 97 >>> ord('#') 35 06 ini, argumen >>> ord('a') 97 >>> ord('#') 35 16 diperlukan. "Pengkodean" mengacu pada cara karakter diterjemahkan ke nilai bilangan bulat. Nilai >>> ord('a') 97 >>> ord('#') 35 19 menunjukkan Unicode Transformation Format UTF-8, yang merupakan pengkodean yang dapat menangani setiap kemungkinan karakter Unicode. UTF-8 juga dapat ditunjukkan dengan menentukan >>> ord('a') 97 >>> ord('#') 35 20, >>> ord('a') 97 >>> ord('#') 35 21, atau >>> ord('a') 97 >>> ord('#') 35 22 untuk >>> ord('a') 97 >>> ord('#') 35 16
Lihat dokumentasi Unicode untuk informasi lebih lanjut. Selama Anda berurusan dengan karakter umum berbasis Latin, UTF-8 akan membantu Anda
>>> ord('a') 97 >>> ord('#') 35 _24
Membuat objek >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _29 yang terdiri dari null (>>> ord('a') 97 >>> ord('#') 35 26) byte
>>> ord('a') 97 >>> ord('#') 35 24 mendefinisikan objek >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29 dari >>> ord('a') 97 >>> ord('#') 35 29 yang ditentukan, yang harus berupa bilangan bulat positif. Objek >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _29 yang dihasilkan diinisialisasi ke null (>>> ord('a') 97 >>> ord('#') 35 26) byte
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 13
>>> ord('a') 97 >>> ord('#') 35 _32
Membuat objek >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _29 dari iterable
>>> ord('a') 97 >>> ord('#') 35 32 mendefinisikan objek >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29 dari urutan bilangan bulat yang dihasilkan oleh >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 20. >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False _20 harus iterable yang menghasilkan urutan bilangan bulat >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 38 dalam rentang >>> ord('a') 97 >>> ord('#') 35 39
>>> ________33______14
Hilangkan iklanOperasi pada >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _29 Objek
Seperti string, objek >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _29 mendukung operasi urutan umum
Operator >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 45 dan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 49
>>> ________33______15
Penggabungan (>>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 31) dan replikasi (>>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _32) operator
>>> ________33______16
Mengindeks dan mengiris
>>> ________33______17
Fungsi bawaan
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 18
Banyak metode yang didefinisikan untuk objek string juga berlaku untuk ________33______29 objek
>>> ________33______19
Perhatikan, bagaimanapun, bahwa ketika operator dan metode ini dipanggil pada objek >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29, operan dan argumen harus berupa objek >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29 juga
>>> ________33______20
Meskipun definisi dan representasi objek >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29 didasarkan pada teks ASCII, itu sebenarnya berperilaku seperti urutan bilangan bulat kecil yang tidak dapat diubah dalam rentang >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 73 hingga >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False 97, inklusif. Itulah mengapa satu elemen dari objek ________33______29 ditampilkan sebagai bilangan bulat
>>> ________33______21
Sebuah slice ditampilkan sebagai objek >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _29, meskipun panjangnya hanya satu byte
>>> ________33______22
Anda dapat mengonversi objek >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _29 menjadi daftar bilangan bulat dengan fungsi >>> ord('a') 97 >>> ord('#') 35 55 bawaan
>>> ________33______23
Angka heksadesimal sering digunakan untuk menentukan data biner karena dua digit heksadesimal berhubungan langsung dengan satu byte. Kelas >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _29 mendukung dua metode tambahan yang memfasilitasi konversi ke dan dari string digit heksadesimal
>>> ord('a') 97 >>> ord('#') 35 _57
Mengembalikan objek >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29 yang dibangun dari string nilai heksadesimal
>>> ord('a') 97 >>> ord('#') 35 57 mengembalikan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29 objek yang dihasilkan dari konversi setiap pasangan digit heksadesimal di >>> ord('a') 97 >>> ord('#') 35 13 ke nilai byte yang sesuai. Pasangan digit heksadesimal di >>> ord('a') 97 >>> ord('#') 35 13 secara opsional dapat dipisahkan oleh spasi putih, yang diabaikan
>>> ________33______24
Catatan. Metode ini adalah metode kelas, bukan metode objek. Itu terikat ke kelas >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _29, bukan objek >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29. Anda akan mempelajari lebih dalam tentang perbedaan antara kelas, objek, dan metodenya masing-masing dalam tutorial mendatang tentang pemrograman berorientasi objek. Untuk saat ini, amati saja bahwa metode ini dipanggil pada kelas >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29, bukan pada objek >>> ord('a') 97 >>> ord('#') 35 66
>>> ord('a') 97 >>> ord('#') 35 _67
Mengembalikan string nilai heksadesimal dari objek >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29
>>> ord('a') 97 >>> ord('#') 35 67 mengembalikan hasil konversi >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29 objek >>> ord('a') 97 >>> ord('#') 35 66 menjadi string pasangan digit heksadesimal. Artinya, kebalikan dari ________65______72
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 25
Catatan. Berbeda dengan >>> ord('a') 97 >>> ord('#') 35 72, >>> ord('a') 97 >>> ord('#') 35 74 adalah metode objek, bukan metode kelas. Jadi, ini dipanggil pada objek kelas >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29, bukan pada kelas itu sendiri
Hilangkan iklan>>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _30 Objek
Python mendukung tipe urutan biner lain yang disebut >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 30. >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 30 objek sangat mirip >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29 objek, meskipun ada beberapa perbedaan
Tidak ada sintaks khusus yang dibangun ke dalam Python untuk mendefinisikan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 30 literal, seperti awalan >>> ord('a') 97 >>> ord('#') 35 00 yang dapat digunakan untuk mendefinisikan objek >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29. Objek >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _30 selalu dibuat menggunakan fungsi bawaan >>> ord('a') 97 >>> ord('#') 35 84
>>> ________33______26
>>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _30 objek bisa berubah. Anda dapat memodifikasi konten objek >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _30 menggunakan pengindeksan dan pengirisan
>>> ________33______27
Objek >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _30 dapat dibangun langsung dari objek >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29 juga
>>> ________33______28
Kesimpulan
Tutorial ini memberikan pandangan mendalam pada banyak mekanisme berbeda yang disediakan Python untuk penanganan string, termasuk operator string, fungsi bawaan, pengindeksan, pemotongan, dan metode bawaan. Anda juga diperkenalkan dengan tipe >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _29 dan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 30
Tipe ini adalah tipe pertama yang telah Anda periksa yang merupakan gabungan—dibangun dari kumpulan bagian yang lebih kecil. Python menyediakan beberapa tipe built-in komposit. Dalam tutorial berikutnya, Anda akan menjelajahi dua yang paling sering digunakan. list dan tuple
Ikuti Kuis. Uji pengetahuan Anda dengan kuis "String Python dan Data Karakter" interaktif kami. Setelah selesai Anda akan menerima skor sehingga Anda dapat melacak kemajuan belajar Anda dari waktu ke waktu
Ikuti Kuis »
« Operator dan Ekspresi dengan Python
Daftar dan Tuple dengan Python »
Tandai sebagai Selesai
Tonton Sekarang Tutorial ini memiliki kursus video terkait yang dibuat oleh tim Real Python. Tonton bersama dengan tutorial tertulis untuk memperdalam pemahaman Anda. Data String dan Karakter dengan Python
🐍 Trik Python 💌
Dapatkan Trik Python singkat & manis yang dikirim ke kotak masuk Anda setiap beberapa hari. Tidak pernah ada spam. Berhenti berlangganan kapan saja. Dikuratori oleh tim Real Python
Kirimi Saya Trik Python »
Tentang John Stutz
John adalah seorang Pythonista yang rajin dan anggota tim tutorial Real Python
» Lebih lanjut tentang YohanesSetiap tutorial di Real Python dibuat oleh tim pengembang sehingga memenuhi standar kualitas tinggi kami. Anggota tim yang mengerjakan tutorial ini adalah
Dan
Joanna
Master Keterampilan Python Dunia Nyata Dengan Akses Tanpa Batas ke Python Nyata
Bergabunglah dengan kami dan dapatkan akses ke ribuan tutorial, kursus video langsung, dan komunitas pakar Pythonista
Tingkatkan Keterampilan Python Anda »
Guru Keterampilan Python Dunia Nyata
Dengan Akses Tak Terbatas ke Real Python
Bergabunglah dengan kami dan dapatkan akses ke ribuan tutorial, kursus video langsung, dan komunitas ahli Pythonista
Tingkatkan Keterampilan Python Anda »
Bagaimana menurutmu?
Nilai artikel ini
Tweet Bagikan Bagikan EmailApa takeaway # 1 Anda atau hal favorit yang Anda pelajari?
Kiat Berkomentar. Komentar yang paling berguna adalah yang ditulis dengan tujuan belajar dari atau membantu siswa lain. dan dapatkan jawaban atas pertanyaan umum di portal dukungan kami