Вы передаете число этой функции, вместо этого isdigit
является встроенной функцией для строки.Попробуйте использовать is_PhoneNumber("09064764777")
ПРИМЕЧАНИЕ:
В Python 3.7.3 вы можете теперь «напечатать подсказку» своего кода.Чтобы избежать путаницы type mismatch
, вы можете указать тип переменных.
Этот код будет по-прежнему работать на Python 3.7.3, и ваша IDE поможет вам распознать / запомнить типпеременная. ПРИМЕЧАНИЕ:
Такие функции, как isalpha, isdigit, is_something (например, ваш is_PhoneNumber), обычно возвращают логическое значение для распознавания, если данные на входе «являются или нет» как функциипроверить.Ваш код может быть изменен следующим образом:
from sys import *
def is_PhoneNumber(number: str) -> bool:
print("is_PhoneNumber | Analyzing number {}".format(number))
if not number.isdigit():
print("is_PhoneNumber | String {} is not a number".format(number))
return False
if number[:2] not in list(range(70, 91)):
print("is_PhoneNumber | This is not a Nigerian phone number")
return False
if len(number) != 10:
print("Its not a Nigerian phone number")
return False
print("This is a Nigerian phone number")
return True
is_PhoneNumber("09064764777")