python凯撒加密

本文详细介绍了如何使用Python实现凯撒加密算法,通过split()函数获取输入的位移和原文,然后对每个字母进行ASCII码转换和位移操作。在处理过程中,注意检查字母ASCII码是否超出范围,确保加密后的字符仍在字母表内。最后,通过chr()函数将加密后的ASCII码转回字符并输出。这是一个关于Python编程和加密算法的基础实践。
摘要由CSDN通过智能技术生成

项目场景:

提示:这里简述项目相关背景:
实验课练习题目


问题描述:

提示:这里描述项目中遇到的问题:

在这里插入图片描述


原因分析:

首先题目要求一次输出两个数据,其中第一个数据表示移动的位数n,第二个数据是待加密的原文字符串,所以一次输入多个数据我使用了
input().split()这两个函数,并把这两个数据转为列表的类型,为了后面比较好操作,然后对第二个数据的每一个字母进行遍历,进行加密。

那么,怎么加密呢?凯撒加密的原理:将每个字母转换其往后的第n个字母,这里按照的26个字母顺序。原理很简单,但是怎么将字母转换为其后面的字母,这才是这道题目的重点,我们知道每一个字母对应一个acsii码,将字母转换为ascii码,往后移不就是再ascii码基础上加上位移。但是,要注意,我们知道字母的acsii码是有范围的,如果超出范围将得不到我们想要的数据,所以我们还要对数据进行判断。

解决方案:

提示:这里填写该问题的具体解决方案:

代码如下

str = list(input().split(' ', 1))
tmp = str[1]
ret = ''
for i in tmp:
    if i.isalpha():
        character = ord(i)+int(str[0])  # ord用于从给定字符值中获取数字值  字母加上移位后asc
        if(i.islower() and character > ord('z') or i.isupper() and character > ord('Z')):  # 范围检测
            character -= 26
        ret += chr(character)
    else:
        ret += i
print(ret)



知识点:

​(1) split(参数1,参数2) 一般第一个参数是分隔符,第二个参数是分割多项项,若不指定,分割一次。

​(2)ord():  ord(“字符串“) 返回值为字符对应的acsII码

​(3)chr() : 将对应的acsII码转为字符

运行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Super.Bear

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

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

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

打赏作者

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

抵扣说明:

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

余额充值