Python 函数()接受0个位置参数,但函数调用时给了1个错误

Python 函数()接受0个位置参数,但函数调用时给了1个错误,python,function,Python,Function,我是一名初级Python程序员,我正在努力正确理解函数。我想了解为什么这个函数不起作用,以及错误消息的含义 def input(): loop = True while loop == True: userInput = input('> ').lower() if userInput == 'help': help() def main(): input() main() 这是我源代码的一小部分。

我是一名初级Python程序员,我正在努力正确理解函数。我想了解为什么这个函数不起作用,以及错误消息的含义

def input():
    loop = True


    while loop == True:
        userInput = input('> ').lower()

        if userInput == 'help':
            help()

def main():
    input()

main()
这是我源代码的一小部分。 我希望这只是请求用户输入,如果是“help”,则运行代码中其他地方定义的help函数。 问题是,我收到一条错误消息,其中说明以下内容:

TypeError:input()接受0个位置参数,但给出了1个


我不确定什么是类型错误,也不确定为什么会发生这种情况。

您面临这个问题,因为
input
是python中的内置函数。请将input重命名为input_1,它将工作

如果您正在重新定义
输入
内置功能,只需重命名您的:

def my_input():
    loop = True
    while loop == True:
        userInput = input('> ').lower()
        if userInput == 'help':
            help()

def main():
    my_input()

main()

在代码的第一行,您将
input
定义为不带参数的函数。这隐藏了python的内置输入函数。

定义输入函数时,您将python的内置输入函数重新定义为一个接受0个参数的函数。考虑使用一个不同的名称来命名函数。

< P>线>代码>用户输入=(输入)(“>”)。LooRever(/>代码>调用函数<代码>输入<代码> >参数<代码> > > <代码>

,因为代码>输入< /代码>是Python中已经定义的函数,它正在引发一个错误。试一试

def input_func():
    loop = True


    while loop == True:
        userInput = input('> ').lower()

        if userInput == 'help':
            help()

def main():
    input_func()

main()

输入
不是关键工作,因此可以覆盖它。它是一个内置函数。@Netwave。对,我同意你。选错了词。哇,好吧,我不知道我怎么没弄明白。谢谢你的帮助。