<p>正如我在评论中提到的,你的变量msgReversed并没有在你的函数之外声明,所以当你在函数外调用它时,它没有被定义。为了避免发布重复的答案,以下是另一种方法:</p>
<p>我不知道您以前是否使用过类,但是这里有一个示例和pythons的官方文档(<a href="https://docs.python.org/2/tutorial/classes.html" rel="nofollow">https://docs.python.org/2/tutorial/classes.html</a>)</p>
<pre><code>class Encrypt:
def __init__(self):
(k,plaintext)=self.userInput()
self.reverseMsg(plaintext)
cipher =self.encript(self.msgReversed,k)
def userInput(self):
plaintext=input("Enter message to encript")
k=int(input("Enter encription Key you want to use (1-25)"))
return (k,plaintext)
def reverseMsg(self, plaintext):
self.msgReversed=''
leng=len(plaintext)-1
for c in plaintext:
self.msgReversed+=plaintext[leng]
leng=leng-1
print(self.msgReversed)
return(self.msgReversed)
def encript(slf, msgReversed, k):
alphabet=("abcdefghijklmnopqrstuvwxyz ")
cipher=''
for c in msgReversed:
if c in alphabet:
cipher += alphabet[(alphabet.index(c)+k)%(len(alphabet))]
print(cipher)
Encrypt()
</code></pre>
<p>至于全局变量,可以在函数中声明全局变量。您只需声明它是全局的:</p>
^{pr2}$
<p>因此,变量msgReversed的函数如下:</p>
<pre><code>def reverseMsg(plaintext):
global msgReversed
msgReversed = ''
leng=len(plaintext)-1
for c in plaintext:
msgReversed+=plaintext[leng]
leng=leng-1
print(msgReversed)
return(msgReversed)
</code></pre>