【发布时间】:2021-11-26 03:04:50
【问题描述】:
我正在做一个用 Python 编码消息的练习。下面的函数应该接受一条消息和一个数字,以将每个单词中的字母按字母表中的那个量移动,即如果移动 3 个间距,字母 a 将变为 d。
我有两个问题:
- 字母表的长度只有 26 个字符。如果您将一个字母移得太远,即超过 Z 的第 26 位,您会收到以下错误:
IndexError: 字符串索引超出范围
我会很高兴有一个修复程序将索引再次移回开始位置,并根据超过 26 个字符的剩余部分移动字母索引,即如果 char y 有 9 的移位,那么剩下的26 之后的 9 可以重新从 a 开始定位,使 y 成为字母 i。
- 如果我要输入带有空格的消息,即“我需要帮助”,则返回的字符不会保留每个单词之间的原始空格。
任何人都可以帮助解决问题 1 或 2 吗?
def message_to_code():
normal_message = input(str("Please enter a message you would like coded: "))
Cipher_shift = int(input("Please enter the whole number you would like to act as the key to hide your message "))
Alphabet = "abcdefghijklmnopqrstuvwxyz"
Cipher_message = ' '
for letter in normal_message:
Encrypted_letter = Alphabet.find(letter) + Cipher_shift
Cipher_message = Cipher_message + Alphabet[Encrypted_letter]
return print(Cipher_message)
message_to_code()
【问题讨论】: