【问题标题】:When asking for input in Python, is there a way to check if each key input is within a valid set of inputs?在 Python 中询问输入时,有没有办法检查每个键输入是否在有效的输入集中?
【发布时间】:2021-12-27 04:00:19
【问题描述】:

我正在尝试仅接受电话号码的输入。提示用户输入一个数字。一种方法是接受任何输入,在用户输入输入后,检查它是否是有效的电话号码。但是,我不想在用户按下回车键后检查输入 ,我想检查每个输入 as 用户正在按下每个键。如果密钥是一个数字,那么它将被接受。例如,如果用户键入 1234a,则输入将仅接受并显示 1234,并且按 a 或任何无效键不会导致任何行为。

【问题讨论】:

  • 这将需要某种关键监听器,更简单的解决方案可能是接受用户输入并删除任何无效字符(在这种情况下为非数字)
  • 我自己从未尝试过,但这看起来很有希望:How to read a single character from the user?
  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: python input


【解决方案1】:

我认为这可能会对您有所帮助。它的作用是以以下形式获取特定的用户输入:

  1. 只有数字
  2. 使用以下模式:XXX-XXX-XXXX。

这显然可以根据您的需要制作成特定的数字格式,包括国家代码和/或本地数字模式。

# import RegEx module
import re

def phone_checker(phone_number):
    print("Enter phone number as XXX-XXX-XXXX")
    while True:
        pattern = r'\d{3}-\d{3}-\d{4}' #create a phone number pattern
        res = re.findall(pattern,phone_number) #search for pattern in user input
        to_string = ''.join(res) #convert to string

        if phone_number in to_string:
            print("Number accepted!")
            break
        else:
            print("Number not recognized. Try again.")

phone_checker(phone_number=input("Enter phone number: "))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-03
    • 2023-03-24
    • 2020-12-25
    • 1970-01-01
    • 1970-01-01
    • 2011-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多