python(Mooc)--程序的控制結構

1.程序的分支結構

1.1 單分支結構

解釋:如果…就…

if <條件>:
   <語句塊>

注意:條件後面有個冒號

1.2 二分支結構

(1)普通形式:

if <條件>:
   <語句塊1>
else:
   <語句塊2>

(2)緊湊形式
解釋:適用於簡單表達式的二分支結構

<表達式1> if <條件> else <表達式2>

舉例:

guess = evel(input())
print("猜{}了".format("對" if guess==99 else "錯"))

1.3 多分支結構

if <條件>:
   <語句塊1>
elif:
   <語句塊2>
   ...   
else:
   <語句塊2>

舉例:

score = eval(input())
if score >= 90:
   grade = "A"
elif score >= 80:
   grade = "B"
elif score >= 70:
   grade = "C"
elif score >= 60:
   grade = "D"
print("輸入成績屬於{}級別".format(grade))

1.4 條件判斷及組合

(1)操作符
在這裏插入圖片描述
(2)保留字
在這裏插入圖片描述

1.5 程序的異常處理

(1)基本形式

try:
   <語句塊1>
except <異常類型>:
   <語句塊2>   

注意:異常類型可不標記,但是標記之後,僅響應該異常,異常類型名字等同於變量

(2)高級使用

try:
   <語句塊1>
except <異常類型>:
   <語句塊2>   
else:
   <語句塊3>
finally:
   <語句塊4>   

注意:

  • finally對應語句塊4一定執行
  • else對應語句塊3在不發生異常時執行

2.實例:身體質量指數BMI

代碼:

height,wight = eval(input("請輸入身高(米)和體重(公斤)[逗號隔開]:"))
bmi = wight / 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))

運行結果:
在這裏插入圖片描述

3.程序的循環結構

3.1 遍歷循環

(1)基本形式

for <循環變量> in <遍歷結構> :
    <語句塊>

解釋: 每次循環,所獲得的元素放入循環變量,並執行一次語句塊

(2)基本應用

  • 計數循環(N次)
for i in range(M,N,K):  //從M開始不到N之間的整數,以K爲步伐取數
   <語句塊>

解釋:遍歷有range()函數產生的數字序列,產生循環

  • 字符串遍歷循環
for c in s:
    <語句塊>

解釋:s是字符串,遍歷字符串的每個字符,產生循環
舉例:

>>>for c in "Python123":
       print(c,end=",")
 //運行結果:P,y,t,h,o,n,1,2,3,
  • 列表遍歷循環
for item in ls:
    <語句塊>

解釋:ls是一個列表,遍歷其每一個元素,產生循環

  • 文件遍歷循環
for line in fi:
    <語句塊>

解釋:fi是一個文件標識符。遍歷其每行,產生循環

3.2 無限循環

while <條件>:
    <語句塊>

解釋:反覆執行語句塊,直到條件不滿足爲止

3.3 循環控制保留字

  • break跳出並結束當前整個循環,(跳出當前層循環,不跳出外層循環)執行循環後的語句
  • continue結束當次循環,不執行本次循環的後續語句,從頭執行新循環

舉例:

>>>for c in "PYTHON":
    if c == "T":
       continue
    print(c,end=",")
//運行結果:P,Y,H,O,N
s = "PYTHON"
while s != "":
    for c in s :
       if c== "T":
           break
       print(c,end="")
    s=s[:-1]
//運行結果:PYPYPYPYPYP

3.4 循環的高級用法

循環與else

  • 當循環沒有被break語句退出時,執行else語句塊
  • else語句塊作爲“正常”完成循環的獎勵
  • 這裏的else用法與異常處理的else用法類似

舉例:
在這裏插入圖片描述

4.random庫的使用

4.1 基本介紹

  • 使用時import random
  • random庫包括兩類函數,常用8個
    (1)基本隨機數函數:
    seed(),random()
    (2)擴展隨機數函數:
    randint(),getrandbits(),uniform(),randrange(),choice(),shuffle()

4.2 基本隨機數函數

在這裏插入圖片描述

4.2 擴展隨機數函數

在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述

5.實例:圓周率的計算

#計算圓周率
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("運行時間是:{:.5f}s".format(perf_counter()-start))

在這裏插入圖片描述

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