分支迴圈結構和random庫的基礎應用
1.BMI
BMI:Body Mass Index 國際上常用的衡量人體肥胖和健康程度重要標準,主要用於統計分析
定義:BMI = 體重 (kg) /身高2(m2)
獲取使用者輸入的體重和身高值,計算並給出國際和國內的 BMI 分類
要求如下:
(1) 混合計算並給出國際和國內的 BMI 分類;
(2) 使用input()獲得測試用例輸入時,不要增加提示字串。
height,weight = eval(input())
#計算bmi BMI = 體重 (kg) /身高2(m2)
bmi = weight/(height**2)
world,china = "",""
#分支判斷
if bmi < 18.5:
world,china="偏瘦" ,"偏瘦"
elif 18.5 <= bmi < 24:
world,china="正常","正常"
elif 24 <= bmi < 25:
world,china="正常","偏胖"
elif 25 <= bmi < 28:
world,china="偏胖","偏胖"
elif 28 <= bmi < 30:
world,china="偏胖","肥胖"
else:
world,china="肥胖","肥胖"
#列印輸出
print("BMI數值為:{:.2f}".format(bmi))
print("BMI指標為:國際'{}',國內'{}'".format(world,china))
2.圓周率的計算
求解圓周率可以採用蒙特卡羅方法,在一個正方形中撒點,根據在1/4圓內點的數量佔總撒點數的比例計算圓周率值。
請以123作為隨機數種子,獲得使用者輸入的撒點數量,編寫程式輸出圓周率的值,保留小數點後6位。
#引入隨機數
import random
num = eval(input())
hit = 0
#種子
random.seed(123)
for i in range(num):
x,y = random.random(),random.random()
d = pow(x**2+y**2,0.5)
if d <= 1.0 :
hit +=1
#易知扇形面積為πr^2/4 正方形面積為r^2 面積比率為命中比率
pi = 4*hit/num
#輸出並保留6位小數
print("{:.6f}".format(pi))
3.整數的加減和
編寫程式計算如下數列的值:
1-2+3-4…966
其中,所有數字為整數,從1開始遞增,奇數為正,偶數為負
#累加準備
sum = 0
#使用range(M,N,[K]) 區間是[M,N)
for i in range(1,967):
if i % 2 == 0:
#偶數相減
sum -= i
else:
#奇數相減
sum +=i
#輸出結果
print(sum)
4.三位水仙花數
"水仙花數"是指一個三位整數,其各位數字的3次方和等於該數本身。
例如:ABC是一個"3位水仙花數",則:A的3次方+B的3次方+C的3次方 = ABC。
請按照從小到大的順序輸出所有的3位水仙花數,請用"逗號"分隔輸出結果。
#儲存結果
s=""
for i in range(100,1000):
a = i // 100
b = i%100 // 10
c = i%10
if pow(a,3)+pow(b,3)+pow(c,3) == i:
#判斷為水仙花數之後拼接結果
s=s+str(i)+','
#不列印最後一個字元
print(s[:-1])
5.使用者登入的三次機會
給使用者三次輸入使用者名稱和密碼的機會,要求如下:
1)如輸入第一行輸入使用者名稱為‘Kate’,第二行輸入密碼為‘666666’,輸出‘登入成功!’,退出程式;
2)當一共有3次輸入使用者名稱或密碼不正確輸出“3次使用者名稱或者密碼均有誤!退出程式。”。
解答:該題考查迴圈結構的擴充套件 正常退出迴圈的是三次輸入有誤 非正常退出迴圈即是break退出登入成功
#直接開始三次迴圈接收使用者的輸入
for i in range(3):
name = input()
password = input()
#判斷
if name == 'Kate' and password == '666666':
print("登入成功!")
break
else:
print("3次使用者名稱或者密碼均有誤!退出程式。")