鱼C论坛

 找回密码
 立即注册
查看: 3146|回复: 8

[作品展示] 鲁教版初中信息技术教材中的成绩等级分数的有效性控制

[复制链接]
发表于 2022-12-2 22:49:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-12-2 22:54:25 | 显示全部楼层
希望大家批评指正,谢谢了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-2 22:58:16 | 显示全部楼层

range()函数步长数轴图示

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

range()函数步长数轴图示
range()函数步长数轴图示.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-2 23:05:46 | 显示全部楼层
总有学生提出各种问题,明明有提示,非得另辟思路试一下,不按提示怎么样……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-2 23:14:18 | 显示全部楼层
新人,没看发帖要求,下次注意了,抱歉
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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('请输入有效的考试成绩: '))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

 楼主| 发表于 2022-12-3 06:58:56 | 显示全部楼层
谢谢指正,我改进代码!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 19:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表