2016-11-17 69 views
-4

我一直得到相同的错误,我不知道为什么,我是新来的python,我正在尝试一个小项目来猜测随机数!这里是我的代码:不断收到“TypeError:'int'对象不可调用”

import random 

number_guess = int(input("Enter a random number between 1 - 100 please!")) 
random_number = random.randrange(0,100) 

if number_guess == random_number(): 
    print("Correct! The number was " + random_number + "!") 
else: 
    print("Wrong! The real number was " + random_number + "!") 
+0

删除括号'()''后random_number'。 –

回答

1

叶声明说这里的一个错误是在你的if语句中你有random_number()你调用了一个变量而不是一个方法,你应该删除括号。

另一个问题是你试图向String中添加一个int并且无法完成,在打印语句中,你应该用逗号替换'+',并且程序将按照预期完美运行!

以及如果你实际上想要1到100的值,你应该设置起始数字为1,就好像它被设置为0一样,你有机会得到0,并且如果你有最大值设置为100你永远不会得到大于99的值,这意味着100的猜测永远不会是正确的。

因此,最终的项目应该是这样的:

import random 

number_guess = int(input("Enter a random number between 1 - 100 please! ")) 
random_number = random.randrange(1,101) 

if number_guess == random_number: 
    print("Correct! The number was ", random_number, "!") 
else: 
    print("Wrong! The real number was ", random_number, "!") 
1

random.randrange()返回一个指定范围内的随机整数。 The documentation states this quit clearly

random.randrange(start, stop[, step])

Return a randomly selected element from range (start, stop, step) . This is equivalent to choice (range(start, stop, step)) , but doesn’t actually build a range object.

当时的random_number值为int类型,这是不可调用的。在你的语句中,不需要括号。简单地写下random_number而不用一对括号。