鱼C论坛

 找回密码
 立即注册
查看: 894|回复: 13

[已解决]【python入门007课后作业】关于成绩分类时的一些小问题

[复制链接]
发表于 2020-5-27 17:15:00 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 冰糖葫芦墩儿 于 2020-5-27 17:21 编辑
原题如下:按照 100 分制,90 分以上成绩为 A,80 到 90 为 B,60 到 80 为 C,60 以下为 D,写一个程序,当用户输入分数,自动转换为ABCD 的形式打印。

第一次写的是这样的:
print("___________鱼饼牌成绩等级转换器欢迎您。__________\n如要结束程序请输入0000.")
score = int(input("请输入分数:"))

while 1:
    if score >= 90:
        print("A")
    elif 80 < score < 90:
        print("B")
    elif 60 < score <= 80:
        print("C")
    elif score == 0000:
        print("程序结束,感谢使用。")
        break
    else:
        print("D")
    score = int(input("请输入分数:"))
但是上班实在没事做,就又在基础上改了一下。
这个版本是想要让用户自己定义范围,学生数量。学生数量都用完的话就程序结束。
但是有点问题出现了:
print("__________欢迎使用鱼饼成绩转换器!__________\n__________请按以下提示输入需要的成绩分类。__________")

a = int(input("A类成绩需大于等于:"))
b = int(input("B类成绩需小于:"))
c = int(input("B类成绩需大于等于:"))
d = int(input("C类成绩需小于:"))
e = int(input("C类成绩需大于等于:"))
print(e, "分以下的分数将被定义为D")

student = int(input("请输入学生数量:"))
i = student

while student <= 0:
    print("请输入0以上的阿拉伯数字。")
    student = int(input("请重新输入学生数量:"))

score = int(input("现在请依次输入分数(一次只可输入一个):"))
while student > 0:
#这个地方有问题,因为比规定的学生数量要多1次,不知道为什么,明明规定了大于0......
    student -= 1
    if score >= a:
        print("A")
    elif c <= score < b:
        print("B")
    elif e <= score < d:
        print("C")
    else:
        print("D")
    score = int(input("请输入学生分数:"))

print(i, "名学生分数已转换完。感谢您的使用。")
while的问题解决了,谢谢大家!
除此之外还想要问一下大家,有没有方法可以判断用户输入的范围是否重叠?使用还没学到的知识也没关系,只是很好奇而已。
谢谢!
最佳答案
2020-5-27 17:25:46

你可以直接在下面判断下范围对不对~不需要还没学到的知识
while True:
    a = int(input("A类成绩需大于等于:"))
    b = int(input("B类成绩需小于:"))
    c = int(input("B类成绩需大于等于:"))
    d = int(input("C类成绩需小于:"))
    e = int(input("C类成绩需大于等于:"))
    if a >= b >= c >= d >= e:
        break
    print('你的分数输入范围不正确!请重新输入!')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-27 17:18:10 | 显示全部楼层
print("__________欢迎使用鱼饼成绩转换器!__________\n__________请按以下提示输入需要的成绩分类。__________")

a = int(input("A类成绩需大于等于:"))
b = int(input("B类成绩需小于:"))
c = int(input("B类成绩需大于等于:"))
d = int(input("C类成绩需小于:"))
e = int(input("C类成绩需大于等于:"))
print(e, "分以下的分数将被定义为D")

student = int(input("请输入学生数量:"))
i = student

while student <= 0:
    print("请输入0以上的阿拉伯数字。")
    student = int(input("请重新输入学生数量:"))

#score = int(input("现在请依次输入分数(一次只可输入一个):"))
while student:
    score = int(input("请输入学生分数:"))
    student -= 1
    if score >= a:
        print("A")
    elif c <= score < b:
        print("B")
    elif e <= score < d:
        print("C")
    else:
        print("D")
    

print(i, "名学生分数已转换完。感谢您的使用。")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-27 17:19:43 | 显示全部楼层

哦哦......是哈,我真傻......谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-27 17:20:25 | 显示全部楼层
本帖最后由 青出于蓝 于 2020-5-27 17:21 编辑

哦哦,看错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-27 17:20:35 | 显示全部楼层
这个地方有问题,因为比规定的学生数量要多1次,不知道为什么,明明规定了大于0......

因为你 while student > 0 的循环外面还输入了一次学生成绩所以多一个,正确代码:
print("__________欢迎使用鱼饼成绩转换器!__________\n__________请按以下提示输入需要的成绩分类。__________")

a = int(input("A类成绩需大于等于:"))
b = int(input("B类成绩需小于:"))
c = int(input("B类成绩需大于等于:"))
d = int(input("C类成绩需小于:"))
e = int(input("C类成绩需大于等于:"))
print(e, "分以下的分数将被定义为D")

student = int(input("请输入学生数量:"))
i = student

while student <= 0:
    print("请输入0以上的阿拉伯数字。")
    student = int(input("请重新输入学生数量:"))

print("现在请依次输入分数(一次只可输入一个):")
while student > 0:
# 这个地方有问题,因为比规定的学生数量要多1次,不知道为什么,明明规定了大于0.....
    score = int(input())
    student -= 1
    if score >= a:
        print("A")
    elif c <= score < b:
        print("B")
    elif e <= score < d:
        print("C")
    else:
        print("D")
    print('请输入学生分数:',end='')

print(i, "名学生分数已转换完。感谢您的使用。")

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-27 17:22:43 | 显示全部楼层
Twilight6 发表于 2020-5-27 17:20
因为你 while student > 0 的循环外面还输入了一次学生成绩所以多一个,正确代码:

嗯!谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-27 17:25:38 | 显示全部楼层

请问这个
除此之外还想要问一下大家,有没有方法可以判断用户输入的范围是否重叠?使用还没学到的知识也没关系,只是很好奇而已。
您知道吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-27 17:25:46 | 显示全部楼层    本楼为最佳答案   

你可以直接在下面判断下范围对不对~不需要还没学到的知识
while True:
    a = int(input("A类成绩需大于等于:"))
    b = int(input("B类成绩需小于:"))
    c = int(input("B类成绩需大于等于:"))
    d = int(input("C类成绩需小于:"))
    e = int(input("C类成绩需大于等于:"))
    if a >= b >= c >= d >= e:
        break
    print('你的分数输入范围不正确!请重新输入!')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-27 17:27:18 | 显示全部楼层
Twilight6 发表于 2020-5-27 17:25
你可以直接在下面判断下范围对不对~不需要还没学到的知识

好棒!!谢谢您!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-27 17:27:59 | 显示全部楼层
while True:
    a = int(input("A类成绩需大于等于:"))
    b = int(input("B类成绩需小于:"))
    if a >= b:
        c = int(input("B类成绩需大于等于:"))
        if b >= c:
            d = int(input("C类成绩需小于:"))
            if c >= d:
                e = int(input("C类成绩需大于等于:"))
                break
    print('你的分数输入范围不正确!请重新输入!')
print(e, "分以下的分数将被定义为D")
这样更好 不要全部输入完 才判断
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-5-27 17:28:21 | 显示全部楼层
如下:
print("__________欢迎使用鱼饼成绩转换器!__________\n__________请按以下提示输入需要的成绩分类。__________")

a = int(input("A类成绩需大于等于:"))
b = int(input("B类成绩需小于:"))
c = int(input("B类成绩需大于等于:"))
d = int(input("C类成绩需小于:"))
e = int(input("C类成绩需大于等于:"))
print(e, "分以下的分数将被定义为D")

student = int(input("请输入学生数量:"))
i = student

while student <= 0:
    print("请输入0以上的阿拉伯数字。")
    student = int(input("请重新输入学生数量:"))

while student > 0:
   
    score = int(input("现在请依次输入分数(一次只可输入一个):"))
    student -= 1
    if score >= a:
         print("A")
    elif c <= score < b:
        print("B")
    elif e <= score < d:
        print("C")
    else:
        print("D")
   

print(i, "名学生分数已转换完。感谢您的使用。")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-27 17:31:59 | 显示全部楼层
Twilight6 发表于 2020-5-27 17:27
这样更好 不要全部输入完 才判断

谢谢您提供的思路!很棒。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-27 17:33:03 | 显示全部楼层
冰糖葫芦墩儿 发表于 2020-5-27 17:31
谢谢您提供的思路!很棒。



                               
登录/注册后可看大图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-29 16:58:12 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-21 00:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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