python凯撒密码实现 20

凯撒密码实现题目内容:实现一个凯撒密码的变种算法,对输入字符串进行加解密处理把字母a-z分别循环对应为相距13个位置的字母n-m,即原文字母:abcdefghijklmn... 凯撒密码实现
题目内容:
实现一个凯撒密码的变种算法,对输入字符串进行加解密处理
把字母a-z分别循环对应为相距13个位置的字母n-m,即
原文字母:a b c d e f g h i j k l m n o p q r s t u v w x y z
对应字母:n o p q r s t u v w x y z a b c d e f g h i j k l m
大写字母对应方式与小写字母类似,其他符号(含标点符号)不作处理

输入格式:
一个英文字符串

输出格式:
经过上述算法加密的字符串

输入样例:
The Zen of Python

输出样例:
Gur Mra bs Clguba
展开
 我来答
匿名用户
2017-05-09
展开全部
# codinng=utf-8
x = 'a b c d e f g h i j k l m n o p q r s t u v w x y z'.split(' ')
y = 'n o p q r s t u v w x y z a b c d e f g h i j k l m'.split(' ')
X = map(lambda x: x.upper(), x)
Y = map(lambda x: x.upper(), y)
dict_kaisa = dict(zip(x + X, y + Y))  # 创建一个字典, 键为原字符串, 值为加密字符串


# 定义凯撒加密函数, 输入字符串, 输出凯撒加密后字符串
def kaisa(string):
    result = []
    for i in range(len(string)):
        if string[i] in dict_kaisa.keys():
            result.append(dict_kaisa[string[i]])
        else:
            result.append(string[i])
    return ''.join(result)


print(kaisa('The Zen of Python'))  # 结果为Gur Mra bs Clguba
留昊珈蓝0hI
2017-09-26 · TA获得超过309个赞
知道小有建树答主
回答量:360
采纳率:0%
帮助的人:174万
展开全部
def main():
    st = input()
    sr1="abcdefghijklmnopqrstuvwxyz"
    sr2=sr1.upper()
    sr=sr1+sr1+sr2+sr2
    sResult=""
    for j in st:
        if j==" ":
            sResult = sResult +" "
            continue
        i=sr.find(j)
        if(i>-1):
            sResult=sResult+sr[i+13]
    print(sResult)
main()

但是检查了下发现 字符并没有按原字符输出而是直接舍弃,请让我再花时间修改一下

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友77f375b
2017-09-24
知道答主
回答量:4
采纳率:100%
帮助的人:3473
展开全部
# -*- coding: utf-8 -*-
"""
Created on Sun Sep 24 21:05:57 2017

@author: 
"""

x='a b c d e f g h i j k l m n o p q r s t u v w x y z'.split(' ')
y='n o p q r s t u v w x y z a b c d e f g h i j k l m'.split(' ')
#X=map(lambda x:x.upper(),x)
X='A B C D E F G H I J K L M N O P Q R S T U V W X Y Z'.split(' ')
#Y=map(lambda x:x.upper(),y)
Y='N O P Q R S T U V W X Y Z A B C D E F G H I J K L M'.split(' ')
kaisa=dict(zip(x+X,y+Y))

def fun(s):
    ans=[]
    for i in range(len(s)):
        if s[i] in kaisa.keys():
            ans.append(kaisa[s[i]])
        else:
            ans.append(s[i])
    return ''.join(ans)

input_s=input()
input_l=list(input_s)
ll=len(input_l)
result=[]
for i in range(ll):
    result.append(fun(input_l[i]))
print(''.join(result))
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式