鱼C论坛

 找回密码
 立即注册
查看: 1006|回复: 2

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

[复制链接]
发表于 2023-11-2 23:01:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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"”,等号前面要加“!”,不加就报错误? 麻烦各位大佬帮忙解读一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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")
希望这些解释能够帮到你!如果还有其他问题,请随时提问。

球一个最佳答案谢谢啦!这对我非常重要!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

这样修改后的代码应该能够正确运行了。希望能对你有帮助!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-7-1 22:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表