注册 登录
编程论坛 Python论坛

字母表顺序加密

greenpop 发布于 2020-09-08 14:10, 2711 次点击
一串英文字符,每个字符都取其字母表中前一个字符。例如:明文:student 密文:rstcdms.请教各位大佬,怎样编程实现?
6 回复
#2
fall_bernana2020-09-08 14:23
以下是引用greenpop在2020-9-8 14:10:11的发言:

一串英文字符,每个字符都取其字母表中前一个字符。例如:明文:student 密文:rstcdms.请教各位大佬,怎样编程实现?

程序代码:

result=''.join(list(map(lambda x: chr(ord(x)-1),'student')))
print(result)

rstcdms
#3
Link2Points2020-09-08 17:23
程序代码:

s = "student"
s2 = ""
for i in range(len(s)):
    s2 += chr(ord(s[i]) - 1)
print(s2)
#4
apull2020-09-08 20:48
缺少对‘a’‘A’的判断
#5
sssooosss2020-09-09 08:23
共同学习
#6
foxprosue2021-03-22 11:39
s=input('input string  ')
s_list=list(s)
s1=''
for i in s_list:
    a=chr(ord(i)-1)
    s1+=a
   
print(s1)
#7
zyb1593572021-03-22 19:52
#楼上翻尸,借楼显摆下以前写的.
def pwd(n:int=-1): #n为偏余量.
    ss=input('input string >:  ')
    lst = [chr(i) for i in range(97,97+26)]   
    return "".join([lst[(lst.index(s)+int(n))%26] for s in ss])

print(pwd())  
input string >:  abz
结果:  zay

print(pwd(3))
input string >:  abz
结果:  dec

print(pwd(-2))   
input string >:  abz
结果:  yzx

#增加支持大写。
def pwd(n:int=-1): #n为偏余量.
    ss=input('input string >:  ')
    lst1 = [chr(i) for i in range(97,97+26)]
    lst2 = [chr(i) for i in range(65,65+26)]
    lst =[]
    for s in ss:
        if ord(s) >= 97:
            lst.append(lst1[(lst1.index(s)+int(n))%26])
        else:
            lst.append(lst2[(lst2.index(s)+int(n))%26])                                 
    return "".join(lst)

print(pwd())  
print(pwd(3))
print(pwd(-2))   


[此贴子已经被作者于2021-3-23 01:21编辑过]

1