上述程序有哪些问题?可以怎样进行改进

img

       讨论
           plaincode =input(“请输入明文:
            forpin plaincode:
                      iford("a”)<=ord(p) <=ord("z”):
                              print(chrord"a")+(ord(p)-ord"a")+3)%26),end=''else:
                              print(p,end=!)
          上述程序有什么问题?
          可以在哪些方面进行改进?
        ·请你进行重构
         1、没有考虑大写
         2、加密参数固定,不能修改(考虑输入异常和类型判断)
         3、没有对应解密
         4、没有定义输出数据,导致输出语句混刮
Liuminatad 0412@Hotmail.con

现在市面上流行的是AES;
可以参考做成这样的


如果界面不会画,写成input()也行

plaincode =input('请输入明文:')
s = []
for p in plaincode:
    if ord('a')<=ord(p)<=ord('z'):
        s.append(chr(ord("a")+(ord(p)-ord("a")+3)%26))  # 将小写字母转变为顺序加3的字母,例如a-d,b-e,。。。,x-a,y-b
    elif ord('A')<=ord(p)<=ord('Z'):
        s.append(chr(ord("A")+(ord(p)-ord("A")+3)%26))  # 1、考虑大写:将大写字母同样按照以上规则编码
    else:
         s.append(p)
print("编码:",''.join([i for i in s]))

解码过程:

s1 = []
for p in plaincode:  # 也可以把plaincode改为s,将s解码回plaincode
    if ord('a')<=ord(p)<=ord('z'):
        s1.append(chr(ord("a")+(ord(p)-ord("a")-3)%26))
    elif ord('A')<=ord(p)<=ord('Z'):
        s1.append(chr(ord("A")+(ord(p)-ord("A")-3)%26))
    else:
        s1.append(p)
print("解码:",''.join([i for i in s1]))