Tutorial Python untuk bukan pengatur cara/Membuat keputusan
Seterusnya, membuat keputusan.
Penyataan if
[sunting]Seperti biasa, saya mulakan dengan satu atur cara:
n = input("Nombor? ")
if n < 0:
print "Nilai mutlak", n,"ialah",-n
else:
print "Nilai mutlak", n,"ialah",n
Ini adalah apa yang dihasilkan apabila saya menjalankan program ini dua kali:
Nombor? -34 Nilai mutlak -34 ialah 34
Nombor? 1 Nilai mutlak 1 ialah 1
Jadi, apa yang komputer lakukan apabila ia melihat kod ini? Pertama sekali, ia meminta pengguna untuk memasukkan nombor pada penyataan n = input("Nombor? ")
.
Kemudian ia membaca baris if n < 0:
. Jika nilai n
kurang daripada sifar maka Python akan menjalankan baris print "Nilai mutlak", n, "ialah", -n
. Jika sebaliknya pula maka sudah tentulah Python akan menjalankan baris print "Nilai mutlak", n, "ialah", n
.
Lebih formal, Python akan melihat sama ada ungkapan n < 0
adalah betul atau salah. Penyataan if
ini diikuti oleh blok kenyataan yang akan dijalankan apabila ungkapan adalah benar. Secara pilihan, penyataan else
boleh diletakkan selepas penyataan if
. Penyataan else
akan dijalankan apabila ungkapan adalah palsu.
Di sini ada beberapa ujian lain yang boleh dimiliki ungkapan:-
Operator | Fungsi |
---|---|
< | kurang daripada |
<= | kurang daripada atau sama dengan |
> | lebih daripada |
>= | lebih daripada atau sama dengan |
== | bersamaan |
!= | tidak sama |
<> | cara lain untuk katakan tidak sama |
Ciri lain bagi penyataan if
ialah penyataan elif
. Ia merujuk kepada penyataan else if yang bermaksud sekiranya penyataan awal itu palsu dan penyataan selepas itu (bahagian elif
) benar, maka jalankan bahagian tersebut. Ini contohnya:-
a = 0
while a < 10:
a = a + 1
if a > 5:
print a," > ",5
elif a <= 7:
print a," <= ",7
else:
print "Tiada ujian benar"
Dan ini hasilnya:-
1 <= 7 2 <= 7 3 <= 7 4 <= 7 5 <= 7 6 > 5 7 > 5 8 > 5 9 > 5 10 > 5
Peringatan: elif a <= 7
hanya dicuba apabila penyataan if
palsu tidak benar. Beberapa elif
boleh digunakan, membenarkan ujian atau cubaan berganda untuk dibuat dalam satu penyataan if
.
Contoh
[sunting]Tinggi_rendah.py
#Permainan yang mengagak sama ada lebih tinggi atau lebih rendah
# (asalnya ditulis Cogliati, diperbiaki by Quique)
#Ini sebenarnya patut seakan-akan "semi random",
# misalnya seperti angak-angka terakhir masa ataupun benda lain,
# yang harus ditangguhkan untuk bab terkemudian. (Kredit tambahan, ubah suaikannya supaya ia "random"
# selepas bab Modul)
nombor = 78
teka = 0
while teka != nombor :
teka = input ("Teka sebuah nombor: ")
if teka > nombor :
print "Terlalu tinggi"
elif teka < nombor :
print "Terlalu rendah"
print "Ngam-ngam"
Contoh pelaksanaan:
Teka sebuah nombor: 100 Terlalu tinggi Teka sebuah nombor: 50 Terlalu rendah Teka sebuah nombor: 75 Terlalu rendah Teka sebuah nombor: 87 Terlalu tinggi Teka sebuah nombor: 81 Terlalu tinggi Teka sebuah nombor: 78 Ngam-ngam
genap.py
#Meminta nombor.
#Mencetak sekiranya genap atau ganjil
nombor = input("Beri saya nombor: ")
if nombor % 2 == 0:
print nombor,"genap."
elif nombor % 2 == 1:
print nombor,"ganjil."
else:
print nombor,"amat aneh."
Contoh pelaksanaan:
Beri saya nombor: 3 3 ganjil.
Beri saya nombor: 2 2 genap.
Beri saya nombor: 3.14159 3.14159 amat aneh.
purata1.py
#meminta nombor sehingga angka 0 dimasukkan.
#Cetak nilai purata.
kiraan = 0
jumlah = 0.0
nombor = 1 # tetapkan pada sesuatu agar tidak keluar daripada gelung "while" dengan serta-merta.
print "Masukkan 0 untuk keluar daripada gelung"
while nombor != 0:
nombor = input("Masukkan nombor:")
kiraan = kiraan + 1
jumlah = jumlah + nombor
kiraan = kiraan - 1 #buang satu bagi nombor terakhir
print "Nilai purata ialah:",jumlah/kiraan
Contoh pelaksanaan:
Masukkan 0 untuk keluar daripada gelung Masukkan nombor: 3 Masukkan nombor: 5 Masukkan nombor: 0 Nilai purata ialah: 4.0
Masukkan 0 untuk keluar daripada gelung Masukkan nombor: 1 Masukkan nombor: 4 Masukkan nombor: 3 Masukkan nombor: 0 Nilai purata ialah: 2.66666666667
purata2.py
#meminta nombor sehingga kiraan dimasukkan.
#Cetak nilai purata.
jumlah = 0.0
print "Program ini akan mengambil beberapa nombor dan kemudian memberi purata"
kiraan = input("Berapa nombor yang ingin anda jumlahkan:")
kiraan_semasa = 0
while kiraan_semasa < kiraan:
kiraan_semasa = kiraan_semasa + 1
print "Nombor ",kiraan_semasa
nombor = input("Masukkan nombor:")
jumlah = jumlah + nombor
print "Nilai purata ialah:",jumlah/kiraan
Contoh pelaksanaan:
Program ini akan mengambil beberapa nombor dan kemudian memberi purata Berapa nombor yang ingin anda jumlahkan: 2 Nombor 1 Masukkan nombor: 3 Nombor 2 Masukkan nombor:: 5 Nilai purata ialah: 4.0
Program ini akan mengambil beberapa nombor dan kemudian memberi purata Berapa nombor yang ingin anda jumlahkan: 3 Nombor 1 Masukkan nombor: 1 Nombor 2 Masukkan nombor: 4 Nombor 3 Masukkan nombor: 3 Nilai purata ialah: 2.66666666667
Latihan
[sunting]Ubahsuai atur cara "Tinggi_rendah.py" untuk mengesan berapa kali pengguna memasukkan nombor yang salah. Jika lebih daripada tiga kali, paparkan "Phew!, itu amat rumit."
Tulis sebuah atur cara yang meminta dua nombor. Jika jumlah kedua-dua nombor itu lebih daripada 100, maka tulis "Wow, itu sebuah nombor besar."
Tulis sebuah atur cara yang meminta pengguna memasukkan nama mereka; jika mereka memasukkan nama anda paparkan "Hmm, itu nama yang sedap", jika mereka memasukkan nama "John Cleese" atau "Michael Palin", beritahu mereka apa perasaan anda terhadap mereka. Untuk nama-nama lain, beritahu mereka "Anda mempunyai nama yang bagus".