【问题标题】:keep getting "TypeError: 'int' object is not callable" [closed]不断收到“TypeError:'int'对象不可调用”[关闭]
【发布时间】:2016-11-17 03:41:35
【问题描述】:

我不断收到同样的错误,我不知道为什么,我是 python 新手,正在尝试一个小项目来猜测随机数!这是我的代码:

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 + "!")

【问题讨论】:

  • 去掉()后面的括号random_number

标签: python int


【解决方案1】:

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

另一个问题是,您尝试将 int 添加到 String 并且无法完成,在打印语句中,您应该用逗号替换“+”,您的程序将按预期完美运行!

如果你真的想要 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, "!")

【讨论】:

    【解决方案2】:

    random.randrange() 返回指定范围之间的随机整数。 The documentation states this quit clearly:

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

    从 range(start, stop, step) 返回一个随机选择的元素。这相当于choice(range(start, stop, step)),但实际上并不构建范围对象。

    random_number 的值 then 为 int 类型,不可调用。在你的 if 语句中,不需要括号。直接写random_number,不带括号。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-24
      • 2012-04-03
      • 1970-01-01
      • 2019-11-24
      • 2020-11-20
      相关资源
      最近更新 更多