字符串加密

最近在Pyhon123 官网 (里面的题目都是基础的,还行吧!可以学一些骚操作!)练习python基础语法的时候,在字符串专项练习里面有一道挺有意思的一道。题目如下:

描述‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

用户在一行中输入一个包括大小写字母和数字的字符串,编程将其中的大写字母用字母表中该字母后的第5个字母替代,小写字母用字母表中该字母后的第3个字母替代,其他字符原样输出,实现字符串加密。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

输入格式‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

输入一个至少包含一个字母的字符串‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

输出格式‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

加密后的字符串‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

示例 1

输入:Life is short, you need Python!

输出:Qlih lv vkruw, brx qhhg Ubwkrq!

解决:直接上代码,注释也写代码在后面了。

​
import string
lower = string.ascii_lowercase #生成26个小写
upper = string.ascii_uppercase #生成26个大写
before = string.ascii_letters #小写和大写一起生成
print("lower:",lower)
print("upper:",upper)
print("before:",before)

after = lower[3:] + lower[:3] + upper[5:] + upper[:5]
print("after:",after)
print("取before字符串里面的第一个单词‘a’,看他的ASCII是",ord(before[0]))
print("取after字符串里面的第一个单词‘d’,看他的ASCII是",ord(after[0]))#好让能看出下一行的函数作用是什么。
table = str.maketrans(before, after) #maketrans形成映射,注意 2个字符串长度要相等
print(table)
"""
str.translate(table) 函数使用 table 作为翻译表,对原字符串中的内容进行替换.
"""
sentence = "Life is short, you need Python!" #要加密的句子
result = sentence.translate(table)
#也可以这样写:注意要转化的句子写在前面,映射表写在后面,不然报错
#result = str.translate(sentence,table)

print("加密前的句子:", sentence)
print("加密后的句子:", result)

为了能看懂解题过程,每一步也做了输出!

字符串加密_第1张图片

哈哈,那个  table 映射输出太长啦!塞不下所以省略了

总结: 

        导入string 模块 为了方便生成26个字母。

        关键大小字母字符串 拼接这个要想得到。

        调用 str.maketrans() 函数 和 那个  translate()函数,这两个函数要一起使用,前者是转化为映射表,后者 就直接 把要加密的原字符串直接转化为 映射后对应的结果。

                                                菜鸟第一次发表文章,写作手法有点废,请各位网友恳请谅解。你们的反馈是我的动力!

你可能感兴趣的:(python)