当我把3个if语句打印出来的时候

2024-05-21 01:31:53 发布

您现在位置:Python中文网/ 问答频道 /正文

下面使用的变量我没有显示初始化,但你可以自己编。它做的正是我想要它做的,但是它打印出所有的if,而不仅仅是一个if

m = input()
if m == 1:
    print(l)
    time.sleep(1)
else:
    print(cost + f + baws)
    boss_he = boss_he - 20
    print("%" + str(boss_he) + " boss health left")

if m == 2:
    time.sleep(1)
else:
    print(cost + baws)
    boss_he = boss_he - 25
    print('%' + str(boss_he) + ' boss health left')
if m == 3:
    time.sleep(1)
else:
    print(h)
    wiz_he = wiz_he + 15
    print('%' + str(wiz_he) + " of you health left")

每当我运行这个代码时,它都会执行其他情况,为什么?你知道吗

如果每个人打印一个1,或一个1,或一个3,如果我把这个数字,它将打印12和3,而不是如果只是打印1(如果我要求它打印1)。我的代码有问题吗?你知道吗


Tags: 代码inputiftimesleepleftelsehe
2条回答

你的input()永远不会对你的if状态进行评估,因为你把input()作为str。因此,所有的else都被触发。相反,可以强制转换intm = int(input())。另外,您的逻辑也有缺陷,因为如果m不是123,那么所有else语句都将被输入。你知道吗

为什么不用if,elif,elif和else来代替if多次呢?程序将您的输入确定为字符串,使其像m=int(input())一样将您的输入转换为整数

相关问题 更多 >