擅长:python、mysql、java
<p>你刚刚忘记将numberswrong变量重置为零:)</p>
<p>另外,为了发现错误,请尽量使代码更简单。</p>
<ul>
<li>数数正确的数字,而不是错误的数字!</li>
<li>使用列表而不是复制粘贴代码。</li>
<li>一旦您觉得循环更容易使用,请使用python生成器</li>
<li>使用文本格式而不是字符串连接。</li>
<li>用有意义的名称命名变量(当可以称之为“num-tries”时,避免使用“c”)</li>
<li>评论!</li>
</ul>
<p>如果您尝试应用所有这些建议,则最终代码应如下所示:</p>
<pre><code>from random import randint
# Init variable
numbers = [randint(1, 9) for _ in range(4)]
num_tries = 0
guesses = None
# Loop while numbers and guesses are not the same.
while numbers != guesses:
# Ask user to guess the 4 values
guesses = [
int(input("guess the first number: ")),
int(input("guess the second number: ")),
int(input("guess the third number: ")),
int(input("guess the fourth number: "))
]
num_tries += 1
# Display message with number of right numbers.
num_right_numbers = len([1 for i in range(4) if numbers[i] == guesses[i]])
print 'You got {0} numbers right.'.format(num_right_numbers)
# User won, print message and quit.
print 'Well Done!'
print 'It took you {0} tries to guess the number!'.format(num_tries)
</code></pre>