Python如果是elif代码

时间:2013-09-01 15:01:53

标签: python if-statement

dummy = 10
os.system("cls")
x = input("""You use your attack by chossing a attack,for now you have 3 attacks.
Choose one:
1)punch 3dmg
2)use knife 4dmg
3)use pistol 6dmg
""")
if x == 1:
    dummy = dummy-3
    print"Dummies life:"+str(dummy)
elif x == 2:
    dummy = dummy-4
    print"Dummies life:"+str(dummy)
elif x == 3:
    dummy = dummy-6
    print"Dummies life:"+str(dummy)

x=raw_input("""Attack:
1)punch 3dmg
2)use knife 4dmg
3)use pistol 6dmg
""")

if x == 1:
    dummy = dummy-3
    print"Dummies life:"+str(dummy)
elif x == 2:
    dummy = dummy-4
    print"Dummies life:"+str(dummy)
elif x == 3:
    dummy = dummy-6
    print"Dummies life:"+str(dummy)
if dummy <= 0:
    os.system("cls")
elif dummy >= 0:
    os.system("cls")

    x=raw_input("Finish him write 1,2,3:")
#this is always printing help me#
    if x==1:
        dummy=dymmy-3
    elif x==2:
        dummy=dummy-4
    elif x==3:
        dummy=dummy-6
print"Good job!!!"

为什么总是打印最后一个if elif代码?
抱歉,如果代码的其他部分可能出现错误,我不知道这些巨大的代码。

6 个答案:

答案 0 :(得分:2)

raw_input()函数从输入(即用户)读取一行,并通过删除尾随换行符返回一个字符串。

所以int == str总是假的。

答案 1 :(得分:1)

我无法回答这个问题,但这太可怕了。我不太确定你在写什么。如果我打了两次,我就会得到你的第一个条件,如果我在破坏时打破了10分,我会得到另一个。似乎工作。

可能想要在最后一个条件下将dummy = dymmy-3更改为dummy = dummy-3。

此外,请将您的评论置于上方或与其即将执行的代码内联。

答案 2 :(得分:1)

这是因为input()函数接受字符串输入。

使用int()函数

将输入转换为int

OR

if x == '1':
    # your stuffs

elif x == '2':
   # your stuffs

问题是你的最后一个条件:elif >=0因为无论我输入哪个整数,它总是大于0不是吗?因此,它正在调用最后一个条件。正确地检查并应用您的逻辑。

答案 3 :(得分:0)

这是因为你需要使用raw_input来获取第二个if / elif set的值,当你想要一个整数时,它会返回一个字符串。改为使用输入(就像你在第一个if / elif集上所做的那样)将返回一个整数,可以将其与你尝试的整数进行比较。

答案 4 :(得分:0)

首先,即使游戏有效,你的游戏也没有多大意义。

例如,如果有人输入第一个选项的3倍怎么办?假​​人仍然活着,你会给他一个“好工作”

它是否必须完全玩3次游戏?他可以用2-4次游戏赢得它,具体取决于选择。如果不是为什么你不使用while循环直到假人死了?

正如上面的其他人所说,问题是raw_input将所有东西都分配给一个字符串,所以输入为整数,被指定为字符串,并且if条件不能被检查。

但是你可以在python中使用你的假设知识水平,使用while循环的1/3代码。

答案 5 :(得分:0)

对于帮助人员而言:)。我犯了一个愚蠢的错误,我只需要改变      的raw_input 成      输入 对不起,我现在知道了更多的我当然是:(