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, jenis >>> 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 ________0______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!!! _
>>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 32 Operator
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
>>> ________0______
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 >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 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
>>> >>> '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
>>>_______ 48 ________>>> s = 'I am a string.' >>> len(s) 14
>>> 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 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 hingga 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 sebuah 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. Thus, >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 93 and >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 94 are equivalent
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 6
Similarly, if you omit the second index as in >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 95, the slice extends from the first index through the end of the string. This is a nice, concise alternative to the more cumbersome >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 96
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 7
For any string >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 and any integer >>> 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 will be equal to >>> 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.' 8
Omitting both indices returns the original string, in its entirety. Secara harfiah. It’s not a copy, it’s a reference to the original string
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 9
If the first index in a slice is greater than or equal to the second index, Python returns an empty string. This is yet another obfuscated way to generate an empty string, in case you were looking for one
>>> >>> 'foo' * -8 '' 0
Negative indices can be used with slicing as well. >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 76 refers to the last character, >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 77 the second-to-last, and so on, just as with simple indexing. 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 menunjukkan langkah (juga disebut langkah), yang menunjukkan berapa banyak karakter yang harus dilompati 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
>>> >>> 'foo' * -8 '' 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
>>> >>> 'foo' * -8 '' 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 >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 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 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 ________0______37 di mana huruf pertama dari setiap kata diubah menjadi huruf besar dan huruf lainnya menjadi huruf kecil
>>> ________23______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 >>> 'foo' * -8 '' 37 dan >>> 'foo' * -8 '' 38 opsional. Ini ditafsirkan sebagai untuk mengiris string. aksi dari metode ini terbatas 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 berlaku untuk bagian string target dari >>> 'foo' * -8 '' 37 sampai 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
>>> ________24______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 menimbulkan 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
Ketika 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 adalah 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 pengidentifikasi Python yang valid menurut definisi bahasa, dan >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 48 sebaliknya
>>> ________32______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 pengenal yang valid
>>> ________32______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 terkandung dalam modul yang disebut >>> 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. “Uppercase characters may only follow uncased characters and lowercase characters only cased ones. ”
>>> 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 returns >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 47 if >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 37 is nonempty and all the alphabetic characters it contains are uppercase, and >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 48 otherwise. 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
>>> >>> ord('€') 8364 >>> ord('∑') 8721 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
>>> >>> ord('€') 8364 >>> ord('∑') 8721 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
>>> ________41______7
Jika argumen >>> s = 'foo' >>> s in 'That\'s food for thought.' True >>> s in 'That\'s good for now.' False 85 opsional ditentukan, maksimum >>> 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
>>> ________41______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 kanan-dibenarkan 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 ________23______60 yang ditentukan
>>> >>> chr(8364) '€' >>> chr(8721) '∑' 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
>>> >>> chr(8364) '€' >>> chr(8721) '∑' 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
>>> >>> chr(8364) '€' >>> chr(8721) '∑' 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
>>> >>> s = 'I am a string.' >>> len(s) 14 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 membagi >>> 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
>>> >>> s = 'I am a string.' >>> len(s) 14 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
>>> >>> s = 'I am a string.' >>> len(s) 14 8
Jika >>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False _37 ditentukan, ini digunakan sebagai pembatas untuk pemisahan
>>> >>> s = 'I am a string.' >>> len(s) 14 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
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 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
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 14
Hilangkan iklanOperations on >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29 Objects
Seperti string, objek >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _29 mendukung operasi urutan umum
>>> 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 operator
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 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
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 16
Mengindeks dan mengiris
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 17
Built-in functions
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 18
Many of the methods defined for string objects are valid for >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29 objects as well
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 19
Notice, however, that when these operators and methods are invoked on a >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29 object, the operand and arguments must be >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29 objects as well
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 20
Meskipun >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' _29 definisi dan representasi objek 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. That is why a single element from a >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29 object is displayed as an integer
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 21
A slice is displayed as a >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29 object though, even if it is only one byte long
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 22
You can convert a >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29 object into a list of integers with the built-in >>> ord('a') 97 >>> ord('#') 35 55 function
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 23
Hexadecimal numbers are often used to specify binary data because two hexadecimal digits correspond directly to a single byte. The >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29 class supports two additional methods that facilitate conversion to and from a string of hexadecimal digits
>>> ord('a') 97 >>> ord('#') 35 57
Returns a >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29 object constructed from a string of hexadecimal values
>>> ord('a') 97 >>> ord('#') 35 57 returns the >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29 object that results from converting each pair of hexadecimal digits in >>> ord('a') 97 >>> ord('#') 35 13 to the corresponding byte value. The hexadecimal digit pairs in >>> ord('a') 97 >>> ord('#') 35 13 may optionally be separated by whitespace, which is ignored
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 24
Note. This method is a class method, not an object method. It is bound to the >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29 class, not a >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29 object. You will delve much more into the distinction between classes, objects, and their respective methods in the upcoming tutorials on object-oriented programming. For now, just observe that this method is invoked on the >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29 class, not on object >>> ord('a') 97 >>> ord('#') 35 66
>>> ord('a') 97 >>> ord('#') 35 67
Returns a string of hexadecimal value from a >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29 object
>>> ord('a') 97 >>> ord('#') 35 67 returns the result of converting >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29 object >>> ord('a') 97 >>> ord('#') 35 66 into a string of hexadecimal digit pairs. That is, it does the reverse of >>> ord('a') 97 >>> ord('#') 35 72
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 25
Note. As opposed to >>> ord('a') 97 >>> ord('#') 35 72, >>> ord('a') 97 >>> ord('#') 35 74 is an object method, not a class method. Thus, it is invoked on an object of the >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29 class, not on the class itself
Hilangkan iklan>>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 30 Objects
Python supports another binary sequence type called the >>> 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. A >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 30 object is always created using the >>> ord('a') 97 >>> ord('#') 35 84 built-in function
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 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
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 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
>>> >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 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