鲁教版初中信息技术教材中的成绩等级分数的有效性控制
65年的,今年领导让我上信息技术课程,Python 从零开始,先学再教,费老劲了……根据教材中的示例,我增加了内容,初学者的体验……大家见笑了,希望给出更好的代码!谢谢!n = eval(input('请输入需要录入的人数:'))
for i in range(n+1): # for 循环是遍历,和while 循环各有千秋
if i <= n:
score = eval(input('请输入考试成绩: '))
if score < 0 or score > 100: # 百分制,判断数据是否有效
print('请输入0到100之间的分值!成绩无效,程序退出!^-^')
break
else:
if score >= 85:# 如果条件表达式成立(为真)
print('A')
elif score >= 75:# 否则如果,再次判断,elif不能单独使用,需要配合if !!!
print('B')
elif score >= 60:
print('C')
else:
print('D')
score = 0# 初始化变量
while (score!=-1): # 循环条件
score = float(input('请输入0到100的考试成绩: '))
if score >100:
print('输入数据不在0到100的范围之内!程序结束^-^!!!')
break
elif score >= 85 and score <=100:# 如果条件表达式成立(为真)
print('A')
elif score >= 75:# 否则如果,再次判断,elif不能单独使用,需要配合if !!!
print('B')
elif score >= 60:
print('C')
elif 0 <= score <60:
print('D') 希望大家批评指正,谢谢了!
range()函数步长数轴图示
本帖最后由 lywxc168 于 2022-12-2 23:01 编辑range()函数步长数轴图示 总有学生提出各种问题,明明有提示,非得另辟思路试一下,不按提示怎么样……{:10_269:} 新人,没看发帖要求,下次注意了,抱歉 n = eval(input('请输入需要录入的人数:'))
for i in range(n+1): # for 循环是遍历,和while 循环各有千秋
if i <= n:
score = eval(input('请输入考试成绩: '))
if score < 0 or score > 100: # 百分制,判断数据是否有效
print('请输入0到100之间的分值!成绩无效,程序退出!^-^')
break
else:
if score >= 85:# 如果条件表达式成立(为真)
print('A')
elif score >= 75:# 否则如果,再次判断,elif不能单独使用,需要配合if !!!
print('B')
elif score >= 60:
print('C')
else:
print('D') score = 0# 初始化变量
while (score != -1): # 循环条件
score = float(input('请输入0到100的考试成绩: '))
if score >100:
print('输入数据不在0到100的范围之内!程序结束^-^!!!')
break
elif score >= 85 and score <=100:# 如果条件表达式成立(为真)
print('A')
elif score >= 75:# 否则如果,再次判断,elif不能单独使用,需要配合if !!!
print('B')
elif score >= 60:
print('C')
elif 0 <= score <60:
print('D')
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('请输入有效的考试成绩: '))
谢谢指正,我改进代码!
页:
[1]