目录
一、身体质量指数BMI
二、圆周率的计算
三、整数的加减和
四、三位水仙花数
五、用户登录的三次机会
这是"实例"题,与课上讲解实例相同,请作答检验学习效果。
BMI :Body Mass Index 国际上常用的衡量人体肥胖和健康程度重要标准,主要用于统计分析
定义:BMI = 体重 (kg) /身高2(m2)
获取用户输入的体重和身高值,计算并给出国际和国内的 BMI 分类
要求如下:
(1) 混合计算并给出国际和国内的 BMI 分类;
(2) 使用input()获得测试用例输入时,不要增加提示字符串。
输入示例1
1.68,41
输出示例1
BMI数值为:14.53
BMI指标为:国际'偏瘦',国内'偏瘦'
输入示例2
1.72,80
输出示例2
BMI数值为:27.04
BMI指标为:国际'偏胖',国内'偏胖'
答案
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 = "偏胖","肥胖"
elif 28 <= bmi < 30:
who,nat = "偏胖","肥胖"
elif bmi >= 30:
who,nat = "肥胖","肥胖"
print("BMI指标为:国际'{}',国内'{}'".format(who,nat))
注意:分支结构是程序的重要框架,读程序要先看分支。
这是"实例"题,与课上讲解实例相同,请作答检验学习效果。
求解圆周率可以采用蒙特卡罗方法,在一个正方形中撒点,根据在1/4圆内点的数量占总撒点数的比例计算圆周率值。
请以123作为随机数种子,获得用户输入的撒点数量,编写程序输出圆周率的值,保留小数点后6位。
输入示例
1024
输出示例
3.218750
答案:
from random import random,seed #引入标注库random里面的random和seed
seed(123)#种子根据题目要求设为123
DARTS = eval(input())#得到1024的输入,这是总点数
hits = 0.0#定义圆里面的点的初始值为0
for i in range(1,DARTS+1):#从1循环到1024
x, y = random(), random()#可以把这个看成一个坐标,坐标都是随机生成的
dist = pow(x ** 2 + y ** 2,0.5)#这个可以得到这个坐标到原点的距离
if dist <= 1.0:#如果原点的距离<1
hits = hits + 1#那么就在圆里撒一个点
pi = 4 * (hits/DARTS)#圆周率的大小 = 圆的面积除以正方形的面积
print("{:.6f}".format(pi))
编写程序计算如下数列的值:
1-2+3-4...966
其中,所有数字为整数,从1开始递增,奇数为正,偶数为负
答案:
sum = 0
count = 1
while count <= 966:
if count%2 == 1:
sum += count
elif count%2 ==0:
sum -= count
count += 1
print(sum)
"水仙花数"是指一个三位整数,其各位数字的3次方和等于该数本身。
例如:ABC是一个"3位水仙花数",则:A的3次方+B的3次方+C的3次方 = ABC。
请按照从小到大的顺序输出所有的3位水仙花数,请用"逗号"分隔输出结果。
s = ""#定义一个空字符串
for i in range(100,1000):#水仙花数是个三位数,所以我们只要找出100到1000里的水仙花数
t = str(i)#将数字变成字符串
if pow(eval(t[0]),3) + pow(eval(t[1]),3) + pow(eval(t[2]),3) == i:如果A的3次方+B的3次方+C的3次方 = ABC
s += "{},".format(i)#那么他就是水仙花数,所以我们把所有的水仙花数都合并为一个字符串,用逗号隔开
print(s[:-1])#去掉最后一个逗号,输出最终结果。
给用户三次输入用户名和密码的机会,要求如下:
1)如输入第一行输入用户名为‘Kate’,第二行输入密码为‘666666’,输出‘登录成功!’,退出程序;
2)当一共有3次输入用户名或密码不正确输出“3次用户名或者密码均有误!退出程序。”
答案
count = 0 #作为一计数提前定义一下
while count < 3:#当计数小于3时,也就是0,1,2这三次机会
name = input()#输入用户名
password = input()#输入密码
if name == 'Kate'and password == '666666':#如果正确
print("登录成功!")#显示登陆成功
break#退出
else:#如果不正确
count += 1#计数加一,你就失去一次机会,但是还可以继续两次
if count == 3:#但是如果加到了3,也就是说你前面0,1,2次机会都用光了
print("3次用户名或者密码均有误!退出程序。")#下次就不会进入循环了