根据你的帖子,你似乎希望有机会根据用户的输入跳过循环。为此,您可以使用此算法:var = input("Enter Y/N:")
if var in ['y', 'Y']:
print("You said yes")
elif var in ['n', 'N']:
print("You said no")
else:
while True :
var = input("Enter Y/N:")
if var in ['y', 'Y']:
print("You said yes")
break
elif var in ['n', 'N']:
print("You said no")
break
为什么不在时使用var not in ['y', 'Y', 'n', 'N']这样的条件编写?在
^{pr2}$
我们可以将else语句转换为更明确的语句,而不是while语句,这也可以工作,但正如您所见,我们的代码似乎有更多的切入点。
唯一的问题是我们用多余的程序增加了切入点。在
在我看来,在循环中实现输入会更好、更具可读性。在
对于python 3.xwhile True :
var = input("Enter Y/N:")
if var in ['y', 'Y']:
print("You said yes")
break
elif var in ['n', 'N']:
print("You said no")
break
对于python 2.xwhile True :
var = raw_input("Enter Y/N:")
if var in ['y', 'Y']:
print("You said yes")
break
elif var in ['n', 'N']:
print("You said no")
break
现在我们有一个非常小的代码在做同样的事情。在
我也注意到你只想读字母{y,n}。区分大小写是一个只对用户有用的定义,案例将产生相同的答案。所以你可以降低或提高所有的输入来简化你的条件
对于python 3.xwhile True :
var = input("Enter Y/N:").lower()
if var == 'y':
print("You said yes")
break
elif var == 'n':
print("You said no")
break
对于python 2.xwhile True :
var = raw_input("Enter Y/N:").lower()
if var == 'y':
print("You said yes")
break
elif var == 'n':
print("You said no")
break