抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >


Python Caesar

Caesar.py
#-*-coding:utf-8-*-
import os
def encryption():
str_raw = input("请输入明文:")
k = int(input("请输入位移值:"))
str_change = str_raw.lower()
str_list = list(str_change)
str_list_encry = str_list
i = 0
while i < len(str_list):
if ord(str_list[i]) < 123-k:
str_list_encry[i] = chr(ord(str_list[i]) + k)
else:
str_list_encry[i] = chr(ord(str_list[i]) + k - 26)
i = i+1
print ("加密结果为:"+"".join(str_list_encry))

def decryption():
str_raw = input("请输入密文:")
k = int(input("请输入位移值:(-1代表穷举)"))
if k==-1:
print("解密结果为:")
for k in range(1,27):
str_change = str_raw.lower()
str_list = list(str_change)
str_list_decry = str_list
i = 0
while i < len(str_list):
if ord(str_list[i]) >= 97+k:
str_list_decry[i] = chr(ord(str_list[i]) - k)
else:
str_list_decry[i] = chr(ord(str_list[i]) + 26 - k)
i = i+1
print ("".join(str_list_decry))
else:
print("解密结果为:")
str_change = str_raw.lower()
str_list = list(str_change)
str_list_decry = str_list
i = 0
while i < len(str_list):
if ord(str_list[i]) >= 97+k:
str_list_decry[i] = chr(ord(str_list[i]) - k)
else:
str_list_decry[i] = chr(ord(str_list[i]) + 26 - k)
i = i+1
print ("".join(str_list_decry))

def caesar():
print (u"1. 加密")
print (u"2. 解密")
choice = input("请选择:")
if choice == "1":
encryption()
elif choice == "2":
decryption()
else:
print (u"您的输入有误!")

if __name__ == '__main__':
try:
while True:
caesar()
except EOFError:
exit()
推荐阅读
Python Baconian Python Baconian Python MD5 Python MD5 Mac Code Test Mac Code Test Python ASCII 字符串 转换 Python ASCII 字符串 转换 Python RailFenceCipher Python RailFenceCipher Python Playfair Python Playfair

留言区

Are You A Robot?