初学者python代码问题
求教第六讲课后题最后一题:"""
0. 编写一个成绩评级程序,要求用户输入分数,程序返回对应的评级。
分数 < 60,D
60 <= 分数 < 80,C
80 <= 分数 < 90,B
90 <= 分数 < 100,A
分数 == 100,S
程序可以不断接收输入,直至用户输入小写字母 e 结束程序
"""
答案为:
score = input("请输入你的分数:")
while score != 'e':
score = int(score)
if score < 60:
print("D")
if 60 <= score < 80:
print("C")
if 80 <= score < 90:
print("B")
if 90 <= score < 100:
print("A")
if score == 100:
print("S")
score = input("请输入你的分数:")
但有个问题:
为什么我在尝试将 score = int(score) 加在while 前时,输入大于60的数字就会报错?
本帖最后由 Twilight6 于 2020-7-2 17:50 编辑
int 函数是将其他类型的值转为整型
input 函数是接受用户输入,并将其值转化为字符串
字符串的 '1' 和整型的 1 是不能进行比较的~ 当你把 score = int(score) 移动到循环前面
会导致你后续input的字符串没办法转为整型,导致后来你的 int 和 str 字符串进行比较报错
因为两种不同类型的值不能进行比较,也就是字符串和 整数不能直接进行逻辑比较
你修改后的程序只有在第一次运行的时候会执行 score = int(score)
然后就会进入while循环,在循环中不再包括score = int(score)
这样在第二次输入比较的时候就会出现score是str字符串类型,和60 int整数类型比较
这时候会有TypeError异常 感谢楼上两位大佬指教{:5_106:}
页:
[1]