【问题标题】:Basic Rock, Paper, Scissors Doesn’t Work for my Calculator基本的石头、纸、剪刀对我的计算器不起作用
【发布时间】:2020-09-21 17:36:09
【问题描述】:

我刚开始使用 python 3,它是我的第一语言。这是我第一次尝试任何事情,我想出了if语句和random.randint,而没有查找如何制作石头剪刀布,因此整个系统存在很大缺陷。话虽如此,它在我的手机上运行得很好,我的计算器怎么不工作。它说明了如何没有 randint 的属性,我检查了论坛,他们说我必须有一个已经命名为 random 的文件,但我在设备上的任何地方都没有。我该怎么办? 由于某种原因,我使用的应用程序不允许我复制代码,但我能做的最好的就是一个链接,代码是:https://codeplayground.app/?s=cPTCDE5g4U4DBoL7UfAFkc 错误信息是:AttributeError: 'module' object has no attribute 'randint'

编辑-抱歉礼节不当,我不知道如何在这里提问,这是我的第一个问题。另外,为了澄清,没有文件是随机命名的,这个特定的文件名为“RPS”,代表剪刀石头布

【问题讨论】:

  • 包含代码和错误信息会很有帮助。
  • 您忘记发布代码和错误了吗?我们至少需要一个minimal reproducible example
  • 只是好奇:当您收到属性错误时,您正在运行的文件的名称是什么?是“random.py”吗?

标签: python python-3.x random attributes calculator


【解决方案1】:

代码在 Colab 上适用于我。我假设您使用不同的代码,您实际上使用 input() 来捕获“p”。 建议你试试

p = int(input('Let me know your number')))

【讨论】:

  • 如果我认为它确实如此,那将非常有帮助,谢谢,但这会解决 randint 的属性问题吗?这方面我不是很了解,如有错误请指正,但是改变p的输入会如何影响为c生成的随机数呢?
  • 我无法重现您的错误,所以我不知道 AttributeError 的来源。下次您发布此类内容时,请尝试包含确切的错误消息 + 确切的代码。
【解决方案2】:

我假设你运行时的文件名并得到属性错误是 random.py。如果是这种情况,问题是您与 Python 的“随机”模块发生名称冲突。如果我将您的代码复制到一个名为 random.py 的文件中,我会收到属性错误。如果我将文件称为其他名称,例如“rock_paper_scissors.py”,那么它运行得很好!问题是 Python 正在尝试从您自己的 random.py 文件中解析 randint,该文件没有定义 randint!因此,您必须避免将文件命名为与要导入的模块相同的名称。

您也可以在调用 randint 之前将类似这样的内容放在文件顶部进行测试:

def randint(x, y):
    return 1

当您随后使用此定义调用 randint 时,您不会收到属性错误!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-20
    • 2014-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多