I was working off of the answer in this question: Python Interactive Shell Type Application
My code looks like this
def main():
while True:
s = input('> ')
if s == 'hello':
print('hi')
if s == 'exit':
break
if __name__ == "__main__":
main()
If I run it, and type hello, I get
File "<string>", line 1, in <module>
NameError: name 'hello' is not defined
How should I be listening for text, and calling different functions based on the result?
This should take care of undefined user input.
You're running it under Python 2.x, where
input()
actually evaluates what you type as a Python expression. Thus, it's looking for a variable namedhello
, and, since you haven't defined one, it throws the error. Either use Python 3.x, or useraw_input()
.From the parentheses in your
print
I assume you intended to run it under Python 3.x.