我对编程非常陌生,我在编写一个基本的猜谜游戏时遇到了问题。
x是计算机生成的随机数。该程序应该比较 (previous_guess - x) 的绝对值和新猜测减去 x 并告诉用户他们的新猜测是否更近或更远。
但变量 previous_guess 并未使用新值进行更新。
任何帮助,将不胜感激。
这是到目前为止的代码:
###Guessing Game
import random
n = 100
x = random.randint(1,n)
print("I'm thinking of a number between 1 and ", n)
##print(x) ## testing/cheating.
count = 0
while True:
previous_guess = 0 # Should update with old guess to be compared with new guess
guess = int(input("Guess the number, or enter number greater that %d to quit." % n))
count += 1
print(previous_guess)
print("Guesses: ", count)
if guess > n:
print("Goodbye.")
break
elif count < 2 and guess != x:
print("Unlucky.")
previous_guess = guess #####
elif count >= 2 and guess != x:
if abs(guess - x) < abs(previous_guess - x):
previous_guess = guess #####
print("Getting warmer...")
else:
previous_guess = guess #####
print("Getting colder...")
elif guess == x:
print("You win! %d is correct! Guessed in %d attempt(s)." % (x,count))
break
每次循环时,您之前的猜测都会被重新初始化。这是编程中非常常见的错误,因此不仅仅是您!
将其更改为:
previous_guess = 0
while True:
#Rest of code follows
当类似的事情出现时,你应该考虑一些事情。
- 你的变量在哪里声明的?
- 你的变量在哪里初始化的?
- 你的变量在哪里使用?
如果您不熟悉这些术语也没关系!抬头看看!作为一名程序员,你必须擅长谷歌搜索或搜索文档(或者询问有关堆栈溢出的问题,看起来你已经弄清楚了)。
对于编写有效的代码来说至关重要的另一件事是学习如何调试。
谷歌“python 调试教程”,找到一个有意义的(确保你能真正遵循该教程),然后就可以开始了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)