嘿,这里是目录!
- 练习网址
- 测验4
- 单项选择题
- 1. 哪个选项不符合上述程序空白处的语法要求?A
- 2. 哪个选项是以上程序的输出结果?D
- 3. 给出了上述程序的输出次数?A
- 4. 哪个选项是程序的三种基本结构?C
- 5. 哪个选项关于循环结构的描述是错误的?D
- 6. 关于Python语句P=-P,哪个选项的描述是正确的?A
- 7. 哪个选项是用来判断当前Python语句在分支结构中?B
- 8. 哪个选项是下面代码的执行结果?B
- 9. 哪个选项是random库中用于生成随机小数的函数?C
- 10. 关于try-except,哪个选项的描述是错误的?A
- 程序设计题
- 练习4
练习网址
https://python123.io/index
测验4
单项选择题
1. 哪个选项不符合上述程序空白处的语法要求?A
for var in ____:
print var
A. {1;2;3;4;5}
B. (1,2,3)
C. range(0,10)
D. “Hello”
2. 哪个选项是以上程序的输出结果?D
for i in range(0,2):
print(i)
A. 1
B. 0 1 2
C. 1 2
D. 0 1
3. 给出了上述程序的输出次数?A
k = 10000
while k > 1:
print(k)
k = k/2
A. 14
B. 13
C. 1000
D. 15
4. 哪个选项是程序的三种基本结构?C
A. 过程结构,循环结构,分支结构
B. 过程结构,对象结构,函数结构
C. 顺序结构,循环结构,分支结构
D. 顺序结构,跳转结构,循环结构
5. 哪个选项关于循环结构的描述是错误的?D
A. 循环是程序根据条件判断结果向后反复执行的一种运行方式
B. 循环是一种程序的基本控制结构
C. 条件循环和遍历循环结构都是基本的循环结构
D. 死循环无法退出,没有任何作用
6. 关于Python语句P=-P,哪个选项的描述是正确的?A
A. 给P赋值为它的负数
B. P等于它的负数
C. P=0
D. P的绝对值
7. 哪个选项是用来判断当前Python语句在分支结构中?B
A. 冒号
B. 缩进
C. 引号
D. 大括号
8. 哪个选项是下面代码的执行结果?B
for s in "PYTHON":
if s == "T":
continue
print(s,end="")
A. PY
B. PYHON
C. PYTHON
D. TT
9. 哪个选项是random库中用于生成随机小数的函数?C
A. getrandbits()
B. randint()
C. random()
D. randrange()
解析:randint()、getrandbits()、randrange()都产生随机整数,random()产生0到1之间的随机小数。
10. 关于try-except,哪个选项的描述是错误的?A
A. 使用了异常处理,程序将不会再出错
B. 表达了一种分支结构的特点
C. NameError是一种异常类型
D. 用于对程序的异常进行捕捉和处理
程序设计题
1. 四位玫瑰数
-
描述
四位玫瑰数是4位数的自幂数。自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。
例如:当n为3时,有13 + 53 + 33 = 153,153即是n为3时的一个自幂数,3位数的自幂数被称为水仙花数。
请输出所有4位数的四位玫瑰数,按照从小到大顺序,每个数字一行。 -
输入输出示例
输出仅表示格式,不表示对错。
输入 | 输出 | |
---|---|---|
示例 1 | 无 | 1111(这是示例,不是真实输出) 2222(这是示例,不是真实输出) 3333(这是示例,不是真实输出) |
- 参考代码1
for i in range(1000,10000):
a = i % 10#个位
b = i //10 % 10#十位
c = i //100 % 10#百位
d = i //1000#千位
if (a ** 4 + b ** 4 + c ** 4 + d ** 4) == i:
print(i)
i = i + 1
- 参考代码2
s = ""
for i in range(1000, 10000):
t = str(i)
if pow(eval(t[0]),4) + pow(eval(t[1]),4) + pow(eval(t[2]),4) + pow(eval(t[3]),4) == i :
print(i)
2. 100以内素数之和
-
描述
求100以内所有素数之和并输出。
素数指从大于1,且仅能被1和自己整除的整数。
提示:可以逐一判断100以内每个数是否为素数,然后求和。 -
输入格式
该题目没有输入 -
输入输出示例
输入 | 输出 | |
---|---|---|
示例 1 | 无 | 1234(这是示例,不是真实输出) |
- 参考代码
#Prime
def is_prime(n):
for i in range(2,n):
if n%i == 0:
return False
return True
sum = 0
for i in range(2,100):
if is_prime(i):
sum += i
print(sum)
练习4
1. 实例5:身体质量指数BMI
- 描述
BMI :Body Mass Index 国际上常用的衡量人体肥胖和健康程度重要标准,主要用于统计分析
定义:BMI = 体重 (kg) /身高2(m2)
获取用户输入的体重和身高值,计算并给出国际和国内的 BMI 分类
要求如下:
(1) 混合计算并给出国际和国内的 BMI 分类;
(2) 使用input()获得测试用例输入时,不要增加提示字符串。
- 输入输出示例
输入 | 输出 | |
---|---|---|
示例 1 | 1.68,41 | BMI数值为:14.53 BMI指标为:国际’偏瘦’,国内’偏瘦’ |
示例 2 | 1.72,80 | 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 = "偏胖", "肥胖"
else:
who, nat = "肥胖", "肥胖"
print("BMI指标为:国际'{0}',国内'{1}'".format(who, nat))#注意看这里的用法嗷!!!
2. 实例6:圆周率的计算
- 描述
求解圆周率可以采用蒙特卡罗方法,在一个正方形中撒点,根据在1/4圆内点的数量占总撒点数的比例计算圆周率值。
请以123作为随机数种子,获得用户输入的撒点数量,编写程序输出圆周率的值,保留小数点后6位。
- 输入输出示例
输入 | 输出 | |
---|---|---|
示例 1 | 1024 | 3.218750 |
- 参考代码
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 += 1
pi = 4 * (hits/DARTS)
print("{:.6f}".format(pi))
3. 整数的加减和
-
描述
编写程序计算如下数列的值:
1-2+3-4…966
其中,所有数字为整数,从1开始递增,奇数为正,偶数为负。 -
输入格式
该题目没有输入。 -
输入输出示例
输入 | 输出 | |
---|---|---|
示例 1 | 无 | 111(仅表示输出样式,不是输出结果) |
- 参考代码1
a= -1 * (966 / 2)
print("{:.0f}".format(a))
- 参考代码2
s = 0
count = 1
while count <=966:
if count % 2 == 0:
s -= count
else:
s += count
count += 1
print(s)
4. 三位水仙花数
-
描述
“水仙花数"是指一个三位整数,其各位数字的3次方和等于该数本身。
例如:ABC是一个"3位水仙花数”,则:A的3次方+B的3次方+C的3次方 = ABC。
请按照从小到大的顺序输出所有的3位水仙花数,请用"逗号"分隔输出结果。 -
输入输出示例
输出仅表示格式,不表示对错。(注意看哦:不输出最后一个逗号😀)
输入 | 输出 | |
---|---|---|
示例 1 | 无 | 111,222(仅表示输出样式,不是输出结果) |
- 参考代码1
(采用了s[:-1]方式不输出最后一个逗号😀)
s = ""
i = 100
while i <= 999:
c = i % 10#取最低位
b = i // 10 %10#取中间一位
a = i // 100 %10#取最高位
if pow(a,3) + pow(b,3) + pow(c,3) == i:
s += "{},".format(i)
i += 1
print(s[:-1])
- 参考代码2
(采用了s[:-1]方式不输出最后一个逗号😀)
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])
5. 用户登录的三次机会
-
描述
给用户三次输入用户名和密码的机会,要求如下:
1)如输入第一行输入用户名为‘Kate’,第二行输入密码为‘666666’,输出‘登录成功!’,退出程序;
2)当一共有3次输入用户名或密码不正确输出“3次用户名或者密码均有误!退出程序。”。 -
输入输出示例
输入 | 输出 | |
---|---|---|
示例 1 | Kate 666666 | 登录成功! |
kate 123 alice 456 john 111111 | 3次用户名或者密码均有误!退出程序。 |
- 参考代码1
i = 1
while i <= 3:
name = input()#写到循环内部,不止接受这一次输入
password = input()#写到循环内部,不止接受这一次输入
if name == 'Kate':
if password == '666666':
print("登录成功!")
break
else:
i += 1
if i == 4:
print("3次用户名或者密码均有误!退出程序。")
- 参考代码2
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次用户名或者密码均有误!退出程序。")