【发布时间】:2014-09-17 05:52:51
【问题描述】:
我不断收到错误消息:NameError: name 'text' is not defined
def Encryption(i, j):
diction = {'a':'x1', 'b':'3', 'c':'lk', 'd':'$%', 'e':'^%', 'f':'(*', 'g':'-+', 'h':'il', 'i':'z@', 'j':'@#', 'k':'}{', 'l':'-*', 'm':'p', 'n':':l', 'o':'!#', 'p':'1%', 'q':'k<', 'r':'/', 's':'>', 't':'@', 'u':'if', 'v':'q#$', 'w':'^#1', 'x':'5-=', 'y':'n?', 'z':'v'}
my_text = input("What would you like to encrypt?")
text = my_text.lower()
for diction in text:
text = text.replace(i, j)
Encryption(text,diction)
完整的错误消息:
File "Spy1.py", line 39, in <module>
OpSet()
File "Spy1.py", line 3, in OpSet
MainMenu()
File "Spy1.py", line 16, in MainMenu
Encryption(text, diction)
NameError:名称“文本”未定义 我试图让程序读取用户的输入,并将其转换为备用集。但是,它不会起作用。 我无法确定这个“命名”问题的根源,因为我之前尝试定义 Text 但它不起作用。
我也没有找到关于 hacks 之外的定义顺序的充分解释。
谢谢!
【问题讨论】:
-
最后一行的身份问题。
-
不要覆盖循环中的变量文本。使用不同的局部变量
-
伙计们,这是他的第一个问题,别再投反对票了,也许他才 13 岁,而你正在像一个坏蛋老师一样评判。
-
使用
raw_input而不是input -
查看错误消息,您似乎从
MainMenu调用Encryption。您没有显示那段代码,但很可能,text没有在MainMenu中定义。