我正在制作一款“计算机”试图猜测你想到的数字的游戏。 这里有几段代码:
askNumber1 = str(raw_input('What range of numbers do you want? Name the minimum number here.'))
askNumber2 = str(raw_input('Name the max number you want here.'))
这是为了获得他们希望计算机使用的数字范围。
print 'Is this your number: ' + str(random.randint(askNumber1, askNumber2)) + '?'
这是计算机询问它是否正确,使用random.randint生成一个随机数。问题是1)它不会让我组合字符串和整数,2)不会让我使用变量作为最小和最大数字。
有什么建议吗?
答案 0 :(得分:1)
如果您创建一个包含范围内的数字的列表并随机排序,然后继续弹出,直到您猜测,否则可能会再次询问某个数字的可能性会更好。
然而,这就是你想要做的事情:
askNumber1 = int(str(raw_input('What range of numbers do you want? Name the minimum number here.')))
askNumber2 = int(str(raw_input('Name the max number you want here.')))
您将其保存为数字而不是字符串。
答案 1 :(得分:1)
正如您所建议的那样,randint
需要整数参数,而不是字符串。由于raw_input
已经返回一个字符串,因此无需使用str()
进行转换;相反,您可以使用int()
将其转换为整数。但请注意,如果用户输入的内容不是整数,例如“hello”,那么这将抛出异常并且您的程序将退出。如果发生这种情况,您可能需要再次提示用户。这是一个重复调用raw_input
的函数,直到用户输入一个整数,然后返回该整数:
def int_raw_input(prompt):
while True:
try:
# if the call to int() raises an
# exception, this won't return here
return int(raw_input(prompt))
except ValueError:
# simply ignore the error and retry
# the loop body (i.e. prompt again)
pass
然后,您可以将其替换为raw_input
的来电。
答案 2 :(得分:0)
范围编号存储为字符串。试试这个:
askNumber1 =int(raw_input('What range of numbers do you want? Name the minimum number here.'))
askNumber2 =int(raw_input('Name the max number you want here.'))
这是为了获得他们希望计算机使用的数字范围。
print 'Is this your number: ' + str(random.randint(askNumber1, askNumber2)) + '?'