【发布时间】:2014-09-26 04:22:30
【问题描述】:
我制作了一个简单的脚本,可以将任何输入文本转换为“代码”,也可以将其翻译回来。它一次只能工作一个词。
我想让脚本将每个新代码添加到每次打印的列表中。例如,第一次翻译某些内容时,"HELLO" 变为 "lohleci"。第二次,我希望它不仅显示"world" = "ldwropx",而且在下面说明到目前为止所有翻译的内容。
我是 Python 新手,曾浏览论坛寻找有类似问题的人。我尝试这样做的方式(一个段被删除并放入一个单独的脚本中),我得到一个错误,说“在赋值之前引用了局部变量'列表'”。这是产生错误的代码:
list = "none"
def list():
word = raw_input("")
if list == "none":
list = word + " "
print list
list()
else:
new_list = list + word + " "
list = new_list
print list
list()
list()
【问题讨论】:
-
您不应将名称
list用作变量或函数。你的函数也在递归调用自己,这是你想要的吗? -
是的,有点。正如我所说,我从一个更大的脚本中提取了这个,在它翻译的每个单词之后,它都会回到你输入下一个单词的部分。我的问题是我希望最终能够输入特定的内容,例如 /print 并让它显示我在本次会议中翻译的所有内容。所以这实际上并不是它的发展方式,它只是我为了测试而抽出的部分,是的,它应该重复自己。谢谢你看着它。 :) 我尝试了这个,但是在名单下没有任何内容,它仍然给了我这个错误。还有其他建议吗?
-
你应该使用循环而不是递归,除非你真的知道你需要递归。关心
stack overflow(不是这个网站!)。你的问题不清楚,如果你能给出任何预期的输出会有所帮助。 -
正如 Leo Law 已经说过的,你不应该使用名称
list,因为那是 Python 函数的名称。对变量使用the_list之类的东西,或者对函数使用make_list()之类的东西。 -
好的。谢谢!我会尝试所有这些建议。
标签: python