X19701011 2021-11-17 10:08 采纳率: 71.4%
浏览 177
已结题

python关于凯撒密码求凯撒加密后的字符串,编写代码

【问题描述】

    凯撒密码是古罗马凯撒大帝用来保护重要军情的加密系统。这套密码系统在现在看来很低级,但是在古罗马时期还是发挥了重要作用的。

    凯撒密码的根本思想是按照字母表排列顺序将明文中每个字母变换成其后第n个字母。这里,nn=1~25)被称作秘钥。

    请编写程序,针对不同的输入字符串和移动位数,输出经过凯撒加密之后的字符串。

【输入形式】

第一个输入参数是移动的位数n,中间间隔一个空格之后,第二个输入参数是待加密的原文字符串
【输出形式】

加密后的密文字符串。注意,只加密字母,且不改变字母大小写。待加密的字符串可能存在比如"hello world"的形式,若与第一个参数一起以input的方式输入,在调用split()的时候要注意,会将待加密字符串也一并分割了。split()方法有参数指定分割多少项,建议采用,请上网搜索说明文档。
【样例输入】

5 NUDT
【样例输出】

SZIY
【样例说明】

输入参数中第一个参数'5'表示移动位数n=5,然后将第二个输入参数中每个字母都向后移动5位,得到输出字符串。

  • 写回答

1条回答 默认 最新

  • 技术专家团-Bamboo 2021-11-17 11:54
    关注
    n,s=input().split(' ',1)
    res=''
    for i in s:
        if i.isalpha():
            t=ord(i)+int(n)
            if (i.islower() and t>ord('z')) or (i.isupper() and t>ord('Z')):
                t-=26         
            res+=chr(t)
        else:
            res+=i
    print(res)   
    

    img



     觉得有用的话采纳一下哈

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

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月17日
  • 已采纳回答 11月17日
  • 创建了问题 11月17日

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵