Python學習筆記(四)—— 程式的控制結構 一、程式的控制結構分類 二、程式的分支結構 1、分類 1.1 單分支結構 單分支示例: 1.2 二分支結構 二分支示例: 二分支的緊湊形式: 1.3 多分支結構 多分支舉例: 2、條件判斷及組合 2.1 條件判斷 2.2 條件組合 條件判斷及組合示例: ...
Python學習筆記(四)—— 程式的控制結構
一、程式的控制結構分類
二、程式的分支結構
1、分類
1.1 單分支結構
單分支示例:
1.2 二分支結構
二分支示例:
二分支的緊湊形式:
1.3 多分支結構
多分支舉例:
2、條件判斷及組合
2.1 條件判斷
2.2 條件組合
條件判斷及組合示例:
3、程式的異常處理
3.1 異常處理的基本使用
示例1:
示例2:
3.2 異常處理的高級使用
4、程式分支結構應用
4.1 計算“身體質量指數BMI”
4.1.1 定義:
4.1.2 身體質量指數BMI標準
4.1.3 問題需求
4.1.4 思路方法
4.1.5 輸出國際的代碼
- #CalBMIv1.py
- height, weight = eval(input("請輸入身高(米)和體重(公斤)[逗號隔開]: "))
- bmi = weight / pow(height, 2)
- print("BMI 數值為:{:.2f}".format(bmi))
- who = ""
- if bmi < 18.5:
- who = "偏瘦"
- elif 18.5 <= bmi < 25:
- who = "正常"
- elif 25 <= bmi < 30:
- who = "偏胖"
- else:
- who = "肥胖"
- print("BMI 指標為:國際'{0}'".format(who))
4.1.6 輸出國內的代碼
- #CalBMIv2.py
- height, weight = eval(input("請輸入身高(米)和體重\(公斤)[逗號隔開]: "))
- bmi = weight / pow(height, 2)
- print("BMI 數值為:{:.2f}".format(bmi))
- nat = ""
- if bmi < 18.5:
- nat = "偏瘦"
- elif 18.5 <= bmi < 24:
- nat = "正常"
- elif 24 <= bmi < 28:
- nat = "偏胖"
- else:
- nat = "肥胖"
- print("BMI 指標為:國內'{0}'".format(nat))
4.1.7 同時輸出國際和國內代碼
- #CalBMIv3.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))
三、程式的迴圈結構
1、遍歷迴圈
1.1 遍歷迴圈的應用
1.1.1 計數迴圈(N次)
1.1.2 計數迴圈(特定次)
1.1.3 字元串遍歷迴圈
1.1.4 列表遍歷迴圈
1.1.5 文件遍歷迴圈
2、無限迴圈
2.1 無限迴圈應用
3、迴圈控制保留字:break 和 continue
舉例:
四、random 庫的使用
1、random 庫概述:是使用隨機數的Python標準庫
2、random 庫包括兩類函數,常用共8個
2.1 基本隨機數函數
例子:
2.2 擴展隨機數函數
五、程式控制結構應用場景
1、“圓周率的計算”
1.1 問題分析
方法一:公式法
方法二:蒙特卡羅方法
1.2 公式法 代碼:
- #CalPiV1.py
- pi = 0
- N = 100
- for k in range(N):
- pi += 1/pow(16,k)*( \
- 4/(8*k+1) - 2/(8*k+4) - \
- 1/(8*k+5) - 1/(8*k+6) )
- print("圓周率值是: {}".format(pi))
運行結果
1.3 蒙特卡羅方法代碼
- #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("運行時間是: {:.5f}s".format(perf_counter() - start))
運行結果