Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 加密脚本的For循环问题_Python_Encryption - Fatal编程技术网

Python 加密脚本的For循环问题

Python 加密脚本的For循环问题,python,encryption,Python,Encryption,我试图创建一个简单的程序来加密字符串并返回其加密字符 但是,我遇到了for循环的问题,这导致Python显示错误: Traceback (most recent call last): File "C:/Users/Alex/Desktop/Uni/Programming/encrypt", line 18, in <module> encrypt(encin) File "C:/Users/Alex/Desktop/Uni/Programming/encrypt", line 12

我试图创建一个简单的程序来加密字符串并返回其加密字符

但是,我遇到了for循环的问题,这导致Python显示错误:

Traceback (most recent call last):
File "C:/Users/Alex/Desktop/Uni/Programming/encrypt", line 18, in <module>
encrypt(encin)
File "C:/Users/Alex/Desktop/Uni/Programming/encrypt", line 12, in encrypt
encout += e6
UnboundLocalError: local variable 'encout' referenced before assignment
你能看出它有什么问题吗


谢谢。

我想你想做的是:

e1 = ord(c)
您正在迭代字符串的字符,但将
ord
应用于整个字符串(
s
),而不是单个字符
c
。这是异常原因

更新:关于
encout
问题,您需要在方法顶部声明变量,以便在之前访问它,如下所示:

def encrypt(s):
    encout = ''
    # remaining of the method

我想你想做的是:

e1 = ord(c)
您正在迭代字符串的字符,但将
ord
应用于整个字符串(
s
),而不是单个字符
c
。这是异常原因

更新:关于
encout
问题,您需要在方法顶部声明变量,以便在之前访问它,如下所示:

def encrypt(s):
    encout = ''
    # remaining of the method

正如错误消息所说,您正在读取
encout
的值,这是
encrypt
函数的一个局部变量,在声明它之前(也就是说,在为它分配任何内容之前)

去掉
encout
全局变量——它是无用的,将
encout='
行移到
encrypt
的开头。然后,在
encrypt
的末尾添加
return encout
(在
for
循环终止后)。更改程序的结尾,使其显示:

print(encrypt(encin))

正如错误消息所说,您正在读取
encout
的值,这是
encrypt
函数的一个局部变量,在声明它之前(也就是说,在为它分配任何内容之前)

去掉
encout
全局变量——它是无用的,将
encout='
行移到
encrypt
的开头。然后,在
encrypt
的末尾添加
return encout
(在
for
循环终止后)。更改程序的结尾,使其显示:

print(encrypt(encin))

谢谢,我真傻。我现在看到了错误
UnboundLocalError:assignment之前引用的局部变量'encout
您在方法外部定义
encout
变量,并在内部重新定义它。这意味着可变范围的问题。最好使
加密
返回encout
并将其分配给全局
encout
变量。另外,你能用新的信息更新这个问题吗?谢谢,我太傻了。我现在看到了错误
UnboundLocalError:assignment之前引用的局部变量'encout
您在方法外部定义
encout
变量,并在内部重新定义它。这意味着可变范围的问题。最好使
加密
返回encout
并将其分配给全局
encout
变量。另外,你能用新的信息更新这个问题吗?谢谢你的回答,我将使用这个,因为我不喜欢使用“全局加密”。谢谢你的回答,我将使用这个,因为我不喜欢使用“全局加密”。