RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 594690
Accepted
Emil Aliyev
Emil Aliyev
Asked:2020-11-23 08:38:15 +0000 UTC2020-11-23 08:38:15 +0000 UTC 2020-11-23 08:38:15 +0000 UTC

凯撒密码 Python

  • 772

请帮忙。有一个任务:

https://stepik.org/lesson/Caesar-cipher-23896/step/1?adaptive=true&unit=6422

凯撒密码在于将输入字符串的每个字符替换为字母表中其左侧或右侧几个位置的字符。

对于所有字符,移位是相同的。移位是循环的,即 如果对字母表的最后一个字符应用单个移位,则它将被第一个字符替换,反之亦然。

编写一个程序,使用凯撒密码对文本进行加密。

使用的字母 −− 空格和小的拉丁字符:'abcdefghijklmnopqrstuvwxyz'

输入格式:第一行表示使用的密码偏移量:一个整数。正数对应于向右移动。第二行包含一个非空的加密短语。忽略前导和尾随空格。

输出格式:唯一包含短语:Result: "..." 的行,其中写的不是引号内的省略号,而是加密序列。

Sample Input 1:
3
i am caesar
Sample Output 1:
Result: "lcdpcfdhvdu"

所以这就是我解决它的方法:

a = int(input())
b = input()
c = ' abcdefghijklmnopqrstuvwxyz'
res = []
len_c=len(c)
for i in b:
    res.append(c[(c.find(i)+a)%len_c]) 
print('Result: ', '"',''.join(res),'"', sep = '')

解释器正确输出所有内容。本站不测试。请告诉我,我哪里出错了。

python
  • 3 3 个回答
  • 10 Views

3 个回答

  • Voted
  1. Best Answer
    fellzo
    2020-11-23T22:06:53Z2020-11-23T22:06:53Z

    我为此任务列出的清单:

    alpha = ' abcdefghijklmnopqrstuvwxyz'
    n = int(input())
    s = input().strip()
    res = ''
    for c in s:
        res += alpha[(alpha.index(c) + n) % len(alpha)]
    print('Result: "' + res + '"')
    

    在您的代码中,您应该在行首和行尾添加空格删除。

    • 4
  2. Kollabiz
    2022-02-09T01:27:58Z2022-02-09T01:27:58Z
    #modules
    from colorama import *
    from pyfiglet import *
    init()
    #title
    title = figlet_format('Cesar')
    print(Fore.WHITE)
    print(title)
    print(Fore.GREEN)
    #main
    while True:
        offset = int(input('Offset '))
        str = input('String ')
        alphabet = 'abcdefghijklmnopqrstuvwxyz'
        res = []
        ln = len(alphabet)
        n = '.\/[]{}()=-.,;:\'"1234567890~!`@#$%^&*<>?|=+_- '
        for l in str:
            if not l in n:
                res.append(alphabet[(alphabet.find(l)+offset)%ln])
            else:
                res.append(l)
        print(''.join(res))
    

    此代码过滤掉字符在此处输入图像描述

    • 2
  3. TigerTV.ru
    2022-08-13T09:06:20Z2022-08-13T09:06:20Z

    有可能是这样的:

    alphabet = " abcdefghijklmnopqrstuvwxyz"
    key = 3
    s = "i am caesar"
    subst = dict(zip(alphabet, alphabet[key:]+alphabet[:key]))
    res = ''.join(map(subst.__getitem__, s)) 
    print('Result: "' + res + '"') # Result: "lcdpcfdhvdu"
    

    或者

    subst = str.maketrans(alphabet, alphabet[key:]+alphabet[:key])
    res = s.translate(subst)
    
    • 1

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    如何停止编写糟糕的代码?

    • 3 个回答
  • Marko Smith

    onCreateView 方法重构

    • 1 个回答
  • Marko Smith

    通用还是非通用

    • 2 个回答
  • Marko Smith

    如何访问 jQuery 中的列

    • 1 个回答
  • Marko Smith

    *.tga 文件的组重命名(3620 个)

    • 1 个回答
  • Marko Smith

    内存分配列表C#

    • 1 个回答
  • Marko Smith

    常规赛适度贪婪

    • 1 个回答
  • Marko Smith

    如何制作自己的自动完成/自动更正?

    • 1 个回答
  • Marko Smith

    选择斐波那契数列

    • 2 个回答
  • Marko Smith

    所有 API 版本中的通用权限代码

    • 2 个回答
  • Martin Hope
    jfs *(星号)和 ** 双星号在 Python 中是什么意思? 2020-11-23 05:07:40 +0000 UTC
  • Martin Hope
    hwak 哪个孩子调用了父母的静态方法?还是不可能完成的任务? 2020-11-18 16:30:55 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    user207618 Codegolf——组合选择算法的实现 2020-10-23 18:46:29 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    Arch ArrayList 与 LinkedList 的区别? 2020-09-20 02:42:49 +0000 UTC
  • Martin Hope
    iluxa1810 哪个更正确使用:if () 或 try-catch? 2020-08-23 18:56:13 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5