Python凯撒密码

Python凯撒密码

设置变量储存字母字符串

text = ‘ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz’

循环设置

while True:
# 输入需要选择的模式
way = input(‘你想要转码还是解码或是暴力解码呢?:\n’)
if way ==‘转码’:
raw = input(‘请输入你的原始信息:\n’)
num = input(‘请输入你的凯撒密码(1-52):\n’)
# 分别获取原始信息下标
for i in raw:
# 设置变量n储存i取值下标
n = text.find(i)
# 如果出现返回值为-1,则为特殊符号,直接打印
if n == -1:
print(i, end=’’)
else:
# 设置新变量储存转码后各子串的新下标
new_num = text.find(i)+int(num)
# 当新下标不超过52时
if new_num < 52:
# 直接打印新子串
for j in [new_num]:
print(text[j], end=’’)
else:
# 超过52时需要减去52再打印出新子串
for j in [new_num-52]:
print(text[j], end=’’)
print()
# 当用户输入内容为解码时
elif way ==‘解码’:
raw2 = input(‘请输入你的解码信息:\n’)
num2 = input(‘请输入你的凯撒密码(1-52):\n’)
# 获取需解码信息下标信息
for i in raw2:
# 设置变量储存解码信息下标数
m = text.find(i)
# 当返回值为-1时
if m == -1:
# 为未储存符号,直接打印i
print(i, end=’’)
else:
# 设置变量储存原始信息下标数
new_num2 = text.find(i)-int(num2)
# 当下标数小于0时
if new_num2 < 0:
# 加52打印字符串
for j in [new_num2+52]:
print(text[j], end=’’)
else:
# 否则直接打印字符串
for j in [new_num2]:
print(text[j], end=’’)
print()
else:
raw3 = input(‘请输入需要暴力解码的信息:\n’)
# 设置密码循环次数,取值1-51
for num3 in range(1, 52):
# 获取需解码信息下标信息
for i in raw3:
# 设置变量储存解码信息下标数
q = text.find(i)
if q == -1:
# 为未储存符号,直接打印i
print(i, end=’’)
else:
# 设置变量储存原始信息下标数
new_num3 = text.find(i) - int(num3)
# 当下标数小于0时
if new_num3 < 0:
# 加52打印字符串
for j in [new_num3 + 52]:
print(text[j], end=’’)
else:
# 否则直接打印字符串
for j in [new_num3]:
print(text[j], end=’’)
# 密码每次取值之后回车继续
print()
print()


版权声明:本文为superwoman001原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。