Ошибка Python [TypeError: объект 'str' не вызывается] появляется при использовании функции input () - PullRequest
0 голосов
/ 20 октября 2019
notes =[]

def newNote(notes):

    note = input("Whats up")
    notes.append(note)
    return notes

input = input("in or out? ")

if (input == "in"):

    newNote(notes)

note = input("Whats up") - это строка, в которой возникла проблема, и я не вижу в этом ничего плохого. Я попробовал строку только с помощью instelf (не в функции), и она работает, но по какой-то причине она не работает внутри функции.

Кто-нибудь может мне это объяснить?

Ответы [ 3 ]

1 голос
/ 20 октября 2019

Проблема со строкой input = input("in or out? ").

Вы переопределяете функцию input для результата input("in or out? "), поэтому теперь input - это строка.

Решение состоит в том, чтобыпросто замените input("in or out? ") переменную результата на что-то другое:

notes =[]

def newNote(notes):

    note = input("Whats up")
    notes.append(note)
    return notes

choice = input("in or out? ")

if (choice == "in"):

    newNote(notes)
0 голосов
/ 20 октября 2019

Попробуйте это:

notes =[]
def newNote(notes):
    note = input("Whats up")
    notes.append(note)
    return notes

inp = input("in or out? ")
if (inp == "in"):
    newNote(notes)

Вы использовали ключевое слово 'input' для именования переменной. Никогда не следует использовать ключевое слово для определения функций или переменных, если вы не хотите переопределять встроенную функциональность языка.

0 голосов
/ 20 октября 2019

input = input("in or out? ") отменяет встроенную функцию input . Замените имя переменной другим именем, и оно будет работать.

...