如何自定义 PyInputPlus 显示的错误消息?
How can I customise error messages shown by PyInputPlus?
如何自定义 PyInputPlus 在 python 中显示的错误消息?
试了很多方法都不行
import pyinputplus as pyip
number = pyip.inputNum("Enter your phone number : ",
min=1000000000,
max=9999999999)
number
我想将错误消息打印为 请输入有效的 10 位数字 phone。
有什么办法吗?
我尝试使用 "allowRegexes 和 blockRegexes" 但无法理解。
如果您将其用于真实世界的项目,我建议您使用 python 本身的 input
,这个库似乎没有很好的记录和维护。这可能会在您的代码中为将来带来很多奇怪的错误。
但要回答您的问题,您可以使用带有参数 blockRegexes 的正则表达式来完成。如果您无法理解它,这将是一个正则表达式问题而不是 python 问题。
从this website你可以学到很多关于正则表达式的知识,我推荐,正则表达式是一个非常重要的理解工具。
关于你的问题,accordingly to the docs:
blocklistRegexes
(Sequence, None): A sequence of regex str or
(regex_str, error_msg_str)
tuples that, if matched, will
explicitly fail validation.
因此,在您的情况下,元组中的第一项应该是正则表达式,以阻止所有具有多于或少于 10 个整数字符的内容:
^\d{10}$
可以找到此正则表达式的完整解释 here
你的元组中的第二项应该是你想要在错误发生时出现的字符串:
"请输入有效的 10 位数字 phone"
所以你的代码应该是这样的:
number = pyip.inputNum("Enter your phone number : ",
min=1000000000,
max=9999999999,
blockRegexes=[(r"^\d{10}$","please enter a valid 10 digit phone number")])
如何自定义 PyInputPlus 在 python 中显示的错误消息? 试了很多方法都不行
import pyinputplus as pyip
number = pyip.inputNum("Enter your phone number : ",
min=1000000000,
max=9999999999)
number
我想将错误消息打印为 请输入有效的 10 位数字 phone。 有什么办法吗? 我尝试使用 "allowRegexes 和 blockRegexes" 但无法理解。
如果您将其用于真实世界的项目,我建议您使用 python 本身的 input
,这个库似乎没有很好的记录和维护。这可能会在您的代码中为将来带来很多奇怪的错误。
但要回答您的问题,您可以使用带有参数 blockRegexes 的正则表达式来完成。如果您无法理解它,这将是一个正则表达式问题而不是 python 问题。
从this website你可以学到很多关于正则表达式的知识,我推荐,正则表达式是一个非常重要的理解工具。 关于你的问题,accordingly to the docs:
blocklistRegexes
(Sequence, None): A sequence of regex str or(regex_str, error_msg_str)
tuples that, if matched, will explicitly fail validation.
因此,在您的情况下,元组中的第一项应该是正则表达式,以阻止所有具有多于或少于 10 个整数字符的内容:
^\d{10}$
可以找到此正则表达式的完整解释 here
你的元组中的第二项应该是你想要在错误发生时出现的字符串:
"请输入有效的 10 位数字 phone"
所以你的代码应该是这样的:
number = pyip.inputNum("Enter your phone number : ",
min=1000000000,
max=9999999999,
blockRegexes=[(r"^\d{10}$","please enter a valid 10 digit phone number")])