列表超出范围.python中的循环列表



你能帮我解决我的问题吗?第28行表示列表索引超出范围。我尝试将列表中的I更改为范围中的I(len(消息((,但无济于事。感谢的帮助

letter = [
'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',
]
falseletters = [
'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',
]

message = [
]
def writing():
print("start writing")
print("write ,,end'' to end")
x = True
while x:
b = input(">>")
if b == 'end':
x = False
nour = 0
for i in range(len(message)):
nour = nour + 1
check = message[nour]
if check in [falseletters]:
print(falseletters[nour])
if check not in [falseletters]:
print(check)
if b != 'end':
message.append(b)
print("added", b)
writing()

您的代码中有几个错误:然而,我认为问题的核心在于,您没有在message列表中的每个单词上迭代每个字母,而是在检查是否有任何单词在falseletters中。下面是一个我相信你正在努力实现的工作示例:

letters = "abcdefghijklmnopqrstuvwxyz"
falseletters = "rstuvwxyzabcdefghijklmnopq"

def mapper(letter: str) -> str:
return falseletters[letters.index(letter)]

message = []

def writing():
print("start writing")
print("write ,,end'' to end")
x = True
while x:
b = input(">>")
if b == "end":
x = False
for check in message:
print("".join(map(mapper, check)))
else:
message.append(b)
print("added", b)

writing()

它获取message中的每个单词,并将该单词的每个字母映射到假字母。然后,将每个映射的字符打印为字符串。

最新更新