Функция () принимает 0 позиционных аргументов, но 1 была выдана ошибка для вызова функции - PullRequest
1 голос
/ 16 апреля 2019

Я начинающий программист на Python и пытаюсь правильно понять функции.Я хочу понять, почему эта функция не работает и что означает сообщение об ошибке.

def input():
    loop = True


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

        if userInput == 'help':
            help()

def main():
    input()

main()

Это небольшой раздел, вырезанный из моего исходного кода.Я ожидаю, что это просто запросит ввод данных пользователем, и если это «помощь», запустите функцию справки, которая определена в другом месте моего кода.Проблема в том, что я получаю сообщение об ошибке, в котором говорится следующее:

TypeError: input () принимает 0 позиционных аргументов, но 1 было дано

Я неточно уверен, что ошибка типа или почему это происходит здесь.

Ответы [ 6 ]

1 голос
/ 16 апреля 2019

Вы перерабатываете встроенную функцию input, просто переименуйте свою:

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

def main():
    my_input()

main()
1 голос
/ 16 апреля 2019

Вы столкнулись с этой проблемой, потому что input является встроенной функцией в Python. Пожалуйста, переименуйте ввод в input_1, и он будет работать

0 голосов
/ 16 апреля 2019

Поскольку input - это функция, уже определенная в python, она выдает ошибку. Попробуйте

def input_func():
    loop = True


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

        if userInput == 'help':
            help()

def main():
    input_func()

main()
0 голосов
/ 16 апреля 2019

Строка userInput = input('> ').lower() вызывает функцию input с аргументом '> '

0 голосов
/ 16 апреля 2019

Вы переопределили встроенную функцию ввода Python как функцию, которая принимает 0 аргументов, когда вы определили свою функцию ввода. Попробуйте использовать другое имя для своей функции.

0 голосов
/ 16 апреля 2019

В первой строке вашего кода вы определяете input как функцию, которая не принимает аргументов. Это скрывает встроенную функцию ввода python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...