将一个结果变量存储在列表中后进行一些计算

问题描述:

我正在尝试为计算机创建一个反向号码游戏来猜测我的号码。该计划旨在以这种方式运行:将一个结果变量存储在列表中后进行一些计算

  • 我带有一些
  • 如果我输入“>”,响应为给定数“<”,计算机应该添加的号码要么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

+0

是的,我注意到,我的pycharm调试器,但我还是不明白如何我可以修复这个错误。因为对于用户的输入是'>'或' 2014-10-06 14:12:20

+0

我刚想出来,但我仍然不确定我是如何解决它的。 我将low_list更改为rand_number,并添加了一个break,并为high_list做了相同的操作,并且它显然正在工作。 – 2014-10-06 14:49:18