Python中两个encrypt函数为何效果不同?第一个无法正常加密
两个encrypt加密函数的功能差异分析
核心差异:加密结果的存储方式完全不同
第一个函数(加密失效):
遍历输入字符串a时,仅将加密后的字符赋值给循环临时变量n。但Python中字符串是不可变类型,n只是原字符串单个字符的副本,修改n不会对原字符串a产生任何影响。最后打印的仍是原始输入的字符串,因此输入abc输出还是abc。对应代码:
def encrypt(a, b): for n in a: # n是临时变量,修改它无法改变原字符串a n = alphabet[alphabet.index(n)+b] # 输出的是未修改的原始输入a print(f"The encoded text is {a}") encrypt(text,shift)第二个函数(加密有效):
先创建空字符串new作为加密结果容器,每次循环将加密后的字符追加到new中,逐步拼接出完整的加密字符串。最后打印的是这个新生成的加密字符串,因此输入abc能得到加密后的cde。对应代码:
def encrypt(a, b): new ="" for n in a: # 将加密字符追加到新字符串,逐步构建结果 new += alphabet[alphabet.index(n)+b] # 输出拼接完成的加密字符串 print(f"The encoded text is {new}") encrypt(text,shift)
内容的提问来源于stack exchange,提问作者ddg12
相关产品推荐
相关产品推荐

