我在python中运行代码,想知道在循环中获取输入有什么不同。
例如,
restart = ('y')
chances = 3
balance = 1000
while chances >= 0 :
pin = int(input('Please enter your 4 digit pin n'))
if pin == (1234):
print('You have entered the correct pin')
while restart not in ('N', 'n'):
print ('Press 1 to check balance')
print ('Press 2 to withdraw')
option = int(input('Can you please enter your option n'))
if option == 1:
print('Your balance is', balance, 'n')
restart = input('Do you like to go back?')
if restart in ('n', 'N'):
print ('Thanks')
break
在上面的代码中,当我pin = int(input('Please enter your 4 digit pin n'))
在while循环外,if restart in ('n', 'N'):
,这个if语句不起作用。它开始打印print('You have entered the correct pin')
不终止
有人能解释一下吗?
你需要打破while循环。
restart = ('y')
chances = 3
balance = 1000
while chances >= 0 :
pin = int(input('Please enter your 4 digit pin n'))
if pin == (1234):
print('You have entered the correct pin')
while restart not in ('N', 'n'):
print ('Press 1 to check balance')
print ('Press 2 to withdraw')
option = int(input('Can you please enter your option n'))
if option == 1:
print('Your balance is', balance, 'n')
restart = input('Do you like to go back?')
if restart in ('n', 'N'):
print ('Thanks')
break #<----------- here.
自"Restart"value为'n' 'n',你将永远不会再进入这个循环,但是外部循环while chances >= 0 :
继续运行,因为你从未改变机会的值。
你的外部while循环永远不会终止。目前你是循环当chances >= 0
,但你从来没有改变它的值后,你初始化为3。因此,如果pin未设置为'1234',您将永远留在外部循环中。
如果pin被设置为'1234',你将至少经历一次内部逻辑,因为重启被设置为'y'。一旦将重启设置为n
,就会跳出内部循环。但是,现在您将被困在外部循环中,重新启动设置为阻止您再次进入内部循环的值。请参阅上面的内容,以了解为什么您永远无法退出此循环。
将引脚输入移出循环所做的只是确保在输入不正确的值时无法选择替代值。