Pig Latin adalah permainan bahasa, di mana Anda memindahkan huruf pertama dari kata ke akhir dan menambahkan “ay. ” Jadi "Python" menjadi "ythonpay. ” Untuk menulis penerjemah Pig Latin dengan Python, berikut adalah langkah-langkah yang perlu kita ambil. 01. Minta pengguna untuk memasukkan kata dalam bahasa Inggris. 02. Pastikan pengguna memasukkan kata yang valid. 03. Mengkonversi kata dari bahasa Inggris ke Pig Latin. 04. Menampilkan hasil terjemahan Show
Tipe yang terdiri dari bagian yang lebih kecil disebut tipe data majemuk. Bergantung pada apa yang kita lakukan, kita mungkin ingin memperlakukan tipe data majemuk sebagai satu hal, atau kita mungkin ingin mengakses bagian-bagiannya. Ambiguitas ini berguna Operator braket memilih satu karakter dari string >>> fruit = "banana" >>> letter = fruit[1] >>> print letter Ekspresi buah[1] memilih karakter nomor 1 dari buah. The variable huruf mengacu pada hasilnya. Saat kami menampilkan huruf , kami mendapat kejutan. a
_Huruf pertama dari "banana" bukan a, unless you are a computer scientist. For perverse reasons, computer scientists always start counting from zero. The 0th letter ( zero-eth ) of "banana" adalah b . Huruf ke-1 ( satu-eth ) adalah a , dan huruf ke-2 ( dua-eth ) adalah n< . . Jika Anda menginginkan huruf nol-eth dari sebuah string, Anda cukup memasukkan 0, atau ekspresi apa pun dengan nilai 0, di dalam tanda kurung >>> letter = fruit[0] >>> print letter b Ekspresi dalam tanda kurung disebut indeks. Indeks menentukan anggota dari himpunan terurut, dalam hal ini himpunan karakter dalam string. Indeks menunjukkan mana yang Anda inginkan, karenanya namanya. Itu bisa berupa ekspresi bilangan bulat apa pun 7. 2. PanjangnyaFungsi len mengembalikan jumlah karakter dalam string. >>> fruit = "banana" >>> len(fruit) 6 Untuk mendapatkan huruf terakhir dari sebuah string, Anda mungkin tergoda untuk mencoba sesuatu seperti ini length = len(fruit) last = fruit[length] # ERROR!_ Itu tidak akan berhasil. Ini menyebabkan galat runtime IndexError. string indeks di luar dari rentang . Alasannya adalah tidak ada huruf ke-6 pada . The reason is that there is no 6th letter in "banana" . Karena kami mulai menghitung dari nol, enam huruf diberi nomor 0 sampai 5. Untuk mendapatkan karakter terakhir, kita harus mengurangkan 1 dari panjang . length = len(fruit) last = fruit[length-1] Alternatifnya, kita dapat menggunakan indeks negatif, yang dihitung mundur dari akhir string. Ekspresi buah[-1] menghasilkan huruf terakhir, buah[-2] yields the second to last, and so on. 7. 3. Traversal dan for loopBanyak perhitungan melibatkan pemrosesan string satu karakter pada satu waktu. Seringkali mereka mulai dari awal, memilih setiap karakter secara bergiliran, melakukan sesuatu, dan melanjutkan sampai akhir. Pola pemrosesan ini disebut traversal. Salah satu cara untuk menyandikan traversal adalah dengan pernyataan while . index = 0 while index < len(fruit): letter = fruit[index] print letter index += 1_ Perulangan ini melintasi string dan menampilkan setiap huruf pada baris dengan sendirinya. Kondisi perulangannya adalah indeks < len(buah) , jadi saat < . Karakter terakhir yang diakses adalah karakter dengan indeks index is equal to the length of the string, the condition is false, and the body of the loop is not executed. The last character accessed is the one with the index len(fruit)-1 , yang merupakan karakter terakhir dalam string. Menggunakan indeks untuk melintasi serangkaian nilai sangat umum sehingga Python menyediakan sintaks alternatif yang lebih sederhana — loop for . for char in fruit: print char Setiap kali melalui perulangan, karakter berikutnya dalam string ditugaskan ke variabel char . Pengulangan berlanjut hingga tidak ada karakter yang tersisa. Contoh berikut menunjukkan cara menggunakan rangkaian dan perulangan for untuk menghasilkan deret abecedarian. Abecedarian mengacu pada rangkaian atau daftar di mana elemen muncul dalam urutan abjad. Misalnya, dalam buku Robert McCloskey, Make Way for Ducklings, nama bebek-bebek itu adalah Jack, Kack, Lack, Mack, Nack, Ouack, Pack, dan Quack. Loop ini mengeluarkan nama-nama ini secara berurutan. prefixes = "JKLMNOPQ" suffix = "ack" for letter in prefixes: print letter + suffix_ Keluaran dari program ini adalah Jack Kack Lack Mack Nack Oack Pack Qack_ Tentu saja, itu kurang tepat karena Ouack dan Quack salah eja. Anda akan memperbaikinya sebagai latihan di bawah ini 7. 4. Irisan taliSubstring dari sebuah string disebut slice. Memilih potongan mirip dengan memilih karakter a
_0Operator [n. m] mengembalikan bagian string dari karakter ke-n ke karakter ke-m, termasuk yang pertama tetapi tidak termasuk yang terakhir. Perilaku ini berlawanan dengan intuisi; . Jika Anda menghilangkan indeks pertama (sebelum tanda titik dua), irisan akan dimulai di awal string. Jika Anda menghilangkan indeks kedua, potongan akan menuju ke ujung string. Jadi a
_1Bagaimana menurut Anda s[. ] artinya? 7. 5. Perbandingan stringOperator perbandingan bekerja pada string. Untuk melihat apakah dua string sama a
_2Operator pembanding lainnya berguna untuk menyusun kata-kata dalam urutan leksikografis a
_3Ini mirip dengan urutan abjad yang akan Anda gunakan dengan kamus, kecuali bahwa semua huruf besar datang sebelum semua huruf kecil. Sebagai hasilnya a
_4Cara umum untuk mengatasi masalah ini adalah mengonversi string ke format standar, seperti semua huruf kecil, sebelum melakukan perbandingan. Masalah yang lebih sulit adalah membuat program menyadari bahwa zebra bukanlah buah 7. 6. String tidak dapat diubahSangat menggoda untuk menggunakan [] operator di sisi kiri tugas, dengan tujuan mengubah karakter dalam string. Sebagai contoh. a
_5Alih-alih menghasilkan output Jello, world. , kode ini menghasilkan kesalahan runtime TypeError. 'str' objek tidak mendukung item assignment. String tidak dapat diubah, artinya Anda tidak dapat mengubah string yang sudah ada. Hal terbaik yang dapat Anda lakukan adalah membuat string baru yang merupakan variasi dari aslinya a
_6Solusinya di sini adalah menggabungkan huruf pertama yang baru ke dalam potongan sapaan . Operasi ini tidak berpengaruh pada string asli. 7. 7. Operator in operatorOperator in menguji apakah satu string adalah substring dari yang lain. a
_7Perhatikan bahwa string adalah substring dari dirinya sendiri a
_8Menggabungkan operator in dengan penggabungan string menggunakan + . a
_9Uji fungsi ini untuk mengonfirmasi bahwa ia melakukan apa yang kita inginkan 7. 8. Fungsi temukan functionApa yang dilakukan fungsi berikut? >>> letter = fruit[0] >>> print letter b0 Dalam arti tertentu, find adalah kebalikan dari [] operator. Instead of taking an index and extracting the corresponding character, it takes a character and finds the index where that character appears. If the character is not found, the function returns -1 . Ini adalah contoh pertama yang kami lihat tentang pernyataan return di dalam sebuah loop. Jika strng[index] == ch , fungsi segera kembali, . Jika karakter tidak muncul dalam string, maka program akan keluar dari loop secara normal dan mengembalikan -1 . Pola perhitungan ini terkadang disebut eureka traversal karena begitu kita menemukan apa yang kita cari, kita bisa berteriak Eureka. dan berhenti mencari 7. 9. Mengulangi dan menghitungProgram berikut menghitung berapa kali huruf a muncul dalam sebuah string, dan merupakan contoh lain dari pola penghitung yang diperkenalkan di. >>> letter = fruit[0] >>> print letter b1 7. 10. Parameter opsionalUntuk menemukan lokasi munculnya karakter kedua atau ketiga dalam sebuah string, kita dapat memodifikasi fungsi find , menambahkan fungsi ketiga . >>> letter = fruit[0] >>> print letter b2 Panggilan find2('banana', 'a', 2) now returns 3, the index of the first occurance of ‘a’ in ‘banana’ after index 2. What does find2('banana', 'n', 3) . find2 works. Lebih baik lagi, kita dapat menggabungkan find dan find2 . >>> letter = fruit[0] >>> print letter b_3 Panggilan find('banana', 'a', 2) to this version of find behaves just like find2, while in the call find('banana', 'a'), start will be set to the default value of 0. Menambahkan parameter opsional lain ke find membuatnya mencari maju dan mundur. >>> letter = fruit[0] >>> print letter b_4 Meneruskan nilai len(strng)-1 untuk awal dan -1 for step will make it search toward the beginning of the string instead of the end. Note that we needed to check for a lower bound for indeks di while loop serta batas atas untuk mengakomodasi perubahan ini. 7. 11. Modul string moduleModul string berisi fungsi berguna yang memanipulasi string. Seperti biasa, kita harus mengimpor modul sebelum kita dapat menggunakannya. >>> letter = fruit[0] >>> print letter b5 Untuk melihat apa yang ada di dalamnya, gunakan fungsi dir dengan nama modul sebagai argumen. >>> letter = fruit[0] >>> print letter b6 yang akan mengembalikan daftar item di dalam modul string ['Template', '_TemplateMetaclass', '__builtins__', '__doc__',< '__file__', '__name__', '_float', '_idmap', '_idmapL', '_int', '_long', '_multimap', '_re', 'ascii_letters', 'ascii_lowercase', 'ascii_uppercase', 'atof', 'atof_error', 'atoi', 'atoi_error', 'atol', 'atol_error', 'capitalize', 'capwords', 'center', 'count', 'digits', 'expandtabs', 'find', 'hexdigits', 'index', 'index_error', 'join', 'joinfields', 'letters', 'ljust', 'lower', 'lowercase', 'lstrip', 'maketrans', 'octdigits', 'printable', 'punctuation', 'replace', 'rfind', 'rindex', 'rjust', 'rsplit', 'rstrip', 'split', 'splitfields', 'strip', 'swapcase', 'translate', 'upper', 'uppercase', 'whitespace', 'zfill'] Untuk mengetahui lebih lanjut tentang item dalam daftar ini, kita dapat menggunakan perintah ketik . Kita perlu menentukan nama modul diikuti dengan item menggunakan notasi titik. >>> letter = fruit[0] >>> print letter b7 Sejak string. digit adalah sebuah string, kita dapat mencetaknya untuk melihat isinya. >>> letter = fruit[0] >>> print letter b_8 Tidak mengherankan, itu berisi masing-masing angka desimal string. find adalah fungsi yang melakukan banyak hal yang sama seperti fungsi yang kita tulis. Untuk mengetahui lebih lanjut, kita dapat mencetak docstringnya, __doc__ , yang berisi dokumentasi tentang fungsi tersebut. >>> letter = fruit[0] >>> print letter b_9 Parameter dalam tanda kurung siku adalah parameter opsional. Kita bisa menggunakan string. temukan sebanyak yang kita lakukan sendiri temukan . >>> fruit = "banana" >>> len(fruit) 60 Contoh ini mendemonstrasikan salah satu manfaat modul — modul membantu menghindari benturan antara nama fungsi bawaan dan fungsi yang ditentukan pengguna. Dengan menggunakan notasi titik kita dapat menentukan versi find yang kita inginkan. Sebenarnya, string. find lebih umum daripada versi kami. itu dapat menemukan substring, bukan hanya karakter. >>> fruit = "banana" >>> len(fruit) 61 Seperti kami, dibutuhkan argumen tambahan yang menentukan indeks di mana ia harus dimulai >>> fruit = "banana" >>> len(fruit) 62 Tidak seperti milik kami, parameter opsional keduanya menentukan indeks tempat pencarian harus diakhiri >>> fruit = "banana" >>> len(fruit) 6_3 Dalam contoh ini, pencarian gagal karena huruf b tidak muncul dalam rentang indeks dari 1 hingga 2 (not including 2). 7. 12. Klasifikasi karakterSering membantu untuk memeriksa karakter dan menguji apakah itu huruf besar atau kecil, atau apakah itu karakter atau angka. Modul string menyediakan beberapa konstanta yang berguna untuk tujuan ini. Salah satunya, string. digit , kita telah melihat. String string. huruf kecil berisi semua huruf yang dianggap sistem sebagai huruf kecil. Demikian pula, string. huruf besar berisi semua huruf besar. Coba yang berikut ini dan lihat apa yang Anda dapatkan. >>> fruit = "banana" >>> len(fruit) 6_4 Kita dapat menggunakan konstanta ini dan temukan untuk mengklasifikasikan karakter. Misalnya, jika find(lowercase, ch) mengembalikan nilai selain -1, then ch must be lowercase: >>> fruit = "banana" >>> len(fruit) 65 Atau, kita dapat memanfaatkan operator in . >>> fruit = "banana" >>> len(fruit) 66 Sebagai alternatif lain, kita bisa menggunakan operator pembanding >>> fruit = "banana" >>> len(fruit) 6_7 Jika ch antara a dan z, harus berupa huruf kecil. Konstanta lain yang ditentukan dalam modul string mungkin mengejutkan Anda saat Anda mencetaknya. >>> fruit = "banana" >>> len(fruit) 68 Karakter spasi putih menggerakkan kursor tanpa mencetak apa pun. Mereka menciptakan ruang putih di antara karakter yang terlihat (setidaknya di atas kertas putih). Konstanta string. whitespace berisi semua karakter spasi, termasuk spasi, tab ( \t ), dan baris baru ( \n). Ada fungsi berguna lainnya dalam modul string , tetapi buku ini tidak dimaksudkan sebagai panduan referensi. Di sisi lain, Referensi Perpustakaan Python adalah. Bersama dengan banyak dokumentasi lainnya, ini tersedia dari situs web Python, http. // www. python. org. 7. 13. Pemformatan stringCara paling ringkas dan ampuh untuk memformat string dengan Python adalah dengan menggunakan operator pemformatan string, % , bersama dengan pemformatan string Python . Untuk melihat cara kerjanya, mari kita mulai dengan beberapa contoh. >>> fruit = "banana" >>> len(fruit) 6_9 Sintaks untuk operasi pemformatan string terlihat seperti ini length = len(fruit) last = fruit[length] # ERROR!_0 Ini dimulai dengan format yang berisi urutan karakter dan spesifikasi konversi. Spesifikasi konversi dimulai dengan operator % . Mengikuti string format adalah % tunggal dan kemudian urutan nilai, satu per spesifikasi konversi, dipisahkan dengan koma dan dilampirkan dalam tanda kurung. Tanda kurung bersifat opsional jika hanya ada satu nilai. Dalam contoh pertama di atas, ada satu spesifikasi konversi, %s , yang mengindikasikan sebuah string. Nilai tunggal, "Arthur" , memetakannya, dan tidak diapit tanda kurung. Dalam contoh kedua, nama memiliki nilai string, "Alice", and age has integer value, 10. These map to the two converstion specifications, %s dan %d . d dalam spesifikasi konversi kedua menunjukkan bahwa nilainya adalah bilangan bulat desimal. Dalam contoh ketiga variabel n1 dan n2 memiliki . Ada empat spesifikasi konversi dalam format string. tiga 4 and 5 respectively. There are four converstion specifications in the format string: three %d dan %f . f menunjukkan bahwa nilai harus direpresentasikan sebagai angka floating point. Empat nilai yang dipetakan ke empat spesifikasi konversi adalah. 2**10 , n1 , , . , . , . , . , . , . , . , . , . , . , . , . , . , . , . , . , . , . , . , . , . , . , . , . n2, and n1 * n2. s , d , dan f are all the conversion types we will need for this book. To see a complete list, see the String Formatting Operations section of the Python Library Reference. Contoh berikut mengilustrasikan utilitas sebenarnya dari pemformatan string length = len(fruit) last = fruit[length] # ERROR!_1 Program ini mencetak tabel berbagai pangkat angka dari 1 sampai 10. Dalam bentuknya saat ini, ini bergantung pada karakter tab ( \t ) untuk menyelaraskan kolom nilai, tetapi ini akan rusak saat nilai dalam tabel mendapatkan . length = len(fruit) last = fruit[length] # ERROR!_2 Salah satu solusi yang mungkin adalah mengubah lebar tab, tetapi kolom pertama sudah memiliki lebih banyak ruang daripada yang dibutuhkan. Solusi terbaik adalah mengatur lebar setiap kolom secara mandiri. Seperti yang mungkin sudah Anda duga sekarang, pemformatan string memberikan solusinya length = len(fruit) last = fruit[length] # ERROR!_3 Menjalankan versi ini menghasilkan keluaran berikut length = len(fruit) last = fruit[length] # ERROR!_4 - setelah setiap % dalam spesifikasi konversi . Nilai numerik menentukan panjang minimum, jadi %-13d adalah angka rata kiri dengan lebar minimal 13 karakter. 7. 14. Rangkuman dan Latihan PertamaBab ini memperkenalkan banyak ide baru. Rangkuman dan rangkaian latihan berikut mungkin terbukti membantu dalam mengingat apa yang telah Anda pelajari pengindeksan ( [] )Mengakses satu karakter dalam string menggunakan posisinya (mulai dari 0). Contoh. 'Ini'[2] dievaluasi menjadi 'i' . panjang fungsi ( len )Mengembalikan jumlah karakter dalam string. Contoh. len('happy') dievaluasi menjadi 5 . untuk penjelajahan loop ( untuk )Melintasi string berarti mengakses setiap karakter dalam string, satu per satu. Misalnya, untuk loop berikut Bagaimana Anda mengubah huruf pertama menjadi huruf terakhir dengan Python?Visualisasikan eksekusi kode Python. . Gunakan daftar mengiris dan str. upper() untuk mengkapitalisasi huruf pertama dari string Gunakan str. join() untuk menggabungkan huruf pertama yang dikapitalisasi dengan karakter lainnya Abaikan parameter lower_rest untuk mempertahankan sisa string tetap utuh, atau setel ke True untuk mengonversi menjadi huruf kecil Bagaimana Anda memindahkan karakter pertama ke akhir dengan Python?Untuk memindahkan karakter pertama ke akhir string. . Gunakan pemotongan string untuk mendapatkan karakter setelah yang pertama Akses string pada indeks 0 untuk mendapatkan karakter pertama Gunakan operator tambahan (+) untuk menggabungkan dua string Bagaimana Anda memotong huruf pertama dari sebuah string dengan Python?Menghapus Karakter Pertama
. ] notasi digunakan untuk menghilangkan karakter pertama dari string The str[1:] notation is used to remove the first character from the string karena karakter pertama berada di indeks 0, jadi kita bisa memotongnya dengan memulai dari indeks 1.
Bagaimana Anda memangkas karakter pertama dan terakhir dengan Python?Gunakan pemotongan string untuk menghapus karakter pertama dan terakhir dari sebuah string, mis. g. hasil = my_str[1. -1]. String baru akan berisi potongan string asli tanpa karakter pertama dan terakhir |