alphabet = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u',
'v', 'w', 'x', 'y', 'z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
message = ["a", "d"]
shift = int(input("Type the shift number:\n"))
w = len(message)
z = len(alphabet)
for i in range(w):
letter = message[i]
for x in range(z):
if letter == alphabet[x]:
for g in range(x, z):
letter = alphabet[shift]
print(f" the final {letter}")
例如,移位是= 1,那么a应该变成b,d应该变成e,但我不知道为什么最后的print函数会为a和d都打印字母,值b
如果shift = 1,我期望在最后得到
the final b
the final e
2条答案
按热度按时间bqf10yzr1#
使用内置的
str.translate
方法。jk9hmnmh2#
您可以使用enumerate而不是遍历索引来简化代码。保持相同方法(顺序搜索)的一个简单方法是预先准备一个移位字母表,并使用原始字母索引作为移位表中替换字母的位置
更高级的技术是使用内部字母数字直接计算替换字母的字符数(97是'a'的内部数字)。