【问题标题】:Python: Trouble executing functions if int ==Python:如果 int == 则无法执行函数
【发布时间】:2015-11-25 21:52:08
【问题描述】:

我无法让我的代码为我的游戏运行 2 个不同的选项(函数)。我创建了一个菜单功能选项并包含了 2 个选项。

但是,它返回错误“缺少 2 个必需的位置参数” 我该如何解决?在此先感谢,抱歉,这是一个新手问题!

def options(playerVsComputer, playerVsPlayer):
    playerN = input("How players are you?")
    if input == 1: playerVsComputer()
    if input == 2: playerVsPlayer()

options()

【问题讨论】:

  • 这需要更加具体才能得到答案。
  • 你在哪里打电话options
  • @RNar - 看起来 OP 在他的代码中调用了options(),但是代码缩进的错误隐藏了这个事实。我已经编辑了问题以使其更清楚。

标签: python function options


【解决方案1】:

首先,在 Python 3.x 中,input 返回一个字符串以供使用。您正在尝试将字符串与整数进行比较,这总是错误的。要将值用作整数,您必须将结果转换为 int...

int(input("How players are you?"))

...或者您可以只比较字符串文字 "1""2"

其次,没有使用正确的参数调用您的方法。您需要此方法的两个参数(这似乎是函数,因为您在传递过程中调用它们)。

如果您在其他地方声明了这些函数,则可以从函数中删除参数。否则,您需要传入函数。

【讨论】:

  • 有道理,代码现在正在运行,谢谢 Makoto!
  • OP 没有说明他使用的是 Python 2 还是 Python 3。在 Python 2 中,input() 尝试评估输入,因此它可以根据输入的内容返回一个 int。跨度>
  • @rebuscodes - 如果您的代码现在可以正常工作,请接受帮助您正常工作的答案。 (单击该答案分数下方的复选框)。这样以后遇到这个问题的其他人(例如,因为他们有类似的问题)就会知道这是他们应该使用的答案。
【解决方案2】:

在你的代码中,你定义了一个有两个参数的函数,你只能调用

options(1,2)

此外,您的变量似乎本身就是函数。 试试

def options():
    playerN = int(input("How players are you?"))
    if playerN == 1: 
        playerVsComputer()
    if playerN == 2: 
        playerVsPlayer() 

并像上面定义的那样调用函数,不带参数。

【讨论】:

    猜你喜欢
    • 2016-12-29
    • 1970-01-01
    • 2020-08-07
    • 2016-06-27
    • 2012-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    相关资源
    最近更新 更多