栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > Python

python凯撒加密

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python凯撒加密

项目场景:

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


问题描述:

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


原因分析:

首先题目要求一次输出两个数据,其中第一个数据表示移动的位数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)
print(ret)


知识点:

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

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

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

运行结果:

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/280122.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号