ai didi

python - 为什么我的 Python 代码出现 "not defined"错误?

转载 作者:行者123 更新时间:2023-12-01 05:43:34 24 4
gpt4 key购买 nike

如果变量“key”返回到解密函数中,为什么它无法被识别?错误显示“NameError:全局名称'key'未定义”以下是代码:

alphabet = 'abcdefghijklmnopqrstuvwxyz'
alphaList = list(alphabet)
text = "g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj"

def createKey(aList):
key = []
count = 0
for letter in aList:
if count < 24:
key.append(aList[count + 2])
else:
key.append(aList[count - 24])
count += 1
return key

def decrypt(text):
createKey(alphaList)
decryptedList = []
textList = list(text)
for c in textList:
if c in alphaList:
index = alphaList.index(c)
decryptedList.append(key[index])
else:
decryptedList.append(c)
decryptedText = "".join(decryptedList)
return decryptedText

print decrypt(text)

最佳答案

您从未分配 key :

createKey(alphaList)

将其更改为:

key = createKey(alphaList)

发生这种情况是因为 createKey(alphaList) 中的 keycreateKey 名称范围的一部分。尽管您返回了它,但您不会将其创建为 decrypt 名称范围的一部分。

或者,您可以使用全局变量,但我不建议这样做,特别是因为通过在 decrypt() 中分配 key 可以轻松解决:

alphabet = 'abcdefghijklmnopqrstuvwxyz'
alphaList = list(alphabet)
text = "g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj"
key = []

def createKey(aList):
global key
# everything else
# no need to return, the `global key` has been changed

def decrypt(text):
global key
createKey(alphaList)
# everything else

引用文献:

关于python - 为什么我的 Python 代码出现 "not defined"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16843914/

24 4 0
文章推荐: python - 使用 NDB 中的 Key 检索实体
文章推荐: python - 如何在pygame中获取图片大小(python)
文章推荐: python - 迭代包含重复元素的列表
文章推荐: javascript - Turbolinks 回调完全加载的页面
行者123
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com