【问题标题】:"TypeError: choice() takes exactly 2 arguments (4 given)" error“TypeError:choice() 正好需要 2 个参数(给定 4 个)”错误
【发布时间】:2012-11-08 20:20:11
【问题描述】:

我正在学习 python 的新知识,我正在制作游戏,但我在 linux 终端中遇到了问题,如下所示:

Traceback (most recent call last):
File "oyun.py", line 30, in <module>
Pc=random.choice("tas","kagit","makas")
TypeError: choice() takes exactly 2 arguments (4 given)

你能告诉我有什么问题吗?我该怎么办?

【问题讨论】:

  • 除非您向我们展示导致错误的代码,否则我们无法告诉您问题所在。 (提示:这是oyun.py第30行左右的代码)
  • @RobertRouhani:这里不需要进一步的代码 - 错误信息上写有错误(尽管“random.choice”是一个实例方法而不是一个函数这一事实掩盖了这一点看起来是这样。作为一种方法,隐式的第一个参数“self”在调用时传递给它,从而使错误消息上的 argcount 减一。
  • 没有注意到它在回溯中打印了那条线......我的错:)

标签: python random syntax-error


【解决方案1】:

你需要给它一个列表。例如:

Pc=random.choice(["tas","kagit","makas"])

【讨论】:

    【解决方案2】:

    如果您查看文档,您会发现 random.choice 方法采用一个参数,即一个包含可供选择的值的 seq。因此,在这种情况下,将可能的选项包装到一个列表中。

    还有一件(重要的)事情:尽管看起来您提供了三个参数,但解释器却抱怨四个(并要求两个)。这是因为调用该方法的对象(在本例中为“随机”)是该方法的隐式第一个参数。

    HTH, --ag

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-21
      • 1970-01-01
      • 2016-09-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多