h59361105 发表于 2022-4-17 14:45:50

str类型无法与int类型比较

python第006讲,改进我们的小游戏,课后作业

https://fishc.com.cn/forum.php?mod=viewthread&tid=145252&extra=page%3D1%26filter%3Dtypeid%26typeid%3D760

我把score = int(score) 放到 while score != “e”:上面,输入第二次分数之后就报错,(正确代码是放到while 下面),没有想明白,请大神们解惑,十分感谢
score = input("请输入你的分数:")

score = int(score)

while score != 'e':

    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("请输入你的分数:")



运行错误:


======= RESTART: C:\Users\huang\Desktop\kaoshidaima.py =======
请输入你的分数:68
C
请输入你的分数:55
Traceback (most recent call last):
File "C:\Users\huang\Desktop\kaoshidaima.py", line 11, in <module>
    if score < 60:
TypeError: '<' not supported between instances of 'str' and 'int'

python爱好者. 发表于 2022-4-17 14:46:42

最后再加一句:
score = int(score)

python爱好者. 发表于 2022-4-17 14:47:16

python爱好者. 发表于 2022-4-17 14:46
最后再加一句:

别忘了缩进实在 while 里哦

python爱好者. 发表于 2022-4-17 15:01:24

python爱好者. 发表于 2022-4-17 14:46
最后再加一句:

因为你前面第一次进入循环的时候这个变量是数字类型,
而从这以后的循环却都不是数字类型,所以需要转换

超级无敌磊果果 发表于 2022-4-17 18:26:03

1. 首先报错的位置不是在while里面的比较,而是在 if条件判断
2. input函数返回值是一个字符串
3. 字符串和数字是不可以比较大小的

坚持自律 发表于 2022-4-18 22:09:05

本帖最后由 坚持自律 于 2022-4-18 22:23 编辑

第一次的时候,刚进和循环,没有走到最下面的input,第二次的时候,因为你没有转换类型,输入的是字符类型,所以会出错。
两种办法,一种是把循环内部的input,转换成int类型。
第二种,直接把判断条件改为True,while上面的内容放到循环里面
页: [1]
查看完整版本: str类型无法与int类型比较