我的python'if'语句导致语法错误

My python 'if' statement is causing a syntax error

提问人:Morten 提问时间:4/17/2023 最后编辑:John KugelmanMorten 更新时间:4/17/2023 访问量:174

问:

对不起,我知道这些很常见,但我在任何快速文章中都找不到任何答案。

我的代码开始一个while:True循环,然后是输入,然后是if语句,是elif,然后是else。if 和 elif 语句在完成后都会中断循环,else 会让您再次输入,直到您满足其他两个语句之一。

sleep(1)
print("Did lunch start before or after 12:00pm?")
while True:
    lunch_time = input()
    if lunch_time == "before" or if lunch_time == "Before":
        avgrams*=0.98
        STDEV*=0.98
        break
    elif lunch_time == "after" or if lunch_time == "After":
        break
    else:
        sleep(1)
        print("Sorry, I don't understand.")
        sleep(1)
        print("Please only answer with 'before' or 'after' (with no punctuation).")

我开始我的代码,当我到达这一部分时(这里的第一行是第 84 行),我希望随机回答一些以确保 else 语句有效,然后回答其他两个中的一个以打破循环并继续。但是,在运行我的代码时,此 if 语句会导致语法错误,语法无效。

  File "main.py", line 88
    if lunch_time == "before" or if lunch_time == "Before":
               ^
SyntaxError: invalid syntax
python if-statement 语法错误

评论

6赞 Nir Alfasi 4/17/2023
删除第二个 if: 你也可以用更简洁的方式重写它:if lunch_time == "before" or lunch_time == "Before":if lunch_time in ["before", "Before"]:
0赞 chepner 4/17/2023
如果您使用 Python 3.11 或更高版本,则语法错误应明确指出第二个错误作为错误的来源。if

答:

1赞 etchris 4/17/2023 #1

你可以这样在 python 中思考 if-elif-else。

if <condition> or/and <condition> . . .:
    # code
elif <condition> or/and <condition> . . .:
    # code
else:
    #code

评论

0赞 Community 4/19/2023
正如目前所写的那样,你的答案尚不清楚。请编辑以添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。您可以在帮助中心找到有关如何写出好答案的更多信息。
2赞 nulzo 4/17/2023 #2

在块中使用逻辑运算符时,键入逻辑运算符 (, , ) 后无需再次声明。程序失败,因为您在 if 语句中再次包含该语句。ififandornotif

另一个问题是,您的语句中还有另一个 if 语句。如果包含 ,则顺序应始终为 。如果您有任何其他问题,请告诉我!elifelifif->elif->else

干杯。