输入与raw_input:Python交互式Shell应用程序?

input vs. raw_input: Python Interactive Shell Application?

我正在研究这个问题的答案:python交互式shell类型应用程序

我的代码看起来像这样

1
2
3
4
5
6
7
8
9
10
11
12
def main():
  while True:
    s = input('> ')

    if s == 'hello':
      print('hi')

    if s == 'exit':
      break

if __name__ =="__main__":
  main()

如果我运行它,输入hello,我会

1
2
  File"<string>", line 1, in <module>
NameError: name 'hello' is not defined

我应该如何收听文本,并根据结果调用不同的函数?


您在python 2.x下运行它,其中input()实际上评估了作为python表达式键入的内容。因此,它寻找一个名为hello的变量,并且,由于您没有定义一个变量,所以它抛出了错误。要么使用python 3.x,要么使用raw_input()

从您的print中的括号中,我假设您打算在python 3.x下运行它。


1
2
3
4
5
6
7
8
if s == 'hello':
  print('hi')

elif s == 'exit':
  break

else:
  print('Undefined input')

这应该处理未定义的用户输入。