我正在创建一个Caesar Cipher,它完全可以工作但是有一个小bug。我创建了一个代码片段,以便不发布整个算法。我的问题是,当它运行并输入1或2时它将不接受您的输入,但在第二次运行时它将会。我完全不知道为什么。
Choice = input('Encrypt or Decrypt? \n\nEnter 1 for Encrytion \nEnter 2 for Decrytion')
while Choice != '1' or Choice != '2':
print('You must enter 1 or 2')
Choice = input('Encrypt or Decrypt? \n\nEnter 1 for Encrytion \nEnter 2 for Decrytion')
if Choice == '1':
print('bananas')
break
if Choice == '2':
print ('cake')
break
答案 0 :(得分:0)
这将永远是真的:
while Choice != '1' or Choice != '2':
假设Choice
为'1';那将是:
while '1' != '1' or '1' != '2':
是:
while False or True:
是:
while True:
对于每一个可能的Choice
。你想要:
while Choice != '1' and Choice != '2':
实际上,您希望将Choice = input(...
置于一个循环中,并且只在Choice == '1' or Choice == '2'
时突破该循环。比较也必须在循环外完成。