gpt4 book ai didi

当缺少用户用户输入时,Python 索引超出范围

转载 作者:太空宇宙 更新时间:2023-11-03 16:06:00 26 4
gpt4 key购买 nike

我知道这是一个简单的修复 - 但我一生都无法弄清楚如何修复此 IndexError。

def show_status():
print("\nThis is the " + rooms[current_room]["name"])



rooms = {

1 : { "name" : "Highway" ,
"west" : 2 ,
"east" : 2 ,
"north": 2 ,
"south": 2} ,
2 : { "name" : "Forest" ,
"west" : 1 ,
"east" : 1 ,
"north": 1 ,
"south": 1} ,
}

current_room = 1

while True:

show_status()

move = input(">> ").lower().split()


if move[0] == "go":
if move[1] in rooms[current_room]:
current_room = rooms[current_room][move[1]]
else:
print("you can't go that way!")
else:
print("You didn't type anything!")

如果用户按下“返回”而不输入移动值,游戏就会崩溃并显示“列表索引超出范围”。我不明白为什么“else”没有在 while 循环中捕获它。

最佳答案

move[0] 检查列表的第一个成员,如果 move 为空,则会抛出 IndexError ,如下所示用户只需按 Enter 键即可。您可以首先检查 move 是否为 true:如果不是,and 运算符将绕过下一个检查。

您似乎期望用户输入一个空格,从而导致两个成员。您应该检查 len(move) == 2 以确保这一点。

修改如下:

# ...
move = input(">> ").lower().split()

if len(move) == 2 and move[0] == "go":
# the rest

关于当缺少用户用户输入时,Python 索引超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39780700/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com