【问题标题】:NameError: name 'word' is not definedNameError:名称“单词”未定义
【发布时间】:2013-06-21 04:00:18
【问题描述】:

我正在尝试创建一个 mixWord 函数,但我收到一条错误消息 NameError: name 'word' is not defined 我在这里错过了什么?

def mixWord(word):
    characterList = list(word);
    print characterList
    import random;
    random.shuffle(characterList);
    print characterList;
    shuffledWord = ''.join(characterList);
    print shuffledWord;

Traceback(最近一次调用最后一次):

文件“”,第 1 行,在

mixWord(单词)

NameError: name 'word' 未定义

【问题讨论】:

  • 发布完整的回溯和其余代码。您的错误不在这里。
  • 回溯(最近一次调用最后一次):文件“”,第 1 行,在 mixWord (word) NameError: name 'word' is not defined
  • @user2507566:请更新您的问题。
  • 代码是否已[重新]保存到正确的文件中?通过 IDLE 运行/编辑代码时可以重现错误吗?该错误应该在该位置生成:我怀疑实际代码与所认为的不同。 (另外,放弃分号 - 它们看起来很糟糕!)
  • 是的,代码看起来不错,适合我。

标签: python nameerror defined


【解决方案1】:

问题在于 PEBKAC - 正是 什么 形式,由您自己找出。

执行的代码与贴出的代码不一样posted code works as expected

def mixWord(word):
    characterList = list(word);
    print characterList
    import random;
    random.shuffle(characterList);
    print characterList;
    shuffledWord = ''.join(characterList);
    print shuffledWord;

mixWord("PEBKAC")

所以,找出原因:

  • 文件保存了吗?
  • 文件是否已保存到正确的位置?
  • 是否正在运行来自正确位置的文件?
  • 错误是否完全来自不同的代码

另外尝试直接从 IDLE 缓冲区运行代码,因为这应该不受之前的潜在问题的影响。

解决问题后,考虑将代码更新为 not 使用分号,因为这里不需要分号,而且它不是 Pythonic。

【讨论】:

    【解决方案2】:

    我认为问题在于您在调用 mixWord(word) 时没有定义任何 word 变量。

    【讨论】:

    • 我将如何定义单词变量?抱歉,我对 python 很陌生
    • 定义我的意思是在调用mixWord(word)之前你有一个名为word的变量吗?
    • 在调用mixWord(word) 之前,只需尝试print(word)。如果print(word) 也给出了NameError,这意味着没有名为“word”的变量。
    • 只需在 python shell 中输入word = 'someword' 然后编写你的函数或者你可以在你的函数本身中定义单词
    • 好的,我现在明白了,我知道我根本没有使用我的大脑。感谢您容忍我。
    猜你喜欢
    • 2018-05-09
    • 1970-01-01
    • 2018-01-24
    • 1970-01-01
    • 1970-01-01
    • 2021-04-15
    • 2019-01-26
    • 2021-10-05
    相关资源
    最近更新 更多