如何将输入的字符串的每个字符递增1并输出加密字符串?

2024-06-16 18:42:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚开始学习Python,以前没有编程经验。我想不出一个任务,这让我发疯。这是我的问题的最后一站,在我取消之前。以下问题:

编写一个代码,从输入中读取字符串,在每个字符的代码点上加1,并输出加密字符串。

样本输入1: 我喜欢ord函数

样本输出1: Jmpwf!pse!gvodujpo“

我知道它与for循环有关,但我对这个有很大的理解问题,因为我不知道如何在这里使用它们。我的想法是这样的:

_chr = input('Enter character(A-Z): ')
if _chr == 'Z':
    print('A')
else:
    print(chr(ord(_chr) + 1))

Tags: 函数字符串代码forinput编程经验字符
1条回答
网友
1楼 · 发布于 2024-06-16 18:42:44

您可以处理这样的事情:

def encodeString(string):
    encoded = ''
    for char in string:
        c = ord(char)

        if (c >= ord('A') and c <= ord('Z')):
            encoded += chr((c - ord('A') + 1) % 26 + ord('A'))

        elif (c >= ord('a') and c <= ord('z')):
            encoded += chr((c - ord('a') + 1) % 26 + ord('a'))

        # and so on for other regions of characters

        # or collect the unchanged character
        else: encoded += char

    return encoded

string = 'Happy New Year 2021' # or : string = input('Enter a sentence : ')

print(encodeString(string)) #==> 'Ibqqz Ofx Zfbs 2021'

相关问题 更多 >