刻意練習Python基礎 ——day 02:條件與循環

17天 —— Python基礎刻意練習

Day 01——Task01:變量、運算符與數據類型
Day 02——Task02:條件與循環
Day 03——Task03:列表與元組(上)
Day 04——Task03:列表與元組(下)
Day 05——Task04:字符串與序列
Day 06——Task05:函數與Lambda表達式(上)
Day 07——Task05:函數與Lambda表達式(下)
Day 08——Task06:字典與集合
Day 09——Task07:文件與文件系統(上)
Day 10——Task07:文件與文件系統(下)
Day 11——Task08:異常處理
Day 12——Task09:else 與 with 語句
Day 13——Task10:類與對象(上)
Day 14——Task10:類與對象(下)
Day 15——Task11:魔法方法(上)
Day 16——Task11:魔法方法(下)
Day 17——Task12:模塊
    



條件與循環
@[toc]





1.條件語句

在這裏插入圖片描述
  在Python中,條件語句(也稱爲條件分支語句)與類C語言中的條件語句使用方法大相徑庭,區別在於將大括號包含分支部分改爲縮進分支部分



 1.1.if語句

if 判斷語句1:
    執行語句1
elif 判斷語句2:
    執行語句2
else:
    執行語句3
  1. 如果 bool(判斷語句1)True 將執行 “執行語句1” 塊語句
  2. 如果 bool(判斷語句1)False,將判斷 “判斷語句2”
  3. 如果 bool(判斷語句2)True 將執行 “執行語句2” 塊語句
  4. 如果 bool(判斷語句2)False,將執行"執行語句3"塊語句

注意:

  1. 每個判斷語句後面要接上冒號 : ,以表示接下來是滿足條件後要執行的語句塊。
  2. Python 中用 elif 代替了 else if,所以if語句的關鍵字爲:if – elif –elif –…–elif – else
  3. Python 使用縮進來區分分支部分,因此要特別注意 elifelse 的懸掛問題。

在這裏插入圖片描述



  1.1.1if語句的簡單語句組

如果你的if語句的分支部分只有一條語句,你可以將該語句與if語句寫在同一行中, 如下所示:

if(100 / 10 == 10): print("Uh...right!")
# Uh...right!


 1.2.assert斷言

assert(斷言) 用於判斷一個表達式,在表達式條件爲 False 的時候拋出異常。

assert True			# 條件爲 true 正常執行
#

assert False		# 條件爲 false 觸發異常
# AssertionError

其等價於

if not expression:
    raise AssertionError

常用與程序檢測時置入的檢查點,只有條件爲 True 才能讓程序正常工作。

a = 5
assert a == 5		# 條件爲 true 正常執行
#
assert a == 3		# 條件爲 false 觸發異常
# AssertionError






2.循環語句

不同於類C語言中有3種循環語句,Python只有for語句和whlie語句這2種循環語句,且與類C語言中的循環存在些許差異。


 2.1.while循環語句

while 判斷語句:
    循環語句
其他語句

當判斷語句爲True時執行循環語句,執行結束後繼續進行判斷語句,若爲True則執行循環語句,直至判斷語句爲False時纔可執行接下來的其他語句。
在這裏插入圖片描述

  2.1.1while循環的無限循環

我們可以令判斷語句恆爲 True 來實現無限循環,唯有達成某種條件時break強制跳出循環或者** Ctrl+C **終止程序。無限循環常見於生活中,例如曾經的小遊戲“跳一跳”就是基於此的。

ans = 51
while True:
	str = input("輸入一個數字:")
	a = int(str)
	if(a == ans):
		print("猜對了")
		break
	elif(a > ans):
		print("太大了哦~")
	else:
		print("太小了哦~")
print("遊戲結束~!")


  2.1.2while循環的else語句

在 while … else 在判斷語句爲 False 時執行 else 的語句塊。

count = 0
while count < 5:
   print (count, " 小於 5")
   count = count + 1
else:
   print (count, " 大於或等於 5")
   
# 0  小於 5
# 1  小於 5
# 2  小於 5
# 3  小於 5
# 4  小於 5
# 5  大於或等於 5


  2.1.3while循環的簡單語句組

如果while中循環語句只有一條語句,你可以將該語句與while寫在同一行中, 如下所示:

while(True): print("Uh...right!")
# Uh...right!
# Uh...right!
# Uh...right!
# Uh...right!
# Uh...right!
# Uh...right!
......

此時需要使用 Ctrl+C 來終止程序。



  2.1.4while循環的pass語句

Python pass是空語句,是爲了保持程序結構的完整性。
pass 不做任何事情,一般用做佔位語句,如下實例

while True:
	pass

此時程序將卡住,無法執行接下來操作,只能使用 Ctrl+C 來終止程序。

for i in ["C", "C++", "Perl", "Python"] : 
   if i == "Python":
      pass
      print ('pass')
   print ( i)
print ("Good bye!")

# C
# C++
# Perl
# pass
# Python
# Good bye!





 2.2.for循環語句

在Python中, for循環語句與其他類C語言有着很大的差別。

  2.2.1for循環語句與in語句

in語句與for循環語句結合,可以做到遍歷in後面所跟的任何序列的項目,如一個列表或者一個字符串。

for i in [1,3,2,4,9,6]:
    print(i)
# 1
# 3
# 2
# 4
# 9
# 6


languages = ["C", "C++", "Perl", "Python"] 
for i in languages:
	print (i)
# C
# C++
# Perl
# Python



  2.2.2for循環語句的else語句

同while一樣,在 for … else 在判斷語句爲 False 時執行 else 的語句塊。

for i in [1, 2, 3, 4, 5]:
    if(i < 5):
    	print (i, " 小於 5")
else:
    print (i, " 大於或等於 5")
   
# 0  小於 5
# 1  小於 5
# 2  小於 5
# 3  小於 5
# 4  小於 5
# 5  大於或等於 5

:當在for循環語句中存在執行break語句時,跳出循環,且不執行else裏面的語句塊。

Language = ["C", "C++", "Python", "Perl"]
for i in Language:
    if i == "Python":
        print("I got you.")
        break
    print("Language " + i)
else:
    print("Not Language")
print("Done!")

# Language C
# Language C++
# I got you.
# Done!



  2.2.3for循環語句的簡單語句組

同while一樣,如果for中循環語句只有一條語句,你可以將該語句與for寫在同一行中, 如下所示:

languages = ["C", "C++", "Perl", "Python"] 
for i in languages:print (i)
# C
# C++
# Perl
# Python

因爲for中判斷語句遍歷了languages列表,使用的是類似於next指針的機制,當指向languages列表的最後一個元素時,next返回值爲null,在for判斷語句中爲false,故終止循環。



  2.2.4 for循環語句與range()函數

如果你需要遍歷數字序列,可以使用內置range()函數。它會生成數列,例如:

for i in range(0,30,3):
    if(i % 2 == 0):
        print(i)
    else:
        i += 2
        print(i)

# 0
# 5
# 6
# 11
# 12
# 17
# 18
# 23
# 24
# 29

range(a,b,c)爲生成數列[a, a+c, a+2c, … , a+nc],其中a+n*c<b.且在循環體內變量i的改變對循環語句中變量i沒有影響(可理解爲兩個爲不同的變量)。





3.總結

  今天的內容較多,同時其內容也是語言中的精髓所在
  俗話說的好

     ~ 沒有條件分支與循環的語言,就彷彿失去靈魂的鹹魚 ~

  所以今天的內容要熟記於心纔可以噠~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章