1. 关于 eval() 函数的恰当用法?
eval() 函数的作用 -> https://fishc.com.cn/thread-216409-1-1.html
n = eval(input('请输入需要录入的人数:'))
这里 eval() 函数能够生效,是利用了 eval() 函数拥有 “去字符串引号” 的副作用,但并不能代替 int() 函数。
比如如果录入的人数是 3.2,那么代码并不会报错:
>>> n = eval(input('请输入需要录入的人数:'))
请输入需要录入的人数:3.2
>>> n
3.2
这就属于潜在隐患了,如果替换成 int() 函数,存在的问题将及时得以反馈:
>>> n = int(input('请输入需要录入的人数:'))
请输入需要录入的人数:3.2
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
n = int(input('请输入需要录入的人数:'))
ValueError: invalid literal for int() with base 10: '3.2'
2. range(n) 就会产生 0 ~ n 一共 n 个元素,所以没必要 for i in range(n+1),直接 for i in range(n) 即可。
3. 程序设计问题:
if score < 0 or score > 100: # 百分制,判断数据是否有效
print('请输入0到100之间的分值!成绩无效,程序退出!^-^')
break
输入无效,其实没必要退出,代码可以改成这样:
while score < 0 or score > 100: # 百分制,判断数据是否有效
score = float(input('请输入有效的考试成绩: '))
|