<pre><code>for x in range(0, listedCodeAmount):
listedCode[x] = letters()
</code></pre>
<p>这不是函数的工作方式。您的函数没有返回值,因此它返回<code>None</code>。您试图将该函数视为列表或其他容器。您只需在函数范围中设置一组变量,然后在完成时将它们放到地板上。你知道吗</p>
<pre><code>import string
miriam = True
def get_letter_dict():
return {val: idx for idx, val in enumerate(string.ascii_lowercase, 1)}
while miriam == True:
letter_dict = letters()
code_decode = input("would you like to code or decode? ")
if code_decode.lower() == "code":
code = input("enter the text you would like to code:\n") # makes it easier to read
listed_code= [letters[c] for c in code.lower()]
print(listed_code)
</code></pre>
<p>所以我们做的第一件事就是导入<code>string</code>模块,这将帮助我们制作字典。然后我们将变量设置为<code>True</code>,以便稍后退出程序。你知道吗</p>
<p>接下来,我们做了一个函数来获取字典。你当然可以用手来做,但这要容易得多。我用了<a href="https://docs.python.org/2/tutorial/datastructures.html#dictionaries" rel="nofollow">dictionary comprehension</a>。注意我是如何在函数中使用<code>return</code>(进一步了解<a href="http://learnpythonthehardway.org/book/ex21.html" rel="nofollow">here</a>)的。这样我就可以将函数的结果保存到变量中。注意,我使用<code>string.ascii_lowercase</code>构建字典。这是一个包含所有小写字母的字符串。在使用键或比较字符串时,大小写很重要。记住<code>'m' != 'M'</code>。您可以阅读有关枚举的内容<a href="https://docs.python.org/2/library/functions.html#enumerate" rel="nofollow">here</a></p>
<p>下面的一些代码看起来应该很熟悉,所以我将不详细介绍。但是我确实改变了你的列表。我使用了一个列表理解,你可以阅读关于<a href="https://docs.python.org/2/tutorial/datastructures.html#list-comprehensions" rel="nofollow">here</a>。你知道吗</p>
<p>我还将变量的名称更改为建议的Python命名约定。变量在其他语言中被命名为<code>likeThis</code>,而在Python中我们将变量命名为<code>like_this</code>。它更容易阅读。你知道吗</p>