Tutorial Python untuk bukan pengatur cara/Membuat keputusan

Seterusnya, membuat keputusan.

Penyataan ifSunting

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.

ContohSunting

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

LatihanSunting

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".