Tutorial Python untuk bukan pengatur cara/Membuat keputusan

Daripada Wikibooks.

Lompat ke: pandu arah, gelintar

Seterusnya, membuat keputusan.

[sunting] Penyataan "if"

Seperti biasa, saya mulakan dengan satu atur cara:

n = input("Number? ")
if n < 0:
      print "The absolute value of",n,"is",-n
else:
      print "The absolute value of",n,"is",n

Ini adalah apa yang dihasilkan apabila saya menjalankan program ini dua kali:-

Number? -34
The absolute value of -34 is 34
Number? 1
The absolute value of 1 is 1

Jadi, apa yang komputer lakukan apabila ia melihat kod ini? Pertama sekali, ia meminta pengguna untuk memasukkan nombor pada penyataan n = input("Number? "). Kemudian ia membaca baris if n < 0:. Jika nilai n kurang daripada kosong maka Python akan menjalankan baris print "The absolute value of", n, "is", -n. Jika sebaliknya pula maka sudah tentulah Python akan menjalankan baris print "The absolute value of", n, "is", n.

Lebih secara rasmi, 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, selepas penyataan if penyataan else boleh diletakkan. Penyataan else akan dijalankan apabila ungkapan adalah salah.

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 salah dan penyataan selepas itu (bahagian elif) betul, 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 "Neither test was true"

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 tidak benar. Beberapa elif boleh digunakan, membenarkan ujian atau cubaan berganda untuk dibuat dalam satu penyataan if.

[sunting] Contoh

High_low.py

#Plays the guessing game higher or lower 
# (originally written by Josh Cogliati, improved by Quique)
 
#This should actually be something that is semi random like the
# last digits of the time or something else, but that will have to
# wait till a later chapter.  (Extra Credit, modify it to be random
# after the Modules chapter)
number = 78
guess = 0
 
while guess != number : 
    guess = input ("Guess a number: ")
 
    if guess > number :
        print "Too high"
 
    elif guess < number :
            print "Too low"
 
print "Just right"

Contoh jalanan:

Guess a number: 100
Too high
Guess a number: 50
Too low
Guess a number: 75
Too low
Guess a number: 87
Too high
Guess a number: 81
Too high
Guess a number: 78
Just right

even.py

#Asks for a number.
#Prints if it is even or odd
 
number = input("Tell me a number: ")
if number % 2 == 0:
    print number,"is even."
elif number % 2 == 1:
    print number,"is odd."
else:
    print number,"is very strange."

Contoh jalanan:

Tell me a number: 3
3 is odd.
Tell me a number: 2
2 is even.
Tell me a number: 3.14159
3.14159 is very strange.

average1.py

#keeps asking for numbers until 0 is entered.
#Prints the average value.
 
count = 0
sum = 0.0
number = 1 # set to something that will not exit the while loop immediately.
 
print "Enter 0 to exit the loop"
 
while number != 0:
    number = input("Enter a number:")
    count = count + 1
    sum = sum + number
 
count = count - 1 #take off one for the last number
print "The average was:",sum/count

Contoh jalanan:

Enter 0 to exit the loop
Enter a number: 3
Enter a number: 5
Enter a number: 0
The average was: 4.0
Enter 0 to exit the loop
Enter a number: 1
Enter a number: 4
Enter a number: 3
Enter a number: 0
The average was: 2.66666666667

average2.py

#keeps asking for numbers until count have been entered.
#Prints the average value.
 
sum = 0.0
 
print "This program will take several numbers then average them"
count = input("How many numbers would you like to sum:")
current_count = 0
 
while current_count < count:
    current_count = current_count + 1
    print "Number ",current_count
    number = input("Enter a number:")
    sum = sum + number
 
print "The average was:",sum/count

Contoh jalanan:

This program will take several numbers then average them
How many numbers would you like to sum: 2
Number 1
Enter a number: 3
Number 2
Enter a number: 5
The average was: 4.0
This program will take several numbers then average them
How many numbers would you like to sum: 3
Number 1
Enter a number: 1
Number 2
Enter a number: 4
Number 3
Enter a number: 3
The average was: 2.66666666667

[sunting] Latihan

Ubahsuai atur cara "High_low.py" untuk mengesan berapa kali pengguna memasukkan nombor yang salah. Jika lebih dari tiga kali, paparkan "That must have been complicated."

Tulis sebuah atur cara yang akan meminta dua nombor. Jika jumlah kedua-dua nombor itu lebih daripada 100, maka tulis "That is big number."

Tulis sebuah atur cara yang akan meminta pengguna nama mereka, jika mereka memasukkan nama anda paparkan "That is a nice name", jika mereka memasukkan nama "John Cleese" atau "Michael Palin", beritahu mereka apa perasaan anda terhadap mereka. Lain-lain nama beritahu mereka "You have a nice name".