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 用sql语句完成下列问题
  • ¥50 yalmip+Gurobi 求解线性规划
  • ¥15 微信开发者工具/云函数/数据库
  • ¥15 如何导出数据库中的表格
  • ¥15 Torch not compiled with CUDA enabled
  • ¥15 三种节点编号优化算法比较
  • ¥15 比特币ord程序wallet_constructor.rs文件支持一次性铸造1000个代币,并将它们分配到40个UTXO上(每个UTXO上分配25个代币),并设置找零地址
  • ¥115 用Java解决探地雷达dzt文件的解析过程
  • ¥20 有关神经网络这道(b)determine the parameters of neural network
  • ¥25 annaconda jvpyter