简体   繁体   中英

Python Error [TypeError: 'str' object is not callable] comes up when using input() funtion

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") is the line that has the problem and I see nothing wrong with it. I have tried the line just by instelf (not in a function) and it works but for some reason it doesnt work inside the function.

Can anyone explain this to me?

The problem with line input = input("in or out? ") .

You redefine input function to result of input("in or out? ") , so now the input is a string.

The solution is to simply change input("in or out? ") result variable to something another:

notes =[]

def newNote(notes):

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

choice = input("in or out? ")

if (choice == "in"):

    newNote(notes)

input = input("in or out? ") is overriding the built-in input function. Replace the variable name with a different name and it will work.

Try this:

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

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

You have used the keyword 'input' to name a variable. You should never use a keyword to define functions or variables unless you want to override the built in functionality of the language.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM