一爵卒、什么是流程控制
在進(jìn)行程序設(shè)計(jì)的時(shí)候虚缎,我們會(huì)經(jīng)常進(jìn)行邏輯判斷,根據(jù)不同的結(jié)果做不同的事钓株,或者重復(fù)做某件事实牡,我們對(duì)類似這樣的工作稱為流程控制
二、分類
- 順序控制
就是從左到右,從上到下的順序依次執(zhí)行每條語(yǔ)句操作
- 條件控制(選擇控制)
基于條件選擇執(zhí)行語(yǔ)句享幽,比方說(shuō)铲掐,如果條件成立,則執(zhí)行操作A值桩,或者如果條件成立摆霉,則執(zhí)行操作A,反之則執(zhí)行操作B
- 循環(huán)控制
循環(huán)控制,又稱為回路控制携栋,根據(jù)循環(huán)初始條件和終結(jié)要求搭盾,執(zhí)行循環(huán)體內(nèi)的操作
三、選擇控制 if語(yǔ)句(決策)
1婉支、if(單一條件))
- 語(yǔ)法格式
if <條件表達(dá)式>: #若干語(yǔ)句塊
-
執(zhí)行流程圖
- 說(shuō)明
- 條件表達(dá)式可以是任何一種邏輯表達(dá)式
- 如果表達(dá)式值為true鸯隅,則執(zhí)行 : 后的代碼,再執(zhí)行后面的語(yǔ)句
- 如果表達(dá)的值為false向挖,則直接執(zhí)行后面的語(yǔ)句
- 示例代碼
#假設(shè)有整型變量x蝌以,判斷x是否為偶數(shù),若為偶數(shù)何之,則在控制臺(tái)上打印“輸入的數(shù)值是偶數(shù)”跟畅。 #無(wú)論x是否為偶數(shù),最后都要在控制臺(tái)上輸出x的值
2溶推、if...else..
- 語(yǔ)法格式
if <條件1>: 執(zhí)行語(yǔ)句塊1 else: 執(zhí)行語(yǔ)句塊2
- 說(shuō)明
- else子句是可選項(xiàng)
- 若有,則布爾表達(dá)式的值為true,執(zhí)行語(yǔ)句1徊件,否則,執(zhí)行語(yǔ)句2
- 若無(wú),則布爾表達(dá)式的值為true,執(zhí)行語(yǔ)句1蒜危,否則虱痕,執(zhí)行if語(yǔ)句的后續(xù)語(yǔ)句
- 語(yǔ)句1或語(yǔ)句2可以是單語(yǔ)句,也可以是復(fù)合語(yǔ)句等
-
執(zhí)行流程圖
- 示例代碼
x = 2; if x<2: x +=1 else: x -=1
3辐赞、if...elif…else...
- 語(yǔ)法格式
if <條件1>: <語(yǔ)句1> elif <條件2>: <語(yǔ)句2> elif <條件3>: <語(yǔ)句3> ... else: <語(yǔ)句n>
-
執(zhí)行結(jié)構(gòu)圖
- 說(shuō)明
- 如果"條件1"為 True部翘,將執(zhí)行"語(yǔ)句1"
- 如果"條件1"為False,將判斷"條件2"
- 如果"條件2"為 True响委,將執(zhí)行"語(yǔ)句2"
- 如果"條件2"為False略就,將執(zhí)行"條件3",依次內(nèi)推
- ...
- 如果所有條件都不滿足則執(zhí)行else語(yǔ)句塊
- 示例代碼
name = input('請(qǐng)輸入用戶名:\n') if name == "admin": print("超級(jí)管理員") elif name == "user": print("普通用戶") elif name == "guest": print("客人") else: print("黑名單"
4晃酒、if 嵌套
- 語(yǔ)法格式
if 表達(dá)式1: 語(yǔ)句 if 表達(dá)式2: 語(yǔ)句 elif 表達(dá)式3: 語(yǔ)句 else 語(yǔ)句 elif 表達(dá)式4: 語(yǔ)句 else: 語(yǔ)句
- 示例代碼
num = int(input("輸入一個(gè)數(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ù)字既不能整除3贝次,也不能整除2')
5、三元操作符
在python中沒(méi)有傳統(tǒng)的?:運(yùn)算符彰导,但有相應(yīng)的處理方式
- 語(yǔ)法格式
variable = a if exper else b variable = (exper and [b] or [c])[0] variable = exper and b or c
- 示例代碼
num1 = int(input('請(qǐng)輸入第一個(gè)數(shù)字:')) num2 = int(input('請(qǐng)輸入第二個(gè)數(shù)字:')) num3 = int(input('請(qǐng)輸入第三個(gè)數(shù)字:')) max_num = 0 max_num = num1 if num1 > num2 else num2 max_num = num3 if num3 > max_num else max_num print(max_num) a,b=1,2 max = (a > b and [a] or [b])[0] #list max = (a > b and a or b)
6蛔翅、常用的操作符
操作符 描述 <
小于 <=
小于或等于 >
大于 >=
大于或等于 ==
等于,比較對(duì)象是否相等 !=
不等于 and
與
四位谋、循環(huán) while
1山析、說(shuō)明
Python 編程中 while 語(yǔ)句用于循環(huán)執(zhí)行程序,即在某條件下掏父,循環(huán)執(zhí)行某段程序笋轨,以處理需要重復(fù)處理的相同任務(wù)
2、語(yǔ)法格式
while 條件: #執(zhí)行語(yǔ)句 ... [else: #執(zhí)行語(yǔ)句 ...]
3、執(zhí)行流程圖
4爵政、說(shuō)明
- 判斷條件可以是任何表達(dá)式仅讽,任何非零、或非空(null)的值均為true钾挟。
- 執(zhí)行流程:先判斷
while
后的條件洁灵,如果是True
則開(kāi)始執(zhí)行循環(huán)體,執(zhí)行完畢后掺出,再去判斷 條件徽千,如果True
繼續(xù)執(zhí)行循環(huán)體... -
while
中的else
是可選的。這和其他語(yǔ)言的很大的區(qū)別汤锨,其他的語(yǔ)言中while
中沒(méi)有else
双抽。 當(dāng)while
中的條件為False
時(shí),開(kāi)始執(zhí)行else
中語(yǔ)句泥畅。 - 如果提供了
else
語(yǔ)句荠诬,則else
語(yǔ)句一定執(zhí)行。除非你是通過(guò)break
語(yǔ)句退出的循環(huán)位仁。
5柑贞、示例代碼
- 輸出小于5的數(shù)
count = 0 while count < 5: print (count, " 小于 5") count = count + 1 else: print (count, " 大于或等于 5")
- 計(jì)算 1 到 100 的總和
i = 0 sun = 0 while i < 100: sun+=i i+=1 print(sun)
- 猜幸運(yùn)數(shù)字游戲(while 配合if else)
lucky_num = 10 input_num = -1 guess_num = 0 while lucky_num != input_num and guess_num < 3: print('Number:',guess_num) input_num = int(input('請(qǐng)輸入一個(gè)數(shù)字:')) if input_num > lucky_num: print("這個(gè)數(shù)有點(diǎn)大") elif input_num < lucky_num: print("這個(gè)數(shù)有點(diǎn)小") guess_num += 1 if lucky_num == input_num: print('恭喜你') else: print('在試一次')
五、循環(huán) for…in…
1聂抢、說(shuō)明
for循環(huán)常常使用in對(duì)序列化對(duì)象(如列表钧嘶、元祖等)進(jìn)行遍歷
在Python中,最基本的數(shù)據(jù)結(jié)構(gòu)是序列(sequence)琳疏。序列中的每個(gè)元素被分配一個(gè)序號(hào)——即元素的位置有决,也稱為索引。第一個(gè)索引是 0空盼,第二個(gè)則是 1书幕,以此類推。序列中的最后一個(gè)元素標(biāo)記為 -1揽趾,倒數(shù)第二個(gè)元素為 -2台汇,一次類推。Python包含 6 中內(nèi)建的序列篱瞎,包括列表苟呐、元組、字符串俐筋、Unicode字符串牵素、buffer對(duì)象和xrange對(duì)象
2、語(yǔ)法格式
- 格式
for 元素 in 序列: #語(yǔ)句塊
3澄者、示例代碼
- 基礎(chǔ)使用
s = 'hello world 666' for i in s: print(i)
- 結(jié)合if…else...使用
for letter in 'laowang': # 第一個(gè)實(shí)例 if letter == 'o': # 字母為 o 時(shí)跳過(guò)輸出 continue print ('當(dāng)前字母 :', letter)
- 使用rang函數(shù)
for n in range(2, 10): for x in range(2, n): if n % x == 0: print(n, '等于', x, '*', n//x) break else: # 循環(huán)中沒(méi)有找到元素 print(n, ' 是質(zhì)數(shù)')
#如果你需要遍歷數(shù)字序列笆呆,可以使用內(nèi)置range()函數(shù)请琳。它會(huì)生成數(shù)列 range()語(yǔ)法: range(start,end,step=1):顧頭不顧尾 range(10):默認(rèn)step=1,start=0,生成可迭代對(duì)象腰奋,包含[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] range(1,10):指定start=1单起,end=10,默認(rèn)step=1劣坊,生成可迭代對(duì)象嘀倒,包含[1, 2, 3, 4, 5, 6, 7, 8, 9] range(1,10,2):指定start=1,end=10局冰,step=2测蘑,生成可迭代對(duì)象,包含[1, 3, 5, 7, 9]
4康二、小結(jié)
- for循環(huán)為迭代循環(huán)
- 可遍歷序列成員(字符串碳胳,列表,元組)
- 可遍歷任何可迭代對(duì)象(字典沫勿,文件等)
- 可以用在列表解析和生成器表達(dá)式中
六挨约、循環(huán)控制語(yǔ)句
1、break
- 說(shuō)明
python中的break語(yǔ)句用法产雹,常用在滿足某個(gè)條件诫惭,需要立刻退出當(dāng)前循環(huán)時(shí)(跳出循環(huán)),break語(yǔ)句可以用在for循環(huán)和while循環(huán)語(yǔ)句中蔓挖。簡(jiǎn)單的說(shuō)夕土,break語(yǔ)句是會(huì)立即退出循環(huán),在其后邊的循環(huán)代碼不會(huì)被執(zhí)行 - 配合for循環(huán)使用
for letter in 'Python': if letter == 'h': break print (letter),
- 配合while循環(huán)使用
var = 10 while var > 0: print(var) var -= 1 if var == 5:#當(dāng)var是5的時(shí)候跳出循環(huán)執(zhí)行下面的代碼 break print("循環(huán)結(jié)束")
2瘟判、continue
- 說(shuō)明
使循環(huán)跳過(guò)其主體的剩余部分怨绣,并立即進(jìn)入下一次循環(huán) - 配合while循環(huán)使用
var = 10 # 第二個(gè)實(shí)例 while var > 0: var -= 1 if var == 3: # 變量為 5 時(shí)跳過(guò)輸出,繼續(xù)循環(huán) continue print ('當(dāng)前變量值 :', var) print ("循環(huán)結(jié)束")
- 配合for循環(huán)使用
for letter in 'Python': if letter == 'h': continue print ('continue語(yǔ)句之后...') print ('當(dāng)前字符:', letter)
3、 pass
- 說(shuō)明
當(dāng)語(yǔ)法需要但不需要執(zhí)行任何命令或代碼時(shí)拷获,Python中就可以使用pass
語(yǔ)句篮撑,此語(yǔ)句什么也不做,用于表示“占位”的代碼匆瓜, - 基礎(chǔ)使用
for letter in 'Python': if letter == 'h': pass #什么都不做 print ('pass') print ('當(dāng)前字母 :', letter) print ("循環(huán)結(jié)束...")
七咽扇、循環(huán)總結(jié)
循環(huán)是讓計(jì)算機(jī)做重復(fù)任務(wù)的有效的方法,有些時(shí)候陕壹,如果代碼寫得有問(wèn)題,會(huì)讓程序陷入“死循環(huán)”树埠,也就是永遠(yuǎn)循環(huán)下去糠馆。這時(shí)可以用 Ctrl+C 退出程序,或者強(qiáng)制結(jié)束 Python 進(jìn)程怎憋。