Keputusan yang bentuknya seperti bahasa sehari-hari
if adalah alat pertama yang dipakai kebanyakan program. Dengan alat ini, kodemu bisa mengambil satu jalur saat sebuah kondisi benar dan jalur lain saat kondisinya salah. Python menuliskannya secara langsung:
Dua baris, satu keputusan. Baris if diakhiri titik dua. Baris yang diindentasi di bawahnya adalah badan dari if, yaitu kode yang berjalan kalau kondisinya benar. Kalau hour bernilai 15, badan itu dilewati sepenuhnya dan tidak ada yang dicetak.
Indentasi adalah strukturnya di sini. Python tahu baris mana yang termasuk dalam if dengan melihat spasi di awal baris. Konvensinya empat spasi per level; yang penting konsisten.
Menambahkan cabang else
Sering kali kamu ingin sesuatu terjadi apa pun hasilnya: yang ini saat kondisinya benar, yang itu kalau tidak. Caranya dengan else:
Baris else tidak punya kondisi: ia menangkap semua yang tidak ditangkap if.
Beberapa cabang dengan elif
Untuk lebih dari dua jalur, susun klausa elif ("else if") di antara if dan else:
Python memeriksa kondisinya dari atas ke bawah dan menjalankan blok untuk kondisi pertama yang benar. Sisanya dilewati. Urutan dari atas ke bawah ini penting: kalau kamu menaruh score >= 60 sebelum score >= 90, semua orang mendapat D, karena kondisi benar yang pertama yang menang.
Struktur rapi yang perlu kamu ingat: untuk input apa pun, kondisi-kondisinya sebaiknya tidak saling tumpang tindih, dan urutannya mencerminkan cara kamu memikirkan masalahnya secara alami. Taruh kasus yang paling spesifik di awal, yang paling umum di akhir.
Nilai truthy dalam kondisi
Ekspresi di dalam if tidak harus bernilai True atau False secara harfiah. Python menerima nilai apa pun dan menentukan truthiness-nya:
if items: dibaca sebagai "kalau list ini berisi sesuatu." Nilai falsy mencakup:
False0,0.0None- Container kosong:
"",[],{},set(),()
Semua yang lain bernilai truthy. Memakai truthiness membuat kode terbaca lebih alami, dengan satu catatan: kalau nol adalah nilai yang bermakna (penghitung yang memang sedang bernilai nol), bandingkan secara eksplisit dengan is not None atau != 0 agar tidak tertukar antara "kosong" dan "nol".
Menggabungkan kondisi
and, or, dan not memungkinkan kamu menyusun kondisi gabungan:
Perbandingan berantai lebih rapi daripada and yang eksplisit saat kedua batasnya berbagi nilai di tengah:
Itu sama dengan 18 <= age and age < 65, tapi terbaca seperti pertidaksamaan matematika.
Pernyataan if bersarang
Kamu bisa menaruh if di dalam if. Itu sah, dan kadang menjadi struktur yang paling jelas, tapi itu juga penyebab utama kode bersyarat jadi sulit diikuti. Kalau kamu sudah sampai tiga level ke dalam, pertimbangkan meratakannya dengan return lebih awal (begitu kamu menulis fungsi) atau dengan menggabungkan kondisi:
Keduanya bekerja. Pilih versi yang lebih mudah dibaca oleh pembaca yang belum pernah melihat kode ini.
Ekspresi ternary
Kalau kamu hanya ingin sebuah nilai menjadi salah satu dari dua hal tergantung pada kondisi, Python punya bentuk yang ringkas:
Baca dari kiri ke kanan: "warm kalau temp minimal 70, kalau tidak cool." Bentuk ini bagus untuk assignment singkat yang memilih satu dari dua nilai. Berhenti memakainya begitu cabangnya panjang atau berisi beberapa operasi; saat itu, blok if/else lengkap lebih enak dilihat.
if hanya menjadi ekspresi di satu tempat
Tidak seperti beberapa bahasa lain, pernyataan if di Python sendiri tidak menghasilkan nilai. Hanya bentuk ternary yang menghasilkan nilai. Kamu tidak bisa menulis x = if ...: seperti di Rust atau Kotlin. Kalau kamu ingin nilai bersyarat, pakai ternary; kalau kamu ingin perilaku bersyarat, pakai blok if lengkap.
Contoh kecil yang lengkap
Program singkat yang mengelompokkan suhu:
Perhatikan bahwa logikanya sebagian besar hanya menentukan isi advice. Sekilas saja kamu bisa melihat rentang suhu mana yang dipetakan ke pesan mana. Itulah bentuk yang ingin kamu capai saat menulis kondisi: setiap cabang kecil dan maksud keseluruhannya jelas.
Selanjutnya
Kondisi membuat kodemu bisa memilih jalur. Perulangan membuatnya bisa mengulang. Berikutnya: for loop, perulangan yang paling sering dipakai di Python dengan selisih jauh, dan pasangan alami bagi koleksi yang akan kamu temui beberapa halaman kemudian.
Pertanyaan yang sering diajukan
Bagaimana cara kerja pernyataan if di Python?
if condition: yang diikuti blok berindentasi menjalankan blok itu hanya saat kondisinya benar. Klausa elif (else if) yang opsional memungkinkan kamu mengecek kondisi tambahan, dan else yang opsional berjalan saat tidak ada kondisi lain yang cocok.
Apakah Python punya pernyataan switch?
Python 3.10 menambahkan match/case untuk structural pattern matching, yang mencakup sebagian besar kegunaan pernyataan switch dan lebih dari itu. Untuk percabangan sederhana, rangkaian if/elif masih umum dipakai dan sama sekali tidak masalah.
Apa itu if ternary di Python?
Ekspresi kondisional satu baris: result = a if condition else b. Dibaca dari kiri ke kanan: evaluasi a saat condition benar, kalau tidak evaluasi b. Praktis untuk assignment singkat yang memilih salah satu dari dua nilai; kurang enak dibaca kalau cabangnya panjang.