使用python的if-else语句的问题
学习如何创建if-else语句,并努力学习。我不明白最后的结果。如果答案为“N”,则while raining部分应不再有效,并应移到else语句。这确实发生了,但为什么要打印“待在里面等待”?那不是else陈述的一部分使用python的if-else语句的问题,python,if-statement,while-loop,Python,If Statement,While Loop,学习如何创建if-else语句,并努力学习。我不明白最后的结果。如果答案为“N”,则while raining部分应不再有效,并应移到else语句。这确实发生了,但为什么要打印“待在里面等待”?那不是else陈述的一部分 Raining = input("Is it raining outside? Press Y or N") if Raining == "N": print("Go outside") exit i
Raining = input("Is it raining outside? Press Y or N")
if Raining == "N":
print("Go outside")
exit
if Raining == "Y":
print()
print("Stay inside and wait")
print()
while Raining == "Y":
Raining = input("Is it still raining outside?")
print()
print("Stay inside and wait")
else:
print("Go outside")
exit ()
输出:
外面在下雨吗?按Y或NY
呆在里面等着
外面还在下雨吗
呆在里面等着
外面还在下雨吗
呆在里面等着
转到外部如果,则
其他
部分在时链接到,而不是。它们没有根据凹痕对齐else
表示,而表示不同。您应该更正此部分:
if Raining == "Y":
print()
print("Stay inside and wait")
print()
while Raining == "Y":
Raining = input("Is it still raining outside?")
print()
print("Stay inside and wait")
else:
print("Go outside")
exit ()
重写如下
Raining = input("Is it raining outside? Press Y or N")
while Raining == "Y":
print("Stay inside and wait")
print()
Raining = input("Is it still raining outside?")
print()
print("Stay inside and wait")
print("Go outside")
以下是我对您的代码的建议。你也可以考虑这一点:
Raining = input("Is it raining outside? Press Y or N: ")
while Raining == 'Y':
print()
print("Stay inside and wait")
print()
Raining = input("Is it still raining outside?")
if Raining == 'Y':
print()
print("Stay inside and wait")
break
else:
print("Go outside")
如果第一个输入为“Y”,则可以在if/else语句中中断循环,然后它将不会显示else
的部分,而循环。我实际上要告诉您发生了什么,因为我没有看到任何人解释发生了什么
让我们一步一步走
Raining = input("Is it raining outside? Press Y or N")
在这一行之后,程序暂停执行并等待输入。按Y
或N
。在这个场景中,因为您在问题中提出了这个问题,所以假设您在此时按下了Y
if Raining == "N":
print("Go outside")
exit
它不会进入这个块,因为Raining==“Y”
if Raining == "Y":
print()
print("Stay inside and wait")
print()
while Raining == "Y":
Raining = input("Is it still raining outside?")
print()
print("Stay inside and wait")
else:
print("\nGo outside")
exit ()
不,事情是这样的Raining==“Y”
是真的,所以它进入了它。程序在while循环之外第一次打印“待在里面等待”
。然后雨下时==“Y”:
得到评估-这是真的,因为雨下
仍然是Y
,因为它还没有改变。它要求在输入中输入(“外面还在下雨吗?”)
但是继续执行块的其余部分,不管您是输入Y
还是N
,并且在最后一个输入下有打印(“待在里面等待”)
两行。只有在块完成并在Raining==“Y”时循环回:它才意识到Raining
不再是Y
,而是已更改为N
,因此它进入else
块
要解决此问题,您可能需要将输出放在更合适的位置
if Raining == "N":
print("Go outside")
exit
if Raining == "Y":
while Raining == "Y":
print()
print("Stay inside and wait")
Raining = input("Is it still raining outside?")
else:
print("Go outside")
exit ()
else
在上,而不在if
上。google:while..python中的else和第一个if
可以是removed@F.NiX这适用于“否”,但不适用于“是”。外面在下雨吗?按Y或N:你们呆在里面等外面还在下雨吗?呆在里面等着,谢谢,但我不明白。我复制了那个代码,但是“是”的回答不起作用?它要么没有给出正确的响应,要么在第二个“是”后终止程序。外面在下雨吗?按Y或NY呆在屋里等外面还在下雨吗?看在上帝的份上等一下:)嗨,怎么了?如果你回答Y,你将通过while循环,如果你再次回答Y,你将得到待在里面…
。如果在循环中回答N,则会得到等待…
。你没有遇到什么问题吗?两个问题。如果按两次Y键,程序将终止。如果你按Y然后按N,它说看在上帝的份上等待,然后终止。唯一可行的方法是,如果删除“看在上帝的份上等待”else语句,那么Y和N将得到正确的响应。您好,如果您得到了想要的,请修改我的代码以达到您的目标。但代码运行良好。如果按两次Y键,它将按预期终止。您可以删除if
循环的else
部分,然后将最后一个else
部分上移并缩进。代码现在已编辑。请再检查一遍。非常感谢,这是一个很好的解释,我可以清楚地看到我错在哪里。
if Raining == "N":
print("Go outside")
exit
if Raining == "Y":
while Raining == "Y":
print()
print("Stay inside and wait")
Raining = input("Is it still raining outside?")
else:
print("Go outside")
exit ()