04-python練習習題:身體指數BMI和圓周率

身體指數bmi

國際版

#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))

國內版

#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))

綜合版

#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))

圓周率公式法

#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))

蒙特卡羅方法

#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))

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