考生文件夹下存在一个Python源文件PY301.py,请按照文件内说明修改代码,实现以下功能: 凯撒密码是一种非常古老的加密算法,相传当年凯撒大帝行军打仗时为了保证自己的命令不被敌军知道,它采用了替换方法将信息中的每一个英文字符循环替换为字母表序

admin2020-04-10  43

问题 考生文件夹下存在一个Python源文件PY301.py,请按照文件内说明修改代码,实现以下功能:
    凯撒密码是一种非常古老的加密算法,相传当年凯撒大帝行军打仗时为了保证自己的命令不被敌军知道,它采用了替换方法将信息中的每一个英文字符循环替换为字母表序列中该字符后面的第三个字符,即循环后三位,对应关系如下:
  原文:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
  密文:D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
  原文字符P,其密文字符C满足如下条件:
  C=(P+3)mod 26
    解密方法反之,满足如下条件:
    P=(C-3)mod 26
    凯撒密码包括加密和解密两个部分。
    凯撒密码的加密算法程序首先接收用户输人的文本,然后对字母a—z和字母A—Z按照密码算法进行转换,同时输出。其他非英文字母原样输出。
    试题程序:
    #以下代码为提示框架
    #请在…处使用一行或多行代码替换
    #请在_______处使用一行代码替换
    #注意:提示框架代码可以任意修改,以完成程序功能为准
    intxt=input(”请输入明文:“)
    …

选项

答案intxt=input(”请输入明文:”) for p in intxt; if"a"<=p<=“z” print(chr(ord("a")+(ord(p)-ord("a")+3)%26),end="") elif"A"<=p<=“Z” print(chr(ord("A")+(ord(p)-ord("A")+3)%26),end="") else: print(p,end="")

解析 使用for循环遍历输入的每一个字符,把该字符替换为该字符后面的第三个字符,将转化后的字符进行输出;如果输入的字符不是大小写字母,则原样输出字符,该部分功能通过if多分支结构实现。
转载请注明原文地址:https://jikaoti.com/ti/iP50FFFM
0

最新回复(0)