微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何用偏移量增加的连续字母替换字符串中的每个字母?

如何解决如何用偏移量增加的连续字母替换字符串中的每个字母?

假设单词是 "CAT",我希望输出"DCW"。其中 C 变为下一个字母 D,而 A 变为来自 Asecond一个字母到 C 并且 T 变成了从 TW第三个一个字母。

我是第一步:

a = input("Enter a letter: ")
a = chr(ord(a) + 1)
print(a)

解决方法

您需要遍历单词:

word = 'CAT'
result = ''
for i,a in enumerate(word,1):
    result += chr(ord(a) + i)
print(result)

# alternatively,same loop as list comprehension
print(''.join(chr(ord(a) + i) for i,1)))

出:

DCW
DCW
,

试试这个:

import string
a =input("Enter a letter: ")
r=''
for i,e in enumerate(a,1):
   r=r+string.ascii_lowercase[string.ascii_lowercase.index(e.lower())+i]
print(r.upper())

或者像这样的一行:

print(''.join(list(string.ascii_lowercase[string.ascii_lowercase.index(e.lower())+i] for i,1) )).upper())

注意:在 Python 2 中,string.ascii_lowercasestring.lowercase

,

您要查找的内容称为 Caesar cypher,但偏移量随角色的位置而变化:

    def encrypt(text):
    result = ""
    for i in range(len(text)):
        char = text[i]
        if (char.isupper()):
            result += chr((ord(char) -65) % 26 + 65 + i + 1)
        else:
            result += chr((ord(char) - 97) % 26 + 97 + i + 1)
    return result

print(encrypt(input()))

来源:https://www.tutorialspoint.com/cryptography_with_python/cryptography_with_python_caesar_cipher.htm

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。