【问题标题】:Python stop input after empty string is entered [duplicate]输入空字符串后Python停止输入[重复]
【发布时间】:2020-01-10 16:53:29
【问题描述】:

最近我开始深入研究 python,不幸的是我一开始就很挣扎。 在输入空字符串后中止用户输入的最佳和最优雅的方法是什么?

无论我输入什么,我尝试的方法都不会破坏输入。

    def populate_list():
    list=[]
    while True:
        try:
            list.append(input("Enter values: "))
        except EOFError:
            break;
    return list

【问题讨论】:

  • 使用if 条件和continue;

标签: python


【解决方案1】:

您将input() 的结果直接传递给append(),没有中间步骤来检查它是否为空。

您需要将输入保存在一个单独的变量中并检查它是否为空将其附加到您的列表之前。

试试这个:

while True:
    answer = input("Enter values: ")
    if not answer:
        break
    lista.append(answer)
return lista

【讨论】:

  • OP 在 continue; 那里使用 while 循环更好。
  • @Kalana 如果我使用continue,这个循环将永远不会退出...
  • 如果输入的是False怎么办?无论如何它都会破裂。如果False 是有效输入怎么办?这行不通。
  • @Raphael input() 返回一个字符串,因此该值不能是其他类型,例如布尔值。它当然可以是文字字符串 "True""False",但 OP 并没有说需要特殊处理。
  • 我认为最好同时提及continue,同时保留break;
【解决方案2】:
def populate_list():
    lista=[]
    while True:
        try:
            s_input = raw_input("Enter values: ")
            if not s_input:
                print("INVALID INPUT")
                break
            lista.append(s)
        except EOFError:
            break;
    return list

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-27
    相关资源
    最近更新 更多