python:4.程序的控制結構

4.1程序的分支結構
4.2實例:身體質量指數BIM
4.3程序的循環結構:for;while;
4.4 random()
4.5 實例: 圓周率的計算

4.1

單分支 if 二分支 if-else 多分支 if-elif-else
條件判斷:
	<;<=;>=;>;==;!=
條件組合:
	x and y  邏輯與
	x or  y  邏輯或
	  not x	 邏輯取非
		EG: if guess >9 or guess <9:
			print("錯了")
    		     else:
			print("對了")
異常處理:
	try:
		<語句塊1>
	except [,<異常類型>]:
		<語句塊2>
	else:
		<語句塊3>   ---else在不發生異常時執行
	finally:
		<語句塊4>   ---finally一定執行
		EG:     try:
				num=eval(input("輸入一個整數")
				print(num**2)
			except:
				print("輸入不是整數")

4.2

身體質量指數 BMI  衡量人體肥胖和健康的重要標準
	BMI=體重(kg)/身高^2(m^2)
輸入體重和身高
輸出國際和國內標準

#TextProBarV13.py
height,weight=eval(input(“請輸入身高(米)和體重(公斤)【逗號隔開】:”))
bmi=weight/pow(height,2)
print(“BMI{:.2f}”.format(bmi))
who,nat="",""
if bmi<18.5:
who,nat=“偏瘦”,“偏瘦”
elif 18.5<=bmi<24:
who,nat=“正常”,“正常”
elif 24<=bmi<25:
who,nat=“正常”,“偏胖”
elif 25<=bmi<28:
who,nat=“偏胖”,“偏胖”
elif 28<=bmi<30:
who,nat=“偏胖”,“肥胖”
else:
who,nat=“肥胖”,“肥胖”
print(“BMI指標爲:國際’{0}’,國內’{1}’”.format(who,nat))

4.3

-----------------遍歷循環for---------------------------------------(條件循環)無限循環while
for <循環變量> in <遍歷結構>:
<語句塊>
for i in range(M,N,K):
<語句塊> 從M開始 不到N 間隔K k可省略
1.字符串遍歷循環
for c in s: s----字符串 c ----每個字符
EG: for c in “Python123”:
print(c,end=",")
2.列表遍歷循環
for item in ls:
<語句塊> ls是一個列表,遍歷其每個元素,產生循環
EG: for item in [123,“PY”,456]
print(item,end=",")
3.文件遍歷循環
for line in fi:
<語句塊> fi是一個文件標識符,遍歷其每行,產生循環
EG: for line in

while <條件>:
	<語句塊>
						EG:	s="PYTHON"
							while s!="":
								for c in s:
									print(c,end="")
								s=s[:-1]   #去掉最後一個字符
循環與else
	循環:
	else:
		<語句塊>
當循環沒有被break語句退出時,執行else語句塊  else作爲“正常”完成循環的獎勵  與異常處理中的else相似

4.4

random庫   隨機數的Python標準庫
random.<b>
基本隨機函數:  seed()  				random()
		默認種子爲系統時間 種子相同 隨機數相同				
擴展隨機數函數:randint(a,b)				,randrange(m,n[,k])		
		a-b之間的整數				生成[m,n)之間以k爲間隔的隨機整數
		,getrandbits(k) 			,uniform(a,b)
		k比特長的隨機整數			[a,b]之間的隨機小數
		,choice(seq)				,shuffle(seq)
		從序列seq中隨機選擇一個元素		將序列seq中隨機排列,返還打亂後的序列
						s=[1,2,3,4,5,6];random.shuffle(s);print(s)  #一行時要加分號

4.5

1.公式計算

#CalPiv1.py
pi=0
N=100
for k in range(N):
pi+=1/pow(16,k)(
4/(8
k+1) - 2/(8k+4) -
1/(8
k+5) - 1/(8*k+6))
print(“圓周率值是:{}”.format(pi))

2.蒙特卡羅方法  (撒點過程)

#CalpiV2.py
from random import random
from time import perf_counter
DARTS=10001000
hits=0.0
start=perf_counter()
for i in range(1,DARTS+1):
x,y=random(),random()
dist=pow(x2+y2,0.5)
if dist<=1.0:
hits=hits+1
pi=4
(hits/DARTS)
print(“圓周率爲:{}”.format(pi))
print(“運行時間爲:{}”.format(perf_counter()-start))

錯題:
條件循環也叫無限循環
使用while能夠實現循環計數
for循環必須知道循環的次數,而while循環循環的次數可以是不確定的

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