擅长:python、mysql、java
<p>您的<code>while</code>-循环条件是有缺陷的,比如说我输入<code>Yes</code>,它将从左到右计算条件并注意<code>have_acc != ('Yes')</code>,但是由于它前面有一个<code>or</code>关键字,它将计算其余条件——如果其中一个是<code>True</code>,那么它将在<code>while</code>循环中运行代码,这里的问题是<code>have_acc != ('No')</code>将计算为<code>True</code>为<code>('Yes' != 'No') == True</code>,因此整个语句的求值将为<code>True</code>,然后在循环中执行代码。在</p>
<p>你需要做的是一个更干净、更简约的版本,它不容易出错,比如:</p>
<pre><code>print('Welcome to the quiz!')
print('Do you already have an account? ')
have_acc = input().lower()
while have_acc not in ('yes', 'no'):
print('Please enter "yes" or "no"')
have_acc = input().lower()
...
</code></pre>