Python用字典方法将输入的字母移位后输出

Python中先输入字母的偏移数目,可以自动生成字母映射字典,例如,当输入偏移数目为3时,生成的字典内容为{"a":"d","b":"e"…}

该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
以下是一个Python示例代码,可以根据输入的偏移数目生成字母映射字典,并将输入的字符串中每个字母按照字母映射字典进行移位后输出。

def shift_letter(offset, s):
    mapping = {}
    for i in range(26):
        mapping[chr(ord('a') + i)] = chr(ord('a') + (i + offset) % 26)
        mapping[chr(ord('A') + i)] = chr(ord('A') + (i + offset) % 26)
    result = ""
    for c in s:
        if c.isalpha():
            result += mapping[c]
        else:
            result += c
    return result

这个函数接受两个参数:偏移数目和输入字符串。它首先生成一个字母映射字典,然后遍历输入字符串中的每个字符,如果该字符是字母,则使用字母映射字典进行移位,并将结果拼接到输出字符串中。如果该字符不是字母,则直接将其拼接到输出字符串中。

可以使用以下代码来测试这个函数:

offset = 3
s = "Hello, world!"
result = shift_letter(offset, s)
print(result)

输出结果为:"Khoor, zruog!",这是将输入字符串中的每个字母向右移动3位后得到的结果。

请根据实际情况修改代码中的偏移数目、输入字符串等参数。


如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

代码如下,可以一试

offset = 3  # 偏移数目
letter_map = {}  # 字母映射字典

for i in range(26):
    # 获取原始字母和偏移后的字母的ASCII码
    original_ascii = ord('a') + i
    shift_ascii = (original_ascii - ord('a') + offset) % 26 + ord('a')
    # 将ASCII码转换为对应的字符,并将原始字母和偏移后的字母存入字典中
    letter_map[chr(original_ascii)] = chr(shift_ascii)

print(letter_map)

from string import ascii_lowercase
offset = 3
shift_letter = ''

for item in ascii_lowercase:
    shift_num = ord(item) + offset
    if shift_num > 122:
        shift_num = shift_num - 123 + 97    #这个是如果是大于z,就从a重新开始
    shift_letter += chr( shift_num )

result = dict( zip( ascii_lowercase,shift_letter ) )
print(result)