马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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的问题解决了,谢谢大家!
除此之外还想要问一下大家,有没有方法可以判断用户输入的范围是否重叠?使用还没学到的知识也没关系,只是很好奇而已。
谢谢!
你可以直接在下面判断下范围对不对~不需要还没学到的知识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('你的分数输入范围不正确!请重新输入!')
|