Search code examples
pythongoogle-colaboratory

How to accept user input from within a function?


I am new to Python. This code snippet is supposed to define a function getinput(), which is supposed to accept user input and put that value into variable stuff. Then I call the function, and print the value of the variable stuff.

def getinput():
  stuff = input("Please enter something.")
getinput()
print(stuff)

The problem is that the program is not working as expected and I get the error:

NameError: name 'stuff' is not defined

In contrast, without defining and calling a function, this code works just fine:

stuff = input("Please enter something.")
print(stuff)

And I can't figure out why that should be so.

Please help. I am learning Python to coach my kid through his school course, and I am using Google Colab with Python 3.7.11, I believe.


Solution

  • There is a lot of possibilities of printing stuff that you could do -

    def getinput():
      stuff = input("Please enter something.")
      print(stuff)
    getinput()
    

    You can print it inside function and call it


    def getinput():
      stuff = input("Please enter something.")
      return stuff
    print(getinput())
    

    You can return the stuff and print it (BEST Solution)


    def getinput():
        global stuff
        stuff = input("Please enter something.")
    
    getinput()
    print(stuff)
    

    Or you could use global keyword