【笔试真题】python实现加密电报,字母移位,凯撒密码

1.题目描述:

给定一个英文文件名,包含大写字母,小写字母。要求将所有的大写字母向后移一位,如'A'---'B','C'---'D'....'Z'---'A'依此类推,小写字母后移一位,形成闭环'a'---'b','b'---'c','c'---'d'....'z'---'a'。

2.解题关键 

明确A的ascii 码为65;cii码为97 详情可见:ASCII码一览表,ASCII码对照表http://c.biancheng.net/c/ascii/

在python中,ord(c) :可以将字母c转为相应ascii码,

                                   返回值是对应的十进制整数。

                      chr(c):  可以将ascii码转为对应的字母

                                 chr() 函数(对于8位的ASCII字符串)

解题思路:将符合条件的字母转为ascii码,对其加1移位后,再转为字母,对于A,a这类特殊字母直接强制转换。

解题要点:为了防止计算ascii码溢出,可以先减去起始位置的ascii码,计算出相对位移后 加上起始位置的ascii

3.代码部分

#输入一个字符串
str=input()

#初始化输出
j=0

for i in str:
    #获取到当前字母的ascii码
    iord= ord(i)

#若当前字母是尾部字母,则直接另其ascii码减去25,变为第一位字母。
    if i=='Z' or i=='z':
       iord=iord-25
       j=chr(iord)

#若当前字母是中部字母,则按照规则用ord转为ascii 后移一位ascii
#再用chr转为字母
    elif i<'z' and i>='a': 
       iord=(iord+1-97)%26+97
       j=chr(iord)


#若当前字母是中部字母,则按照规则用ord转为ascii 后移一位ascii
#再用chr转为字母
    elif i<'Z' and i>='A': 
       iord=(iord+1-65)%26+65
       j=chr(iord)


#输出字母
    print(j)

        


     这里字母是后移1位,可以调整后移字母位数,实现不同的加密

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不会飞的小企鹅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值