第四節

答對了,還是答錯了?

我們剛編寫完的程式能夠測驗一個人的數學計算,但是假如測驗的答案還要人自己去 檢查,看起來會有點蠢,而這種無聊的事,最好是讓電腦來做。所以我們下面一步, 就要讓新的巨蟒程式,自動檢查你所輸入的答案,到底是答對了還是答錯了,而不只是 告訴你答案,讓你自己去檢查。

下面,我們要介紹一個非常重要的概念,它也是巨蟒程式中一個非常重要的指令。

if ...              (複習: if 的中文意思是 「假如」)

鍵入下面的程式,然後試著跑跑看。(某些指令前面有些空格,這些空格對巨蟒程式語言 來說是非常重要 [1] ,不可以省略。)

if 1 < 2:
    as顯印(‘有點錯誤!’)
else:
    as顯印(‘答對了,這是正確的!’)

                 (複習:else=其他的;否則)

現在再把程式中的 < 符號,換成另一個符號 > ,然後再跑一遍程式。你能猜得 出來結果是什麼嗎?

  • 假如你在學校還沒有學到: < 的意思是「小於」,而 > 的意思是「大於」。

挑戰

寫一個程式,這個程式會要求你輸入一個數字,然後根據你輸入數字是否大於 100, 來決定顯現兩種不同的訊息中的哪一種。

對於我們檢視數學計算的程式,則不是要檢查輸入的數字是否大於正確的答案,而是要 檢查輸入的答案是否等於正確的答案。

你也許會猜想應該是有如 ‘’if abc=def: ...’’ 這樣的指令,但程式語言中為了 避免誤會,都採用採用不同的符號來表示「是否等於」,巨蟒也不例外。

因為在程式語言中 = (等於)這個符號的意思是「某某東西的名字是」。在巨蟒程式語言 中,「是否等於」則用兩個等號 == 來表示。

  • 假如你想知道更多有關於 if 這個指令的細節及相關題目, 你可以閱讀 《補充教材-C》

挑戰

修改你剛寫完,可以比對你所輸入數字是否大於 100的程式,讓新的程式可以比對你輸入 的數字,是否等於100。

當你完成了上面的挑戰,再根據輸入的答案的正確與否,顯示不同的訊息,就不太難了。 試著修改你的程式,讓電腦比對正確的答案,再顯示 “正確!” 或 “錯誤!” (或者顯示 “Yes!” 或 “No!”)。也就是說,你的程式會自動產生兩個任意的數字, 然後提出這兩個數字相乘應該等於多少的問題,在你回答後會核對輸入的答案是否正確, 然後停止。

註腳

[1]

在指令開始前留空格的原因是 – 巨蟒利用這些空格來決定哪些指令是 屬於 if 的控制範圍內。假如你的程式是

if 1 > 1000:
    as顯印(‘哇!’)
as顯印(‘好棒!’)

那電腦就會顯示「好棒!」,因為「好棒!」這一行指令並不屬於if指令的一部分。 假如你將「好棒!」的那一行前面也加上和「哇!」前面相同的空格,則電腦就會將 「好棒!」當做是if的一部分,而不會將它顯示出來。

大部分的電腦語言並不在乎每行指令的前面有多少空格。這些語言則用不同的方法來 處理這個問題,例如在最後面加行end if的指令,用以標示if的範圍,或者要求在 if 控制範圍的前後加上括號,

不同標示範圍的方法中,巨蟒用空格標示的方法,在閱讀時最為容易。

重複再重複

你也許還記得第一章所學過的 for 指令。不過就算你不記得也沒關係,讓我們再複習 它的用法。鍵入並執行下列的程式:

for x in 1,2,3,4,5,6:
    as顯印("x 等於", x)
  • 提醒:在 for 迴路範圍內的 as顯印 ,它前面的「空格」不可以省略!

挑戰

修改上面這個 for 迴路的程式,讓這個程式會自動「跑」 3 次,而不是 5 次。

挑戰

假如你會寫這個程式,把前面寫過兩個數字相乘的程式,做類似的修改。也就是你的 程式重複提出問題,然後核對答案並顯示答案是否正確,總共10次。

假如你想了解更多有關如何返複做某些事情的巨蟒指令, 你可以閱讀 《補充教材-L》