Exercise 30: Else 和 If

原文鏈接:http://learnpythonthehardway.org/book/ex30.html

       在上一節練習中,我們做了一些關於 if 語句的練習,然後讓你猜了它是什麼以及有什麼作用。在學習本節之前我會回答上一節研究訓練中的每一個問題。上一節的研究訓練你應該做了吧?

1、你認爲 if 對於它下一行的代碼做了什麼? If 語句爲代碼創建了一個所謂的“分支”,就跟 RPG 遊戲中的情節分支一樣。if 語句告訴你的腳本,“如果這個布爾表達式值爲真,那麼就繼續執行其下面的代碼,否則的話跳過執行。

2、爲什麼if下面的語句需要四個空格位置的縮進?一行以冒號結尾就是來告訴Python你要準備創建一個新的代碼”塊“,而縮進四個空格就是來告訴Python哪些代碼行是在這個塊中的。這就和這本書上半部分提到的當你創建一個函數時做的事情一樣。

3、如果不縮進會發生什麼?如果不縮進的話,你最有可能就是得到一個錯誤提示。Python 的規則裏,只要一行以“冒號(colon)” : 結尾,它接下來的內容就應該有縮進。

4、你能將Ex 27中的其它布爾表達式放到if語句中嗎?試一試。是的,你當然能,並且你想放多複雜的就放多複雜的,雖然放一些真的很複雜的東西一般來說不是一種不好的編程風格。

5、如何你改變 people ,cats ,dogs的初始化值會發生什麼事情?因爲你 比較的是數值的大小,如果你改變了這些值,某些位置的 if 語句會被演繹爲 True,而它下面的代碼區段將被運行。你可以試着修改這些數字,然後在頭腦裏假想一下那一段代碼會被運行。

      把你的回答和我的回答進行比較,確保你真的理解了代碼”塊“的概念。理解代碼塊對你在下一節練習中非常重要,在那裏所有if語句都需要用到它。

輸入下面這些代碼並運行它。

people = 30
cars = 40
buses = 15


if cars > people:
	print "We should take the cars."
elif cars < people:
	print "We should not take the cars."
else:
	print "We can't decide."

if buses > cars:
	print "That's too many buses."
elif buses < cars:
	print "Maybe we could take the buses."
else:
	print "We still can't decide."

if people > buses:
	print "Alright ,let's just take the buses."
else:
	print "Fine ,let's stay home then."

輸出結果如下:

c:\>python ex30.py
We should take the cars.
Maybe we could take the buses.
Alright ,let's just take the buses.

研究訓練:

1、試着猜測下 elif 和 else 有什麼作用。

2、改變 cars、people和buses的值,然後跟蹤每一個if語句看看將會打印什麼。

3、嘗試用一些更復雜的邏輯表達式,例如: cars > people and buses < cars。

4、對面上面的每一行代碼用英文描述它們都做了什麼。

學生遇見的常見問題:

如果有多個 elif 代碼塊也是True會發生什麼?
答:如果有多個模塊爲True的話,那麼Python啓動和運行頂部的第一個模塊代碼,所以它只會運行第一個爲True的代碼塊。

發佈了23 篇原創文章 · 獲贊 7 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章