簡單的學習了變量的使用以及輸入輸出,現在就可以學習if…else、while、for了。
在python中,你將看不見大括號,取而代之的是縮進,縮進的嚴格要求使得python代碼顯得十分精簡和富有層次,但是必須要特別小心的處理縮進,否則出現的結果就會和期望相差甚遠。今天學習中的條件判斷語句和循環語句將會體會到縮進是如何代替其他語言中的大括號。
條件語句
條件語句的使用結構如下:
if xxx:
語句
elif xxx:
語句
else:
語句
python中,語句後面是不帶分號的,條件判斷結束後需要添加冒號作爲結束,執行語句要基於前面的判斷語句進行縮進,在實際代碼編寫中可以發現,當在合適的位置添加冒號時按下回車會自動進行縮進。我們藉助一個猜年齡的遊戲試驗一下條件判斷的語法:
age = 50
guess_age = int(input("guess age:"))
if age == guess_age:
print("you got it.")
elif age > guess_age:
print("guess smaller")
else:
print("guess bigger")
代碼很簡單,需要提一下的是,python中的與或非分別爲and、or、not,可以使用括號進行復雜的邏輯判斷;真和假分別用True和False表示。
while循環
語法結構:
while 條件爲真:
循環體
對於剛纔的遊戲有個缺陷,就是每猜一次就會結束,顯示這樣並不愉快,我們希望可以猜錯了繼續猜,並且猜錯一定次數後就會退出,那麼就可以使用while循環實現:
age = 50
count = 0
while count < 3: # while True while False 和C比較學習
guess_age = int(input("guess age:"))
if age == guess_age:
print("you got it.")
break
elif age > guess_age:
print("guess smaller")
else:
print("guess bigger")
count += 1
if count == 3:
ask = input("do you want try again?")
if ask == 'y':
count = 0
else:
print("you have tried too many")
else:
print("game over")
同樣的,python中也是使用break退出當層循環,使用continue結束本次循環。
細心的我發現了個現象,while條件不成立時後面可以接else,這是在C/C++中不支持的。同樣也很簡單,有語言基礎的這些理解起來是不成問題的。
for循環
for循環的語法結構如下:
for 循環變量1, 循環變量2 in 可迭代對象:
循環體
可迭代對象指的是那些元素可以被單獨提取出來的對象,如字符串中的每個字符就屬於可迭代對象中取出來的對象。但是針對數字進行for循環時需要藉助一個BIF(Build In Functions)內置函數range(),它可以爲整數生成一個數字序列,它有三種用法:
range(stop)
range(start, stop)
range(start, stop, step)
無論使用哪一種,它的參數只能是整數。下面分別舉例:
- range(stop)
它將生成從0開始到stop-1的序列 - range(start, stop)
它將生成從start開始到stop-1的序列 - range(start, stop, step)
它將生成從start開始,stop-1結束,步長爲step的序列
因此,我們可以使用for循環來改寫猜年齡的遊戲,代碼如下:
age = 50
count = 0
for i in range(3):
guess_age = int(input("guess age:"))
if age == guess_age:
print("you got it.")
break
elif age > guess_age:
print("guess smaller")
else:
print("guess bigger")
else:
print("you have tried too many")
和while一樣,條件爲假的時候可以接else分支。
運行結果如下:
猜對了會提示相應信息。
猜錯達到三次就會進入for的else分支。
三目運算符
三目運算符的用法如下:
a = b if True == 條件1 else c
等價於
if True == 條件1:
a = b
else:
a = c
上述公式可以這樣理解:
1、a保存最終的結果
2、a的結果可以是b或者c
3、當條件1滿足時a的結果是b,否則就是c
舉例說明:
a, b, c = 1, 2, 3
print("a = {0}, b = {1}, c = {2}".format(a, b, c))
d = a if b > c else b # 等價於三目運算符
print("d = {0}".format(d))
結果輸出如下: