轉(zhuǎn)載請注明出處:http://www.lxweimin.com/p/a7291786508f
本文出自Shawpoo的簡書
我的博客:CSDN博客
【Python學(xué)習(xí)筆記專欄】:http://blog.csdn.net/column/details/17658.html
一、條件判斷
條件判斷,也就是通過一條或多條語句的執(zhí)行結(jié)果(True或者False)來決定執(zhí)行的代碼塊。用到關(guān)鍵字有if
,elif
,else
。
1、語法格式:
-
1、最簡單的條件判斷語句:
if <條件判斷>: <代碼塊>
表示條件判斷語句返回為
True
時,執(zhí)行代碼塊中的語句,否則不執(zhí)行。
ps:if后面條件判斷后要跟冒號:
,執(zhí)行的代碼塊之前要縮進,否則不屬于if條件判斷下的代碼塊。
例如:if 3 in [1, 2, 3]: print("屬于這個list") 執(zhí)行結(jié)果:屬于這個list
-
2、if...else條件判斷:
if <條件判斷>: <代碼塊1> else: <代碼塊2>
表示當條件判斷為
True
時,執(zhí)行代碼塊1中的語句,否則執(zhí)行代碼塊2中的語句。同樣注意,在代碼塊1和代碼塊2之前要縮進。score = 51 if score >= 60: print("及格") else: print("不及格") 執(zhí)行結(jié)果:不及格
-
3、最完整的條件判斷語句:
if <條件判斷1>: <代碼塊1> elif <條件判斷2>: <代碼塊2> elif <條件判斷3>: <代碼塊3> else: <代碼塊4>
elif
是else if
的縮寫,依然通過對條件的判斷進行執(zhí)行對應(yīng)的代碼塊。例如:score = 74 if score > 90: print("優(yōu)秀") elif score >= 80: print("良好") elif score >= 60: print("及格") else: print("不及格") 執(zhí)行結(jié)果:及格
2、if的嵌套
if的條件判斷語句可以多層嵌套,如在嵌套 if 語句中,可以把 if...elif...else 結(jié)構(gòu)放在另外一個 if...elif...else 結(jié)構(gòu)中。
if <條件判斷1>:
if <條件判斷a>:
<代碼塊a>
elif <條件判斷b>:
<代碼塊b>
else:
<代碼塊c>
elif <條件判斷2>:
<代碼塊2>
elif <條件判斷3>:
<代碼塊3>
else:
<代碼塊4>
例如:
num = int(input("輸入一個數(shù)字:"))
if num % 2 == 0:
if num % 3 == 0:
print("你輸入的數(shù)字可以整除2和3")
else:
print("你輸入的數(shù)字可以整除2,但不能整除3")
else:
if num % 3 == 0:
print("你輸入的數(shù)字可以整除3但不能整除2")
else:
print("你輸入的數(shù)字不能整除2和3")
執(zhí)行結(jié)果:
輸入一個數(shù)字:6
你輸入的數(shù)字可以整除2和3
二、循環(huán)語句
Python中的循環(huán)語句有兩種,for
循環(huán) 和 while
循環(huán)。
1、for循環(huán)
在Python中, for循環(huán)可以遍歷任何序列的項目,如一個列表或者一個字符串。
-
1、語法
for循環(huán)的一般格式如下,分為簡單形式和完整形式,即else代碼塊
可省略:簡單形式: for <元素> in <容器模型>: <代碼塊> 完整形式: for <元素> in <容器模型>: <代碼塊> else: <代碼塊>
ps:else中的代碼塊在for循環(huán)結(jié)束之后執(zhí)行。
例如,求1~10的和,通過for循環(huán)依次累加:
sum = 0 for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]: sum = sum + x print(sum)
循環(huán)一個list中的所有元素:
languages = ["Python", "Java", "Android", "Ruby"] for x in languages: print(x) else: print("循環(huán)執(zhí)行結(jié)束") 執(zhí)行結(jié)果: Python Java Android Ruby 循環(huán)執(zhí)行結(jié)束
-
2、range()函數(shù)
如果我們需要遍歷數(shù)字序列,可以使用Python內(nèi)置的 range() 函數(shù)。會生成一個整數(shù)數(shù)列。a、
rang(n)
表示生成一個0到n(不含n)的整數(shù)數(shù)列,例如:for i in range(5): print(i, end=" ") 執(zhí)行結(jié)果: 0 1 2 3 4
b、也可以指定區(qū)間的值,
rang(n, m)
表示生成一個從n到m(不含m)的整數(shù)數(shù)列:for i in range(5, 9): print(i, end=" ") 執(zhí)行結(jié)果: 5 6 7 8
c、使range()以指定數(shù)字開始并指定不同的增量(甚至可以是負數(shù),有時這也叫做'步長'),語法格式:
rang(n, m, l)
for i in range(0, 10, 3): print(i, end=" ") 執(zhí)行結(jié)果: 0 3 6 9
負數(shù):
for i in range(-10, -100, -30): print(i, end=" ") 執(zhí)行結(jié)果: -10 -40 -70
2、while循環(huán)
while循環(huán)和for循環(huán)類似,也分為簡單形式和完整形式兩種,不同的是while循環(huán)需要滿足條件才可執(zhí)行循環(huán)體(代碼塊),而且同樣需要注意冒號和縮進。
-
1、語法
簡單形式: while <條件判斷>: <代碼塊> 完整形式: while <條件判斷>: <代碼塊> else: <代碼塊>
例如,求1~100的總和:
count = 1 max = 100 sum = 0 while count <= max: sum += count count += 1 else: print("循環(huán)結(jié)束") print("1到%d之和為: %d" % (max, sum)) 執(zhí)行結(jié)果: 循環(huán)結(jié)束 1到100之和為: 5050
-
2、無限循環(huán)
既然
while
循環(huán)是通過條件判斷來決定是否執(zhí)行循環(huán),那么只要條件一直為True
的話,那么將成為無限循環(huán),也就是通常說的死循環(huán)。如下面兩個例子都為死循環(huán):var = 1 while True: # 表達式永遠為 true num = int(input("輸入一個數(shù)字 :")) print("你輸入的數(shù)字是: ", num)
while True: print("Hello Python")
3、break語句和continue語句
break語句可以跳出for和while的循環(huán)體,即結(jié)束循環(huán)。而且循環(huán)體內(nèi)break后的語句和else塊將不執(zhí)行。
continue語句則是結(jié)束本次循環(huán),跳過continue后的語句,直接執(zhí)行下一次循環(huán),且else塊仍會執(zhí)行。
以下是for循環(huán)中使用了break語句的例子:
languages = ["Python", "Java", "Android", "Ruby"]
i = 0
for x in languages:
print(x)
if i == 2:
break
i += 1
else:
print("循環(huán)執(zhí)行結(jié)束")
執(zhí)行結(jié)果:
Python
Java
Android
以下是for循環(huán)中使用了continue語句的例子:
for c in 'Python':
if c == 'o':
continue
print(c, end=" ")
else:
print("\n循環(huán)結(jié)束")
執(zhí)行結(jié)果:
P y t h n
循環(huán)結(jié)束
4、pass語句
Python中的pass
是空語句,是為了保持程序結(jié)構(gòu)的完整性。pass
語句不做任何事情,一般用做占位語句,如下:
if a == 1:
pass
while a != 1:
pass