【问题标题】:NameError when assigning input() to variable (Python2.7.11) [duplicate]将输入()分配给变量时出现NameError(Python2.7.11)[重复]
【发布时间】:2019-04-20 09:58:32
【问题描述】:

即使我只是尝试将字符串放入变量中,也会出现名称错误。

我正在尝试在 Python 2.7.11 上执行此操作。有没有人有什么帮助?升级 Python 不是我的选择。

def translate(phrase):
    translation = ""
    for letter in phrase:
        if letter in " ":
            translation = translation + "@"
result = (input("enter a phrase you want encrypted: "))
result = translate(result)

这是显示的错误:

Traceback (most recent call last):
  File "D:\hello\encrydecry\encryption1.py", line 158, in <module
>
    result = (input("enter a phrase you want encrypted: "))
  File "<string>", line 1, in <module>
NameError: name 'hello' is not defined

【问题讨论】:

    标签: python python-2.7


    【解决方案1】:

    在 Python 2 中,当您使用 input() 时,Python 会解释输入。所以当你输入hello 时,hello 被解释为一个变量,你实际上是在做result = hello。因此出现错误NameError: name 'hello' is not defined

    一种选择是简单地在引号之间键入输入,因此它将被解释为字符串:'hello'

    为避免输入被完全解释,您必须使用raw_input() 而不是input(),它不会解释用户输入并且总是返回一个字符串:

    result = raw_input("enter a phrase you want encrypted: ")
    

    【讨论】:

      【解决方案2】:
      def translate(phrase):
          translation = ""
          for letter in phrase:
              if letter in " ":
                  translation = translation + "@"
      result =raw_input("enter a phrase you want encrypted: ")
      result = translate(result)
      

      【讨论】:

      • 请解释这段代码如何解决 OP 的问题。
      • 请添加解释,而不仅仅是代码转储。
      猜你喜欢
      • 2014-01-08
      • 2012-02-02
      • 1970-01-01
      • 2016-09-08
      • 2016-11-23
      • 2014-02-16
      • 2019-02-15
      • 2014-04-25
      • 1970-01-01
      相关资源
      最近更新 更多