凯撒密码
class KS():
def JM(self,a):
for i in a:
str_1 = ''
if i.isalpha() == True:
if i == 'z':
str_1 = str_1 + 'a'
elif i == 'Z':
str_1 = str_1 + 'A'
else:
str_1 = str_1 + chr(ord(i)+1)
else:
str_1 = str_1 + i
return str_1
def M(self,a):
for i in a:
str_1 = ''
if i.isalpha() == True:
if i == 'a':
str_1 = str_1 + 'z'
elif i == 'Z':
str_1 = str_1 + 'Z'
else:
str_1 = str_1 + chr(ord(i)-1)
else:
str_1 = str_1 + i
return str_1
m = KS()
q = m.JM('abcddfgws123')
print(q)
W = m.M('ABhfedher123')
print(W)
结果:
3
3
为啥 ,我跟着一个博主发的对了好几遍,就变量不一样,为啥结果是这样
如有用请采纳
import string
def kaisa(s, k): #定义函数 接受一个字符串s 和 一个偏移量k
lower = string.ascii_lowercase #小写字母
upper = string.ascii_uppercase #大写字母
before = string.ascii_letters #无偏移的字母顺序 小写+大写
after = lower[k:] + lower[:k] + upper[k:] + upper[:k]#偏移后的字母顺序 还是小写+大写
#分别把小写字母和大写字母偏移后再加到一起
table = ''.maketrans(before, after) #创建映射表
return s.translate(table) #对s进行偏移 即加密
s = input('请输入一个字符串:')
k = int(input('请输入一个整数密钥:'))
print(kaisa(s, k))