TypeError:content()只取1个参数(给定0)

时间:2017-06-14 06:16:12

标签: python

谷歌搜索,试用和错误没有帮助。对Python来说还是一个新手。

我想让函数运行并打印输出选项,并使用 def content(userInput): options=[ 'option 1', 'option 2 ] print '\n'.join(map(str, options)) userInput = raw_input("> ") return userInput content() 变量并在另一个函数中使用它

{{1}}
  

TypeError:content()只取1个参数(0给定)

4 个答案:

答案 0 :(得分:1)

目前我发现在您的代码中使用函数参数userInput时没有使用raw_input

def content(): # if you are not willing to pass anything to function then you do not need to use anything as argument of function
    options=['option 1', 'option 2']
    print '\n'.join(map(str, options))
    userInput = raw_input("> ") # whatever input you are passing in userInput as function argument will be overridden here
    return userInput

content()

答案 1 :(得分:0)

在定义此函数的方式中,需要将userInput作为参数。阅读你的代码,似乎你真的不需要这个(你在不使用它的情况下立即覆盖userInput),只需这样做:

   def content():
      options=[
         'option 1',
         'option 2'
         ]
      print '\n'.join(map(str, options))
      userInput = raw_input("> ")
      return userInput
   content()

答案 2 :(得分:0)

你的功能,

def content(userInput):
  options=[
     'option 1',
     'option 2
     ]
     print '\n'.join(map(str, options))
     userInput = raw_input("> ")
     return userInput
content()

你提供userInput作为参数,但你执行了该函数而没有给出该参数的任何值,即

content()

在python中,当你在函数中提供任何参数时,就像你在userInput函数中提供comment作为参数一样,python期望你提供userInput参数的值和执行功能时没有提供它。这就是为什么它给你错误。

相反,你必须提供一个代替你给定参数的值(当执行函数时)

content("any value")

或以这种方式重写代码,

def content(userInput=None):
    .......

然后你可以像这样执行它,

content()  

注意:在您的代码中,您没有在任何地方使用userInput,所以最好重写代码,

def content():
  options=[
     'option 1',
     'option 2
     ]
  print '\n'.join(map(str, options))
  userInput = raw_input("> ")
  return userInput

然后执行您的函数content

content()

答案 3 :(得分:0)

您使用参数userInput

定义了您的函数
def content(userInput):

在这种情况下,当您想要使用它时,您需要传递该参数。

所以你在哪里

content()

应该更像是

content(someVal)

或仅在def content(userInput):删除userInput所以它会像:

def content():