提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
一、确定恺撒密码原理,用公式表示
二、子函数的确立
1.加密部分
2.解密部分
3.选择加密还是解密
三、确定各个子函数调用顺序以及完整代码
总结
前言
#随便写写,体验一下在csdn写文章#
第一篇blog为恺撒密码
一、确定恺撒密码原理,用公式表示 二、子函数的确立 1.加密部分代码如下:
def Encryption(): #加密
s = input("请输入需要加密的文字:\n")
for i in s:
c=''
if 'a' <= i <= 'z':
c += chr(ord('a') + (ord(i) - ord('a') + 3) % 26)
print(c, end='')
elif 'A' <= i <= 'Z':
c += chr(ord('A') + (ord(i) - ord('A') + 3) % 26)
print(c, end='')
else:
c += i
print(c, end='')
2.解密部分
代码如下:
def Deciphering(): #解密
c,s = input("请输入需要解密的文字:\n"),'' #变量定义及函数返回值与上述的加密函数略微不同,自己练手时为了了解而做的
for i in c:
if 'a' <= i <= 'z':
s += chr(ord('a') + (ord(i) - ord('a') - 3) % 26)
elif 'A' <= i <= 'Z':
s += chr(ord('A') + (ord(i) - ord('A') - 3) % 26)
else:
s += i
return print(s)
3.选择加密还是解密
def Determination(d): #决定要对字符串进行加密还是解密
if d == 0:
return Encryption()
elif d == 1:
return Deciphering()
三、确定各个子函数调用顺序以及完整代码
def Determination(d): #决定要对字符串进行加密还是解密
if d == 0:
return Encryption()
elif d == 1:
return Deciphering()
def Encryption(): #加密
s = input("请输入需要加密的文字:\n")
for i in s:
c=''
if 'a' <= i <= 'z':
c += chr(ord('a') + (ord(i) - ord('a') + 3) % 26)
print(c, end='')
elif 'A' <= i <= 'Z':
c += chr(ord('A') + (ord(i) - ord('A') + 3) % 26)
print(c, end='')
else:
c += i
print(c, end='')
def Deciphering(): #解密
c,s = input("请输入需要解密的文字:\n"),'' #变量定义及函数返回值与上述的加密函数略微不同,自己练手时为了了解而做的
for i in c:
if 'a' <= i <= 'z':
s += chr(ord('a') + (ord(i) - ord('a') - 3) % 26)
elif 'A' <= i <= 'Z':
s += chr(ord('A') + (ord(i) - ord('A') - 3) % 26)
else:
s += i
return print(s)
def main(): #开启整个程序的入口,启动第一步调用Determination函数
print("仅限加解密英文字母")
sel = eval(input("请选择加密或者解密模式(输入0为加密模式,输入1为解密模式):"))
Determination(sel)
main()
总结
注意定义变量时的位置与顺序;
核心两大环节——加密与解密最重要,可以单独拿出来调试;
决定加密、解密函数时注意返回值。
重点在于公式用程序语言表达。利用ord('a')或ord('A')限制26个字母的unicode编码码是从a(或A)字母开头的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)