【问题标题】:How can I customise error messages shown by PyInputPlus?如何自定义 PyInputPlus 显示的错误消息?
【发布时间】:2022-01-20 23:54:04
【问题描述】:

如何在 python 中自定义 PyInputPlus 显示的错误消息? 我试过很多方法都做不到。

import pyinputplus as pyip
number = pyip.inputNum("Enter your phone number : ",
                       min=1000000000, 
                       max=9999999999)
number

我想打印错误消息 请输入有效的 10 位电话号码。 有什么办法吗? 我尝试使用 "allowRegexes and blockRegexes" 但无法理解。

【问题讨论】:

    标签: python validation input user-input python-phonenumber


    【解决方案1】:

    如果您将它用于现实世界的项目,我建议您使用 python 本身的input,这个库似乎没有很好的文档和维护。这可能会给您的代码带来很多奇怪的错误。

    但要回答您的问题,您可以使用带有参数 blockRegexes 的正则表达式来完成。如果您无法理解它,这将是一个正则表达式问题而不是 python 问题。

    从this website你可以学到很多关于正则表达式的知识,我推荐,正则表达式是一个非常重要的理解工具。 关于你的问题,accordingly to the docs:

    blocklistRegexes (Sequence, None): 正则表达式 str 或 (regex_str, error_msg_str) 元组,如果匹配,将 显式验证失败。

    因此,在您的情况下,元组中的第一项应该是一个正则表达式,用于阻止具有多于或少于 10 个整数字符的所有内容:

    ^\d{10}$

    这个正则表达式的完整解释可以找到here

    touple 中的第二项应该是发生错误时要出现的字符串:

    "请输入有效的 10 位电话号码"

    所以你的代码会是这样的:

    number = pyip.inputNum("Enter your phone number : ",
                           min=1000000000, 
                           max=9999999999,
                           blockRegexes=[(r"^\d{10}$","please enter a valid 10 digit phone number")])
    

    【讨论】:

    • 谢谢你,我使用了你所说的 input() 函数..
    • @AkashKumar 如果对您有帮助,您可以选择正确的答案。
    猜你喜欢
    • 1970-01-01
    • 2018-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 2016-09-19
    相关资源
    最近更新 更多