可乐不冰怎么喝 发表于 2021-9-29 18:56:02

请问为什么90<=temp<100这个区间不能打印?

请问为什么90<=temp<100这个区间不能打印?
原题目:编写一个成绩评级程序,要求用户输入分数,程序返回对应的评级,让程序可以不断接收输入,直至用户输入小写字母 e 结束程序。
分数 < 60,D
60 <= 分数 < 80,C
80 <= 分数 < 90,B
90 <= 分数 < 100,A
分数 == 100,S

我的代码
while True:
    temp = input("请输入成绩:")
    if temp == '100':
      print('S')
    elif '90' <= temp < '100':
      print('A')
    elif '80' <= temp < '90':
      print('B')
    elif '60' <= temp < '80':
      print('C')
    elif temp < '60':
      print('D')
    else:
      if 'e' in temp:
            break

冬雪雪冬 发表于 2021-9-29 19:03:13

对于字符串的大小判定是先看第一个,如果能分出大小,就不再判定第二个。
'9'是大于'1'的,所以'90' <= temp < '100'永远不成立。
把它转换成整数再判定就正常了。

可乐不冰怎么喝 发表于 2021-9-29 19:07:58

冬雪雪冬 发表于 2021-9-29 19:03
对于字符串的大小判定是先看第一个,如果能分出大小,就不再判定第二个。
'9'是大于'1'的,所以'90'

感谢大佬,明白了{:5_106:}

快乐星球 发表于 2021-9-29 20:49:06

不应该是int型的吗 怎么都是字符型

可乐不冰怎么喝 发表于 2021-9-29 20:57:37

快乐星球 发表于 2021-9-29 20:49
不应该是int型的吗 怎么都是字符型

为了最后e可以被判断,所以我就都改成了字符串{:5_104:}
页: [1]
查看完整版本: 请问为什么90<=temp<100这个区间不能打印?