chucktu 2021-10-27 00:20 采纳率: 50%
浏览 22
已结题

有人帮我解释一下这一段吗?移位解密密码

for j in passwords:

passwords = []
if 65 <= j <= 90:
    j += move
    while j < 65:
        j += 26
    while j > 90:
        j -= 26
elif 97 <= j <= 122:
    j += move
    while j < 97:
        j += 26
    while j > 122:
        j -= 26
elif 48 <= j <= 57:
    j += move
    print(j)
    while j < 48:
        j += 17
    while j > 57:
        j -= 17
pa_list.append(chr(j))
  • 写回答

1条回答 默认 最新

  • Hann Yang 全栈领域优质创作者 2021-10-27 08:06
    关注

    我把你的代码改造一下:

    def abc(j,move):
        if 65 <= j <= 90:
            j += move
            while j < 65:
                j += 26
            while j > 90:
                j -= 26
        elif 97 <= j <= 122:
            j += move
            while j < 97:
                j += 26
            while j > 122:
                j -= 26
        elif 48 <= j <= 57:
            j += move
            #print(j)
            while j < 48:
                j += 17
            while j > 57:
                j -= 17
        return chr(j)
    
    def translate(psd,move):
        res = ''
        for p in psd:
            res += abc(ord(p),move)
        return res
    
    password = 'ABCDabcd1234'
    
    print(translate(password,1))
    print(translate(password,2))
    print(translate(password,3))
    print(translate(password,10))
    print()
    print(translate(password,-1))
    print(translate(password,-2))
    print(translate(password,-3))
    print(translate(password,-10))
    

    返回结果:
    BCDEbcde2345
    CDEFcdef3456
    DEFGdefg4567
    KLMNklmn*+,-

    ZABCzabc0123
    YZAByzab/012
    XYZAxyza./01
    QRSTqrst89)*

    就是把一个字符串中的大写、小写字母和数字,同时移动几个位置(move就是移动的位数)
    move为正数向后移动,为负数向前移动(把尾部的Z,z反过来接到头上去)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月4日
  • 已采纳回答 10月27日
  • 创建了问题 10月27日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效