输入的raw_input对比:Python交互式shell中的应用?(input vs. raw_i

2019-08-19 21:56发布

我工作过的回答这样一个问题: Python的交互式shell类型的应用

我的代码看起来是这样的

def main():
  while True:
    s = input('> ')

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

    if s == 'exit':
      break

if __name__ == "__main__":
  main()

如果我运行它,然后键入你好,我得到

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

我应该如何监听文本,并要求根据结果不同的功能?

Answer 1:

你下的Python 2.x的,在运行它input()实际上是评估您键入的内容作为一个Python表达式。 因此,在寻找一个命名变量 hello ,和,因为你还没有一个定义,它抛出的错误。 无论是使用Python 3.x或使用raw_input()

从您的括号print我假设你打算在Python的3.x的运行



Answer 2:

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

elif s == 'exit':
  break

else:
  print('Undefined input')

这应该照顾未定义的用户输入。



文章来源: input vs. raw_input: Python Interactive Shell Application?