用python凯撒函数,我跟着一个博主做的,就参数不一样,为啥我出不来,我对了好几遍,求解!!

凯撒密码

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))