要在Python中显示的有效错误消息



我在python中有以下代码用于验证电话号码。现在,此程序返回True或False。当结果为False时,期望出现错误消息,类似于:

  1. 国家代码错误
  2. 通过的国家/地区的电话格式错误
  3. 给定国家的有效格式是这样的

有人能帮我修改下面的代码吗

import phonenumbers

def is_valid(number,country):
try:
pn = phonenumbers.parse(number,country)
if phonenumbers.is_possible_number(pn) and phonenumbers.is_valid_number(pn):
return True
except:
return False
return False
def validNumber(phone_number,country):
try: 
parsed = phonenumbers.format_number(phonenumbers.parse(phone_number,country),
phonenumbers.PhoneNumberFormat.INTERNATIONAL)
except:
parsed = str(None)
print(parsed)
return parsed
def main():
while True:
phone_number=input('Enter your telephone number: ')
country=input('Enter your country: ')
phone_number = phone_number.replace('+', '', 1)

parsed = validNumber(phone_number,country)
valid_value = is_valid(parsed,country)

if valid_value:
print('{} is a valid entry.'.format(phone_number))
break
else:
print('{} is a not valid entry, please try again.'.format(phone_number))
main()

您可以在每个验证函数的除块之外的其他块中打印错误消息。例如,

error_msg = "The phone format for passed country is wrong" 
def is_valid(number,country):
try:
pn = phonenumbers.parse(number,country)
if phonenumbers.is_possible_number(pn) and phonenumbers.is_valid_number(pn):
return True
except phonenumbers.NumberParseException as e:
print(e, error_msg)
return False

查看此链接了解更多信息:https://www.programcreek.com/python/example/104093/phonenumbers.NumberParseException

相关内容

最新更新