0

我的 Python 代码表现得很奇怪,我有两个选择,是和否。在那个是选择中,也可以输入 y,我使用 or 语句所做的那样。但唯一的问题是它只显示第一个 IF 语句选项。我不知道是怎么回事。这是我的代码和输出:

代码:

print("Je bent in een donkere grot en je gaat dood. Wil je dood?")
dieornot = input()
dieornot = dieornot.lower()
if dieornot == "ja" or "y":
    print("Je eet een koekje en gaat zomaar dood.")
elif dieornot == "n" or "nee":
    print("Pech, je gaat toch dood.")

输出:

Je bent in een donkere grot en je gaat dood. Wil je dood?
nee
Je eet een koekje en gaat zomaar dood.

抱歉,这是荷兰语,但你应该明白我的意思。对此的任何帮助都非常感谢。

谢谢。

4

3 回答 3

4

代替

if dieornot == "ja" or "y":

你要

if dieornot == "ja" or dieornot == "y":

更好的是,我会推荐:

if dieornot in ("ja", "y"):

因为这使得这个错误的可能性更小,而且更简洁。

于 2013-08-30T20:22:51.520 回答
2

适当的将是

 if dieornot == 'ja' or dieornot == 'y':

你的方式:x == y or z

将评估为(x==y) or z

你要(x==y) or (x==z)

于 2013-08-30T20:24:00.640 回答
2

您的代码失败是因为您的 if 语句分为两部分:

if (dieornot == "ja") 或 ("y")

第一部分(dieornot == "ja")是错误的。但第二部分(“y”)是真的,因为“y”不为空。您没有将“y”与任何东西进行比较,所以它只是假设您的意思是““y”存在吗?” 当然,作为一个常数,它确实存在。

前面提到的任何修复都将起作用。

于 2013-08-30T20:27:07.320 回答