4-1 程序的分支結(jié)構(gòu)
1.單分支結(jié)構(gòu)
基本構(gòu)成:

2.二分支結(jié)構(gòu)

緊湊形式:
適用于簡(jiǎn)單表達(dá)式的二分支結(jié)構(gòu)
guess = eval(input())
print("猜{}了".format("對(duì)" if guess==99 else "錯(cuò)")))
3.多分支結(jié)構(gòu)
基本構(gòu)成:
if <條件1> :
<語(yǔ)句塊1>
elif <條件2> :
<語(yǔ)句塊2>
……
else :
<語(yǔ)句塊N>
score = eval(input())
if score >= 60:
grade = "D"
elif score >= 70:
grade = "C"
elif score >= 80:
grade = "B"
elif score >= 90:
grade = "A"
print("輸入成績(jī)屬于級(jí)別{}".format(grade))
4.條件判斷及組合
條件判斷

條件組合

5.程序的異常處理


4.2身體質(zhì)量指數(shù)BMI

代碼:
#CalBMIv1.py
height, weight = eval(input("請(qǐng)輸入身高(米)和體重(公斤)[逗號(hào)隔開(kāi)]: "))
bmi = weight / pow(height, 2)
print("BMI 數(shù)值為:{:.2f}".format(bmi))
who = ""
if bmi < 18.5:
who = "偏瘦"
elif 18.5 <= bmi < 25:
who = "正常"
elif 25 <= bmi < 30:
who = "偏胖"
else:
who = "肥胖"
print("BMI 指標(biāo)為:國(guó)際'{0}'".format(who))
4.3程序的循環(huán)結(jié)構(gòu)
1.遍歷循環(huán)
基本構(gòu)成:
for <循環(huán)變量> in <遍歷結(jié)構(gòu)> :
<語(yǔ)句塊>
從遍歷結(jié)構(gòu)中逐一提取元素,放在循環(huán)變量中
由保留字for和in組成,完整遍歷所有元素后結(jié)束
每次循環(huán),所獲得元素放入循環(huán)變量,并執(zhí)行一次語(yǔ)句塊
計(jì)數(shù)循環(huán):
for i in range(5):
print(i)
0
1
2
3
4
字符串遍歷循環(huán):
for c in "Python123":
print(c, end=",")
P,y,t,h,o,n,1,2,3,
列表遍歷循環(huán):
for item in ls :
<語(yǔ)句塊>
ls是一個(gè)列表,遍歷其每個(gè)元素,產(chǎn)生循環(huán)
文件遍歷循環(huán):
for line in fi :
<語(yǔ)句塊>
fi是一個(gè)文件標(biāo)識(shí)符,遍歷其每行,產(chǎn)生循環(huán)
2.無(wú)限循環(huán)
由條件控制的循環(huán)運(yùn)行方式
while <條件> :
<語(yǔ)句塊>
反復(fù)執(zhí)行語(yǔ)句塊,直到條件不滿足時(shí)結(jié)束
3.循環(huán)控制保留字


4.循環(huán)的高級(jí)用法

當(dāng)循環(huán)沒(méi)有被break語(yǔ)句退出時(shí),執(zhí)行else語(yǔ)句塊
else語(yǔ)句塊作為"正常"完成循環(huán)的獎(jiǎng)勵(lì)
這里else的用法與異常處理中else用法相似

4-4 random庫(kù)的使用
1.基本隨機(jī)函數(shù)

2.拓展隨機(jī)函數(shù)



4.5圓周率的計(jì)算
蒙特卡羅方法:
#CalPiV2.py
from random import random
from time import perf_counter
DARTS = 1000*1000
hits = 0.0
start = perf_counter()
for i in range(1, DARTS+1):
x, y = random(), random()
dist = pow(x ** 2 + y ** 2, 0.5)
if dist <= 1.0:
hits = hits + 1
pi = 4 * (hits/DARTS)
print("圓周率值是: {}".format(pi))
print("運(yùn)行時(shí)間是: {:.5f}s".format(perf_counter()-start))