将一个结果变量存储在列表中后进行一些计算
问题描述:
我正在尝试为计算机创建一个反向号码游戏来猜测我的号码。该计划旨在以这种方式运行:将一个结果变量存储在列表中后进行一些计算
- 我带有一些
- 如果我输入“>”,响应为给定数“<”,计算机应该添加的号码要么1或100除以2,这取决于它的更低或更高。
- 之后,计算机会询问结果编号是否为我的编号
- 等等直到我输入'='。
我的问题是计算后,将随机数加到1或100并除以2,然后问这是否是我的号码我试图存储该新号码,以便它不重复但它不断重复。这是代码:
import random
guesses_taken = 0
my_name = raw_input("Hello! What is your name? ")
print ("Well {} think of a number between 1 and 100!").format(my_name)
low_list_store = list()
high_list_store = list()
rand_number = random.randint(1,100)
print("Is your number greater (>), equal (=), or less (<) than "
+ str(rand_number) + "?")
while guesses_taken < 8:
user_response = raw_input("Please answer <, =, >: ")
guesses_taken = guesses_taken + 1
if user_response == '<':
low_list = (rand_number + 1) // 2
print("Is your number greater (>), equal (=), or less (<) than {}?").format(low_list)
low_list_store.insert(0,low_list)
elif user_response == '>':
high_list = (rand_number + 100) // 2
print("Is your number greater (>), equal (=), or less (<) than {}?").format(high_list)
high_list_store.insert(0,high_list)
if user_response == '=':
print("I have guessed it!!")
guesses_taken = str(guesses_taken)
print("I needed {} step!!").format(guesses_taken)
break
if guesses_taken == 8:
print("Sorry i'm not good at this game..")
if user_response <> '>' and user_response <> '<' and user_response <> '=':
print("Please input a valid response!!")
continue
答
rand_number在代码中的任何位置都不会更改。 在while循环中,脚本在相同的随机数上进行8次迭代。
这样无论用户想你总是有:
rand_number = random.randint(1, 100)
内循环对所有8次迭代 low_list = (9 + 1) // 2
是的,我注意到,我的pycharm调试器,但我还是不明白如何我可以修复这个错误。因为对于用户的输入是'>'或' 2014-10-06 14:12:20
我刚想出来,但我仍然不确定我是如何解决它的。 我将low_list更改为rand_number,并添加了一个break,并为high_list做了相同的操作,并且它显然正在工作。 – 2014-10-06 14:49:18