1

如何在 python 中自定义 PyInputPlus 显示的错误消息?我尝试了很多方法,但无法做到。

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

我想打印错误信息,因为请输入有效的 10 位电话号码。 有什么办法吗?我尝试使用“allowRegexes 和 blockRegexes”但无法理解。

4

1 回答 1

2

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

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

这个网站你可以学到很多关于正则表达式的知识,我推荐,正则表达式是一个非常重要的理解工具。关于您的问题,根据文档

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

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

^\d{10}$

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

您的 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")])
于 2021-12-18T13:27:55.960 回答