python9:凯撒加密

【问题描述】

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

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

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


【输入形式】

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

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

5 NUDT
【样例输出】

SZIY
【样例说明】

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


n,str = input().split(' ',1)
list=[]
for p in str:
    if "A"<=p<="Z":
        print(chr( ord("A")+   (ord(p)+int(n)-ord("A"))%26   ),end="")
    elif "a"<=p<="z":
        print(chr( ord("a")+   (ord(p)+int(n)-ord("a"))%26   ),end="")
    else:
        print(p,end="");        #只对字母加密,其余直接输出


# 对p加密  = 从'a'开始走p+n-'a'步
# 但步数可能会超过26,导致大小写改变,所以:(p+n-'a')%26,只取26的余数
# 最后'a'+ (p+n-'a')%26(步数)= 对p加密





#isalpha():判断i是否为英文字母
#ord():接受一个字符并返回它的ASCII值

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值