给出空输入时如何不关闭循环

时间:2016-05-27 22:46:04

标签: python python-3.x

在我目前的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。我该如何解决这个问题?

2 个答案:

答案 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