禁止用水灭火 发表于 2023-11-2 23:01:39

求大佬看看为什么这个代码是错的,跑不起来

while score=="e":
score = input("请输入你的分数:")
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==e"跑不通报错误?还有“while x=0=e”也是错的,不能设两个条件的吗?我在后面加 "if score="e" 也跑不通呢请问?
                                                                                                                                                             break

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("请输入你的分数:")
为什么上面的“while score!="e"”,等号前面要加“!”,不加就报错误? 麻烦各位大佬帮忙解读一下

Mike_python小 发表于 2023-11-2 23:01:59

问题1:

对于该代码,一旦用户输入的分数为 "e",则程序将会停止运行。此时,代码会直接跳过所有的 if 条件语句,不输出任何结果。因此,可以考虑使用 while 循环来实现多次输入。

修改代码如下:


score = input("请输入你的分数:")
while score != 'e':
    score = int(score)
    if score < 60:
      print("D")
    elif 60 <= score < 80:
      print("C")
    elif 80 <= score < 90:
      print("B")
    elif 90 <= score < 100:
      print("A")
    elif score == 100:
      print("S")
    score = input("请输入你的分数:")


问题2:

在 Python 中,等号用于赋值,而不是判断相等。因此,在判断条件中应该使用双等号(==)来进行值的比较。由于 "e" 是一个字符串,因此需要将输入值也转换成字符串类型。

修改代码如下:


score = input("请输入你的分数:")
while score == 'e':
    score = input("请输入你的分数:")
score = int(score)
if score < 60:
    print("D")
elif 60 <= score < 80:
    print("C")
elif 80 <= score < 90:
    print("B")
elif 90 <= score < 100:
    print("A")
elif score == 100:
    print("S")


希望这些解释能够帮到你!如果还有其他问题,请随时提问。

球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}

isdkz 发表于 2023-11-2 23:02:16

在你的代码中,有几个问题导致它不能正常运行。

首先,你在while循环的条件中使用了"score == 'e'",这是一个错误。因为你在循环之前并没有给score赋初值,所以score不可能等于'e'。你应该将while循环的条件改为"score != 'e'",表示只要score不等于'e',就继续循环。

其次,你在while循环内部将score转换为整数,但是在循环的开始处并没有将输入的字符串转换为整数。你应该在while循环之前将输入的字符串转换为整数,可以使用int()函数来实现。

最后,你在循环的最后一行使用了"score = input("请输入你的分数:")",这样会导致每次循环结束后重新要求用户输入分数,而不是在循环内部根据用户输入的分数进行判断。你应该将这行代码移动到while循环内部的最后一行,这样才能在每次循环结束后继续询问用户输入分数。

下面是修改后的代码:

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

这样修改后的代码应该能够正确运行了。希望能对你有帮助!
页: [1]
查看完整版本: 求大佬看看为什么这个代码是错的,跑不起来