加密字符串
描述
密码对照表的第一行为明码行,放置大写字母表(如下表第一行所示。)
第二行为按照以下规则生成的密码行:
给定一个单词,将单词中所有字符转为大写字母,对于单词中重复出现的字母,保留第一次出现的,删除之后重复出现的该字符。
用剩余字母组成秘钥从密码行的开始位置放置;再用未在秘钥中出现的其他大写字母按字母表顺序依次填充密码行剩余位置。
例如:给定单词“HelloPython”,删除其中重复出现字母后得到秘钥“HELOPYTN”,将秘钥依次填入密码行最开始的位置,再用未在秘钥中出现的其他大写字母按字母表顺序依次填充密码行的剩余位置,最终得到密码行(如下的第二行所示)
密码对照表
ABCDEFGHIJKLMNOPQRSTUVWXYZ
HELOPYTNABCDFGIJKMQRSUVWXZ
输入一个字符串,将其中所有字母转为大写字母,依照明码密码对照表对其做加密处理,输出加密后的密文字符串。
输入格式
输入有两个:
输入一个字符串做秘钥
输入一个需要加密的符串
输出格式
输出加密后的密文字符串
示例1
输入:
HelloPython
GONE WITH THE WIND
输出:
TIGP VARN RNP VAGO
示例2
输入:
GonewiththeWind
Directed by Victor Fleming
输出:
TEDPWNRWE OY UDNRKP ICWFDJT
代码
#1文章来源:https://www.toymoban.com/news/detail-401770.html
alpha="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
a2=alpha
x=input().upper()
z=input().upper()
y=list(set(x))
y.sort(key=x.index)
x=''.join(y)
for i in x:
alpha=alpha.replace(i,'')#多看看,这次就是卡在这了,replace()函数并不改变原字符串,通过重新赋值实现更改
t=x+alpha
transport=str.maketrans(a2,t)
z1=z.translate(transport)
print(z1)
#2:答案解法文章来源地址https://www.toymoban.com/news/detail-401770.html
import string
upperLetter = string.ascii_uppercase
s = input().upper() # 输出做密钥的字符串
code = list(set(upperLetter) - set(s)) #
code.sort() # 重排序
ls = list(set(s))
ls.sort(key = s.index) # 按输入字符串顺序重排序
keys = ''.join(ls + code)
decode = input().upper() # 输入要加密的字符串
table = ''.maketrans(upperLetter, keys) # 参数为原始字符串,替换字符串
print(decode.translate(table))
到了这里,关于python 加密字符串的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!