Python实用代码片段(1)-rot13加密
Python之禅:THIS.PY
你安装了python之后,能在Lib目录下找到一个this.py的文件,就是此处的内容。
s = """Gur Mra bs Clguba, ol Gvz Crgref""" #编码后的字符串,我删除了很多信息
d = {} #空字典
for c in (65, 97): #c就是2个值,65和97
for i in range(26): #26个字母
d[chr(i+c)] = chr((i+13) % 26 + c) #建立字典对应关系
print("".join([d.get(c, c) for c in s])) #将新的字符串加密(rot13)得到一个新的字符串。
The Zen of Python, by Tim Peters
代码分析
chr:返回指定数字的unicode字符串
chr(i, /)
Return a Unicode string of one character with ordinal i; 0 <= i <= 0x10ffff. chr(65) 是A chr(90)是Z ,差25
chr(97) 是a chr(122)是z,差25(26个英文字母)
chr(i+c),i从0到25
两个for循环建立了一个字典
d[chr(i+c)] = chr((i+13) % 26 + c) #超出26个字符要求余数+C,这是关键 {'A': 'N',
'B': 'O',
'C': 'P',
'D': 'Q',
'E': 'R',
'F': 'S') #省略了很多 A后第13个字符串后的N
代码改造成函数
示例代码
def rot_n(s,n=13): #接受一个字符串,通过将每个字符串往后挪13位(默认值,可以自行更改)
d = {}
for c in (65, 97):
for i in range(26):
d[chr(i+c)] = chr((i+n) % 26 + c)
return "".join([d.get(c, c) for c in s])
sen = 'i love china' #原始字符串
print(rot_n(sen,13)) #v ybir puvan #加密后的字符串
解码代码
def de_rot_n(s,n=13):
d = {}
for c in (65, 97):
for i in range(26):
d[chr(i+c)] = chr((i-n) % 26 + c) #返回来就是解密
return "".join([d.get(c, c) for c in s])
sen = 'v ybir puvan'
print(de_rot_n(sen,13)) #i love china
Python实用代码片段(1)-rot13加密的更多相关文章
- [python实用代码片段]python获取当前时间的前一天,前一周,前一个月
python获取当前时间的前一天,前一周,前一个月. 实用python的datetime.timedelta方法,避免了有的月份是30和31等不同的情况. 获取前一个月的时间,方法实现:首先datet ...
- 即学即用的 30 段 Python 实用代码
[☞ 分享:最全最新的Python学习大礼包 ☜ 点击查看](https://mp.weixin.qq.com/s?__biz=MzU2MzgyODA4OA==&mid=100000592&a ...
- PHP实用代码片段(三)
1. 目录清单 使用下面的 PHP 代码片段可以在一个目录中列出所有文件和文件夹. function list_files($dir) { if(is_dir($dir)) { if($handle ...
- PHP实用代码片段(二)
1. 转换 URL:从字符串变成超链接 如果你正在开发论坛,博客或者是一个常规的表单提交,很多时候都要用户访问一个网站.使用这个函数,URL 字符串就可以自动的转换为超链接. function mak ...
- C#程序员经常用到的10个实用代码片段 - 操作系统
原文地址 如果你是一个C#程序员,那么本文介绍的10个C#常用代码片段一定会给你带来帮助,从底层的资源操作,到上层的UI应用,这些代码也许能给你的开发节省不少时间.以下是原文: 1 读取操作系统和C ...
- 回归 | js实用代码片段的封装与总结(持续更新中...)
上一次更博还是去年10月28号了,截至今天已经有整整4个月没有更新博客了,没更新博客不是代表不学了,期间我已经用vue做了两个项目,微信小程序做了一个项目,只是毕竟找到工作了,想偷偷懒,你懂的. ...
- Android 实用代码片段
一些不常见确又很实用的代码块. 1.精确获取屏幕尺寸(例如:3.5.4.0.5.0寸屏幕) public static double getScreenPhysicalSize(Activity ct ...
- C#程序员经常用到的10个实用代码片段
1 读取操作系统和CLR的版本 OperatingSystem os = System.Environment.OSVersion; Console.WriteLine(“Platform: {}”, ...
- PHP实用代码片段(一)
1. 发送 SMS 在开发 Web 或者移动应用的时候,经常会遇到需要发送 SMS 给用户,或者因为登录原因,或者是为了发送信息.下面的 PHP 代码就实现了发送 SMS 的功能. 为了使用任何的语言 ...
- Android实用代码片段
有时候,需要一些小的功能,找到以后,就把它贴到了博客下面,作为留言,查找起来很不方便,所以就整理一下,方便自己和他人. 一. 获取系统版本号: 1 PackageInfo info = this.g ...
随机推荐
- MAUI新生-XAML语法基础:语法入门Element&Property&Event&Command
一.XAML(MAUI的XAML)和HTML 两者相似,都是标签语言(也叫标记)组成的树形文档.每个标签元素,可视为一个对象,通过"键=值"形式的标签属性(Attribute),为 ...
- C#设置picturebox滚动条来实现查看大图片
要给PictureBox添加滚动条需要以下步骤: (1)将picturebox放在panel上: ( 2)将panel的AutoScroll设置为ture: (3)将picturebo ...
- CPU TLB原理 [转载好文]
首先,我们知道MMU的作用是把虚拟地址转换成物理地址.虚拟地址和物理地址的映射关系存储在页表中,而现在页表又是分级的.64位系统常见的配置是4级页表,就以4级页表为例说明.分别是PGD.PUD.PMD ...
- Kafka事务原理剖析
一.事务概览 提起事务,我们第一印象可能就是ACID,需要满足原子性.一致性.事务隔离级别等概念,那kafka的事务能做到什么程度呢?我们首先看一下如何使用事务 Producer端代码如下 Kafka ...
- python进阶(28)import导入机制原理
前言 在Python中,一个.py文件代表一个Module.在Module中可以是任何的符合Python文件格式的Python脚本.了解Module导入机制大有用处. 1. Module组成 一个.p ...
- 使用c#的 async/await编写 长时间运行的基于代码的工作流的 持久任务框架
持久任务框架 (DTF) 是基于async/await 工作流执行框架.工作流的解决方案很多,包括Windows Workflow Foundation,BizTalk,Logic Apps, Wor ...
- Azure DevOps Server 用户组加入 Azure AD Domain Service 管理用户
一,引言 今天我们继续讲解 Azure DevOps Server 的内容,对于管理用户组除了在 Azure DevOps Server 服务器上添加管理员方式外,还有没有其他方式,Azure Dev ...
- 解决fpdf不能写入中文问题
安装依赖 pip3 install FPDF -i https://mirrors.aliyun.com/pypi/simple fpdf 原生是php调用的,不过他也提供了python的调用方式 示 ...
- 【终极解决办法】pyinstaller打包exe没有错误,运行exe提示Failed to execute script 'mainlmageWindows' due tounhandled exception: No module named 'docx'
一.通过pyinstaller打包exe可执行文件,由于我的py是多个,所以要先生成spec文件,代码如下: pyi-makespec mainImageWindows.py 此时生产了一个mainI ...
- 【Scala】常见题目中Scala的使用
一.简单输出 BC2:打印一辆小飞机 object Main{ def main(args: Array[String]) { println(" ** ") println(&q ...