Python 加密脚本的For循环问题
我试图创建一个简单的程序来加密字符串并返回其加密字符 但是,我遇到了for循环的问题,这导致Python显示错误: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
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
变量。另外,你能用新的信息更新这个问题吗?谢谢你的回答,我将使用这个,因为我不喜欢使用“全局加密”。谢谢你的回答,我将使用这个,因为我不喜欢使用“全局加密”。