测验4
选择题
1.哪个选项不符合上述程序空白处的语法要求?{1;2;3;4;5}
for var in ___:
print(var)
2.哪个选项是以上程序的输出结果?0 1
for i in range(0,2):
print(i)
3.哪个选项给出了上述程序的输出次数?14
k=10000
while k>1:
print(k)
k=k/2
4.哪个选项是程序的三种基本结构?顺序结构,循环结构,分支结构
5.哪个选项关于循环结构的描述是错误的?死循环无法退出,没有任何作用
6.关于Python语句P=-P,哪个选项的描述是正确的?给P赋值为它的负数
7.哪个选项是用来判断当前Python语句在分支结构中?缩进
8.哪个选项是下面代码的执行结果?PYHON
for s in "PYTHON":
if s=="T":
continue
print(s,end="")
9.哪个选项是random库中用于生成随机小数的函数?random()
10.关于try-except,哪个选项的描述是错误的?使用了异常处理,程序将不会再出错
四位玫瑰数
描述
四位玫瑰数是4位数的自幂数。自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。
例如:当n为3时,有1^3 + 5^3 + 3^3 = 153,153即是n为3时的一个自幂数,3位数的自幂数被称为水仙花数。
请输出所有4位数的四位玫瑰数,按照从小到大顺序,每个数字一行。
def fun(n):
max = pow(10, n)
ls = []
for i in range(1, max):
t = str(i)
l = len(t)
sum = 0
for j in range(l):
sum += pow(int(t[j]), n)
if sum == i:
ls.append(i)
return ls
ls = fun(4)
for i in ls:
if i >= 1000:
print(i)
100以内素数之和
描述
求100以内所有素数之和并输出。
素数指从大于1,且仅能被1和自己整除的整数。
提示:可以逐一判断100以内每个数是否为素数,然后求和。
def fun(num):
sum = 0
for num in range(2, num):
n = int(pow(num, 0.5)) + 1
for i in range(2, n):
if num % i == 0:
break
else:
sum += num
return sum
sum = fun(100)
print(sum)
练习4
实例5:身体质量指数BMI
BMI :Body Mass Index 国际上常用的衡量人体肥胖和健康程度重要标准,主要用于统计分析
定义:BMI = 体重 (kg) /身高2(m2)
获取用户输入的体重和身高值,计算并给出国际和国内的 BMI 分类
要求如下:
(1) 混合计算并给出国际和国内的 BMI 分类;
(2) 使用input()获得测试用例输入时,不要增加提示字符串。
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))
实例6:圆周率的计算
求解圆周率可以采用蒙特卡罗方法,在一个正方形中撒点,根据在1/4圆内点的数量占总撒点数的比例计算圆周率值。
请以123作为随机数种子,获得用户输入的撒点数量,编写程序输出圆周率的值,保留小数点后6位。
from random import random, seed
DARTS = eval(input())
seed(123)
hits = 0.0
for i in range(DARTS):
x, y = random(), random()
dist = pow(x ** 2 + y ** 2, 0.5)
if dist <= 1.0:
hits = hits + 1
pi = 4 * (hits/DARTS)
print("{:.6f}".format(pi))
整数的加减和
编写程序计算如下数列的值:
1-2+3-4…966
其中,所有数字为整数,从1开始递增,奇数为正,偶数为负
s = 0
count = 1
while count <=966:
if count%2 == 0:
s -= count
else:
s += count
count += 1
print(s)
三位水仙花数
“水仙花数"是指一个三位整数,其各位数字的3次方和等于该数本身。
例如:ABC是一个"3位水仙花数”,则:A的3次方+B的3次方+C的3次方 = ABC。
请按照从小到大的顺序输出所有的3位水仙花数,请用"逗号"分隔输出结果。
s = ""
for i in range(100, 1000):
t = str(i)
if pow(eval(t[0]),3) + pow(eval(t[1]),3) + pow(eval(t[2]),3) == i :
s += "{},".format(i)
print(s[:-1])
用户登录的三次机会
给用户三次输入用户名和密码的机会,要求如下:
1)如输入第一行输入用户名为‘Kate’,第二行输入密码为‘666666’,输出‘登录成功!’,退出程序;
2)当一共有3次输入用户名或密码不正确输出“3次用户名或者密码均有误!退出程序。”。
count = 0
while count < 3:
name = input()
password = input()
if name == 'Kate'and password == '666666':
print("登录成功!")
break
else:
count += 1
if count == 3:
print("3次用户名或者密码均有误!退出程序。")