首页 > 解决方案 > 没有用户输入时如何重复该功能

问题描述

我的程序应该存储联系人。当我输入号码时,如果没有用户输入,我需要程序继续询问号码。现在,即使用户输入没有输入数字,我的程序也会考虑添加的联系人。

我尝试使用一段时间 True 或如果不是。我最接近解决问题的是程序第二次要求输入一个数字,但仅此而已。

def add_contact(name_to_phone):

    # Name...
    names = input("Enter the name of a new contact:")


    # Number...
    numbers = input("Enter the new contact's phone number:")


    # Store info + confirmation
    name_to_phone[names]= numbers
    print ("New contact correctly added")

    return
Select an option [add, query, list, exit]:add
Enter the name of a new contact:Bob
Enter the new contact's phone number:
New contact correctly added
Select an option [add, query, list, exit]:

正如我所说,如果没有用户输入,程序应该继续询问一个数字,并且只有在有用户输入时才进入下一步。

标签: pythonif-statementuser-input

解决方案


使用循环。

def add_contact(name_to_phone):
    while True:
       name = input("Enter the name of a new contact: ")
       if name:
           break

    while True:
        number = input("Enter the new contact's phone number: ")
        if number:
            break

    name_to_phone[name] = number
    print("New contact correctly added")

除了检查输入是否为空之外,您可能还想对姓名和号码进行更彻底的检查。

在 Python 3.8 或更高版本中,您可以简单地每个循环一点。也许这将成为一个标准的成语;也许不吧。

while not (name := input("Enter the name...: ")):
    pass

推荐阅读