Python凯撒密码caesar5.py如何将逐行输出改为列表输出
代码修改方案
修改思路
你原代码的问题有两处:
- 打印逻辑放在了字符遍历的内层循环中,会导致每拼接一个字符就输出一次
- 没有专门的容器存储所有移位结果,最终无法整合成列表输出
修改后的代码(适配Python2,与你原代码运行环境一致)
alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" str_in = raw_input("Enter ciphertext: ") result_list = [] # 存储所有移位结果的空列表 for shift in range(26): n = len(str_in) str_out = "" for i in range(n): c = str_in[i] loc = alpha.find(c) newloc = (loc + shift) % 26 str_out += alpha[newloc] result_list.append(str_out) # 每个移位的完整结果追加到列表 print(result_list)
适配Python3的版本调整
如果你使用的是Python3环境,只需将上述代码中raw_input改为input即可。
效果说明
运行修改后的代码,输入密文后会直接输出格式为[结果1, 结果2, ..., 结果26]的列表,符合你的需求。
内容的提问来源于stack exchange,提问作者Newbie21
相关产品推荐
相关产品推荐

