练习4: 程序的控制结构 (第4周)
实例5:身体质量指数BMI
描述
这是"实例"题,与课上讲解实例相同,请作答检验学习效果。
BMI :Body Mass Index 国际上常用的衡量人体肥胖和健康程度重要标准,主要用于统计分析
定义:BMI = 体重 (kg) /身高2(m2)
获取用户输入的体重和身高值,计算并给出国际和国内的 BMI 分类

要求如下:
(1) 混合计算并给出国际和国内的 BMI 分类;
(2) 使用input()获得测试用例输入时,不要增加提示字符串。
输入输出示例
| 输入 | 输出 | |
| 示例1 |
|
|
| 示例2 |
|
|
h,w=eval(input()) bmi=w/h/h print("BMI数值为:{:.2f}".format(bmi)) if bmi<18.5: print("BMI指标为:国际'偏瘦',国内'偏瘦'") elif bmi<24: print("BMI指标为:国际'正常',国内'正常'") elif bmi<25: print("BMI指标为:国际'正常',国内'偏胖'") elif bmi<28: print("BMI指标为:国际'偏胖',国内'偏胖'") elif bmi<30: print("BMI指标为:国际'偏胖',国内'肥胖'") else: print("BMI指标为:国际'肥胖',国内'肥胖'")
实例6:圆周率的计算
描述
这是"实例"题,与课上讲解实例相同,请作答检验学习效果。
求解圆周率可以采用蒙特卡罗方法,在一个正方形中撒点,根据在1/4圆内点的数量占总撒点数的比例计算圆周率值。
请以123作为随机数种子,获得用户输入的撒点数量,编写程序输出圆周率的值,保留小数点后6位。
输入输出示例
| 输入 | 输出 | |
| 示例 1 |
|
|
import random as r r.seed(123) a=eval(input()) n=0 for i in range(1,a+1): x,y=r.random(),r.random() if (x*x+y*y)<=1: n=n+1 pi=4*n/a print("{:.6f}".format(pi))
整数的加减和
描述
编写程序计算如下数列的值:
1-2+3-4...966
其中,所有数字为整数,从1开始递增,奇数为正,偶数为负
输入格式
该题目没有输入。
输入输出示例
| 输入 | 输出 | |
| 示例 1 |
|
|
n=0 for i in range(1,967): if i%2==1: n=n+i else: n=n-i print(n)
三位水仙花数
描述
"水仙花数"是指一个三位整数,其各位数字的3次方和等于该数本身。
例如:ABC是一个"3位水仙花数",则:A的3次方+B的3次方+C的3次方 = ABC。
请按照从小到大的顺序输出所有的3位水仙花数,请用"逗号"分隔输出结果。
输入输出示例
输出仅表示格式,不表示对错。
| 输入 | 输出 | |
| 示例 1 |
|
|
import time as t
s=""
dur=t.perf_counter()
for a in range(1,10):
for b in range(0,10):
for c in range(0, 10):
if a**3+b**3+c**3==100*a+10*b+c:
s=s+str(a)+str(b)+str(c)+","
print(s[:-1])
print(t.perf_counter()-dur)
s=''
dur=t.perf_counter()
for i in range(101,1001):
n=str(i)#数字转字符串,或t='%d' %i
a,b,c=eval(n[0]),eval(n[1]),eval(n[2])#字符串转为数字
if pow(a,3)+pow(b,3)+pow(c,3)==i:
s=s+n+','
print(s[:-1])#去除最后一个逗号
print(t.perf_counter()-dur)
用户登录的三次机会
描述
给用户三次输入用户名和密码的机会,要求如下:
1)如输入第一行输入用户名为‘Kate’,第二行输入密码为‘666666’,输出‘登录成功!’,退出程序;
2)当一共有3次输入用户名或密码不正确输出“3次用户名或者密码均有误!退出程序。”。
输入输出示例
| 输入 | 输出 | |
| 示例 1 |
|
|
|
|
#方法1(自己) a=input() b=input() n=0 while a!="Kate" or b!="666666": n=n+1 if n<3: a=input() b=input() else: print("3次用户名或者密码均有误!退出程序。") break else: print('登录成功!') #方法2 for i in range(3): name = input() pwd = input() if name == 'Kate' and pwd == '666666': print('登录成功!') break else: print('3次用户名或者密码均有误!退出程序。') #方法3 for i in range(3): accountNumber = input() password = input() if accountNumber == "Kate" and password == "666666": print("登录成功!") break elif i == 2: print("3次用户名或者密码均有误!退出程序。")
浙公网安备 33010602011771号