在我目前的Python项目中,我通过while循环使用循环,并在其中包含输入函数。到目前为止,我已经根据使用IF的使用输入定义了三种不同的事情,并且当所述输入没有做任何事情时,我设法使用ELSE打印消息。
但是,当输入保持为空并进入循环中断时,如果action [0] ==“go”:行,我会根据得到一个IndexError。这是我正在使用的代码:
while True:
action = input("? ").lower().split()
#user puts in one of the words below plus a direction
if action[0] == "go":
#stuff happens
if action[0] == "get" :
#stuff happens
if action[0] == "exit":
break
else:
print("Please try again.")
此代码有效,但如上所述,如果我只按Enter或输入空格,则循环中断,我得到一个IndexError。我该如何解决这个问题?
答案 0 :(得分:2)
如果您什么都不输入,split
会给您一个空列表,所以当您尝试索引它时会抛出索引错误。解决方案是检查输入是否为空,如果是,则跳过其他条件并继续迭代。 if action == []: break
完成了这项任务。
while True:
action = input("? ").lower().split()
#user puts in one of the words below plus a direction
if action == []:
continue
if action[0] == "go":
#stuff happens
if action[0] == "get" :
#stuff happens
if action[0] == "exit":
break
else:
print("Please try again.")
答案 1 :(得分:1)
尝试在循环开始时使用此条件:
if not action:
print("Please try again.")
continue