Pergi ke kandungan

Tutorial Python untuk bukan pengatur cara/Mengira sehingga 10

Daripada Wikibuku

Seterusnya, mengira sehingga 10.

Gelung while

[sunting]

Mempersembahkan struktur kawalan pertama kita. Biasanya, komputer akan bermula dengan baris pertama dan kemudian melihat baris seterusnya mengikut urutan. Struktur kawalan mengubah urutan kenyataan dilaksanakan atau menentukan hanya kenyataan tertentu yang dijalankan. Di sini terdapat satu kod sumber yang menunjukkan struktur kawalan while (harfiah, sementara atau selagi):

a = 0
while a < 10:
        a = a + 1
        print a

Templat:Nota Penterjemah

dan ini outputnya yang amat menguja:

1
2
3
4
5
6
7
8
9
10

(Dan anda sangka ia tidak akan jadi lebih teruk selepas menukarkan komputer anda menjadi kalkulator yang bernilai RM15?) Jadi apa yang program ini lakukan? Mula-mula, komputer melihat baris a = 0 dan menjadikan a sebagai 0. Seterusnya, komputer melihat while a < 10:, jadi komputer akan memeriksa jika a < 10. Kali pertama komputer melihat kenyataan ini, a adalah sifar, iaitu kurang daripada 10. Dengan kata lain sementara/selagi nilai a kurang dari 10, komputer akan menjalankan kenyataan yang ditabkan. Apabila nilai a mencapai 10, barulah komputer akan pergi ke baris seterusnya dalam atur cara itu.

Jangan lupa meletakkan tanda titik bertindih " : " selepas kenyataan while!

Ini adalah contoh lain yang menggunakan while:

a = 1
s = 0
print 'Masukkan Nombor bagi mendapatkan jumlah.'
print 'Masukkan 0 untuk berhenti.'
while a != 0:
    print 'Jumlah Semasa:', s
    a = input('Nombor? ')
    s = s + a
print 'Jumlah Tuntas =', s
Masukkan Nombor bagi mendapatkan jumlah.
Masukkan 0 untuk berhenti.
Jumlah Semasa: 0
Nombor? 200
Jumlah Semasa: 200
Nombor? -15.25
Jumlah Semasa: 184.75
Nombor? -151.85
Jumlah Semasa: 32.9
Nombor? 10.00
Jumlah Semasa: 42.9
Nombor? 0
Jumlah Tuntas = 42.9

Perhatikan bagaimana print 'Jumlah Tuntas =', s hanya dijalankan akhir sekali. Kenyataan while hanya mempengaruhi baris yang diinden dengan ruang putih. != bermaksud tidak sama jadi while a != 0 : bermaksud sehingga nilai a menjadi 0 maka jalankan kenyataan yang diinden dengan ruang putih yang menyusul.

Gelung tak terhingga

[sunting]

Sekarang kita ada gelung while, ia mungkin untuk membuat atur cara yang berjalan selama-lamanya atau tanpa henti. Cara mudah untuk melakukan ini ialah dengan menulis sebuah program seperti ini:

 while 1 == 1:
      print "Tolong, saya terperangkap dalam gelung!."

Program ini akan memaparkan Tolong, saya terperangkap dalam gelung!. selama-lamanya ataupun sehingga anda sendiri yang memberhentikannya. Ini kerana 1 sentiasa sama dengan 1. Cara untuk memberhentikannya ialah dengan menekan kekunci Ctrl dan C papan kekunci secara serentak. Ini akan mematikan atur cara itu. (Nota: kadang kala anda perlu menekan Enter selepas Control-C.)

Contoh

[sunting]

Fibonacci.py

# Program ini mengira rentetan Fibonacci
a = 0
b = 1
kiraan = 0
kiraan_maksimum = 20
while kiraan < kiraan_maksimum:
    kiraan = kiraan + 1
    # kita perlu menjejak "a" kerana kita mengubahnya
    a_lama = a
    b_lama = b
    a = b_lama
    b = a_lama + b_lama
    # Lihat bahawa "," dipeghujung kenyataan print menghalangnya
    # daripada bertukar ke baris baharu
    print a_lama,

Output:

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181

Kata_laluan.py

# Tunggu sehingga kata laluan dimasukkan. Guna Control-C untuk keluar tanpa 
# mengguna kata laluan
# Perhatikan bahawa ini seharusnya bukan kata laluan agar 
# gelung while terlaksana sekurang-kurangnya sekali.
kata_laluan = "foobar"
# perhatikan bahawa != bermaksud tidak sama
while kata_laluan != "unicorn":
    kata_laluan = raw_input("Kata laluan: ")
print "Selamat datang"

Cubaan menjalankan:

Kata laluan: auo
Kata laluan: y22
Kata laluan: kata laluan
Kata laluan: aci buka pintu
Kata laluan: unicorn
Welcome in

Latihan

[sunting]

Tulis satu program yang meminta nama log masuk dan kata laluan daripada pengguna. Kemudian apabila mereka menaip "kunci", mereka perlu menaip nama dan kata laluan untuk membuka kunci atur cara itu.