1、分支結(jié)構(gòu)
1.1呵萨、if分支語句
if<condition> #判斷表達(dá)式是否為真
<statements> #代碼塊
else<condition> #if不成立時(shí)執(zhí)行else下代碼
<statements>
1.2硕并、多分支結(jié)構(gòu)(if-elif-else)
elif語句允許檢查多個(gè)表達(dá)式是否為True明吩,并在其中一個(gè)條件求值為True時(shí)立即執(zhí)行對(duì)應(yīng)代碼塊锐朴。
score = int(input('請(qǐng)輸入一個(gè)分?jǐn)?shù):'))
if 100 >= score >= 90:
print('A')
elif 90 >= score >= 80: # 可多次判斷表達(dá)式是否為True
print('B')
elif 80 >= score >= 60:
print('B')
elif 60 >= score = 0:
print('D')
else:
print('輸入有誤!')
1.3勇婴、條件表達(dá)式(三元操作符)
三元操作符語法:
a = x if 條件 else y #條件為True時(shí),a的值賦值為x嘱腥,否則為y
一元操作符:‘-’耕渴,負(fù)號(hào)
二元操作符:‘=’,賦值齿兔,它有左右兩個(gè)操作數(shù)
三元操作符:三個(gè)操作數(shù)
if x < y:
small = x
else:
small = y
上述代碼可用三元操作符表示:
small = x if x < y else y
1.4橱脸、斷言assert
可用來在程序中置入檢查點(diǎn),當(dāng)需要確保程序中的某個(gè)條件一定為真時(shí)才能讓程序正常工作分苇,assert就很有用了添诉,與其出現(xiàn)莫名的bug導(dǎo)致程序崩潰不如自我毀滅
assert語法:
assert 3 > 4 #當(dāng)后面的條件為False時(shí),程序崩潰拋出AssertionError的異常
2医寿、循環(huán)語句
2.1吻商、while循環(huán)語句
while 條件: #條件為真執(zhí)行執(zhí)行循環(huán)體,為假時(shí)跳出循環(huán)體
循環(huán)體
2.1.1糟红、死循環(huán)
無限循環(huán)可能在客戶端/服務(wù)器編程中有用,服務(wù)器需要連續(xù)運(yùn)行乌叶,以便客戶端程序可以在需要時(shí)與其進(jìn)行通信盆偿。
var = 1
while var == 1 : # This constructs an infinite loop(這構(gòu)成一個(gè)無限循環(huán))
num = int(input("Enter a number :"))
print ("You entered: ", num)
print ("Good bye!")
按CTRL+C可退出無限循環(huán)
2.1.2、在循環(huán)中使用else語句
如果else語句與while循環(huán)一起使用准浴,則在條件變?yōu)閒alse時(shí)執(zhí)行else語句
count = 0
while count < 5:
print (count, " is less than 5")
count = count + 1
else:
print (count, " is not less than 5")
2.2事扭、for循環(huán)語句
for <variable> in <sequence>: #variable表示迭代的目標(biāo)變量,sequence表示表達(dá)式(列表乐横、元組或其他)
<statements>
else:
<statements>
member = ['黑夜' , '迷離', '愛你哦']
for each in member:
print(each, len(each))
2.3求橄、range()函數(shù)
如果你需要遍歷數(shù)字序列,可以使用內(nèi)置range()函數(shù)葡公。它會(huì)生成數(shù)列
range( [start,] stop[, step = 1]) #語法
range()有三個(gè)可選參數(shù)罐农,其中中括號(hào)里的可選,step = 1催什,表示第三個(gè)參數(shù)默認(rèn)值為1涵亏。
#傳遞一個(gè)參數(shù):
for i in range(3): #從0開始遍歷,不包括尾(3)
print(i)
0
1
2
#傳遞兩個(gè)參數(shù):
for i in range(1, 8):
print(i)
1 2 3 4 5 6 7
#傳遞三個(gè)參數(shù):
for i in range(1,10,2): #第三個(gè)參數(shù)表示步進(jìn)蒲凶,從1開始气筋,每次遞進(jìn)2
print(i)
1 3 5 7 9
range()函數(shù)來創(chuàng)建一個(gè)列表:
>>>list(range(5))
[0, 1, 2, 3, 4]
range()和len()函數(shù)以遍歷一個(gè)序列的索引:
>>>a = ['Google', 'Baidu', 'Runoob', 'Taobao', 'QQ']
>>> for i in range(len(a)):
... print(i, a[i])
...
0 Google
1 Baidu
2 Runoob
3 Taobao
4 QQ
2.4、break語句
break語句作用是終止當(dāng)前循環(huán)旋圆,跳出循環(huán)體宠默,只能跳出一層循環(huán)
(1)、與while循環(huán)搭配:
var = 10
while var > 0:
print('當(dāng)前變量值為:', var)
var -= 1
if var == 5:
break
print('GOOD BYE!')
(2)灵巧、與for循環(huán)搭配:
for each in 'runoob':
if each == 'b':
break
print('當(dāng)前字母為:', each)
2.5搀矫、continue語句
continue語句作用是終止本輪循環(huán)抹沪,并開始下一輪循環(huán),(開始下一輪循環(huán)前艾君,會(huì)先測(cè)試循環(huán)條件)
>>> for i in range(10):
if i % 2 != 0:
print(i) #當(dāng)i % 2 != 0時(shí)輸出采够,為0時(shí)終止本輪循環(huán)
continue
1
3
5
7
9
>>> for i in range(10):
if i %2 != 0:
continue #當(dāng)i % 2 != 0時(shí)終止本輪循環(huán),為0時(shí)輸出
print(i)
0
2
4
6
8
var = 10
while var > 0:
var = var -1
if var == 5: # 變量為 5 時(shí)跳過輸出,繼續(xù)下一輪當(dāng)var==4時(shí)
continue
print ('當(dāng)前變量值 :', var)
print ("Good bye!")
當(dāng)前變量值 : 9
當(dāng)前變量值 : 8
當(dāng)前變量值 : 7
當(dāng)前變量值 : 6
當(dāng)前變量值 : 4
當(dāng)前變量值 : 3
當(dāng)前變量值 : 2
當(dāng)前變量值 : 1
當(dāng)前變量值 : 0
Good bye!
例:驗(yàn)證用戶密碼程序冰垄,3次機(jī)會(huì)蹬癌,若輸入* 則不算入內(nèi)
count = 3
password = '12345678'
while count:
passwd = input('請(qǐng)輸入密碼:')
if passwd == password:
print('密碼正確,進(jìn)入程序....')
break
elif '*' in passwd:
print('密碼中不能含有"*",您還有',count,'次機(jī)會(huì)虹茶!', end = '')
continue
else:
print('密碼輸入錯(cuò)誤逝薪,您還有',count-1,'次機(jī)會(huì)', end = '')
count -= 1
2.6、pass 語句
Python pass是空語句蝴罪,是為了保持程序結(jié)構(gòu)的完整性董济,pass 不做任何事情,一般用做占位語句要门。
>>>while True:
... pass # 等待鍵盤中斷 (Ctrl+C)
for letter in 'Runoob':
if letter == 'o':
pass
print ('執(zhí)行 pass 塊')
print ('當(dāng)前字母 :', letter)
print ("Good bye!")
當(dāng)前字母 : R
當(dāng)前字母 : u
當(dāng)前字母 : n
執(zhí)行 pass 塊
當(dāng)前字母 : o
執(zhí)行 pass 塊
當(dāng)前字母 : o
當(dāng)前字母 : b
Good bye!