lywxc168 发表于 2022-12-2 22:49:20

鲁教版初中信息技术教材中的成绩等级分数的有效性控制

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')

lywxc168 发表于 2022-12-2 22:54:25

希望大家批评指正,谢谢了!

lywxc168 发表于 2022-12-2 22:58:16

range()函数步长数轴图示

本帖最后由 lywxc168 于 2022-12-2 23:01 编辑

range()函数步长数轴图示

lywxc168 发表于 2022-12-2 23:05:46

总有学生提出各种问题,明明有提示,非得另辟思路试一下,不按提示怎么样……{:10_269:}

lywxc168 发表于 2022-12-2 23:14:18

新人,没看发帖要求,下次注意了,抱歉

lywxc168 发表于 2022-12-2 23:15:09

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')

lywxc168 发表于 2022-12-2 23:16:44

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')

小甲鱼 发表于 2022-12-3 00:41:41

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('请输入有效的考试成绩: '))

lywxc168 发表于 2022-12-3 06:58:56

谢谢指正,我改进代码!
页: [1]
查看完整版本: 鲁教版初中信息技术教材中的成绩等级分数的有效性控制