Невозможно подтвердить нигерийский номер - PullRequest
0 голосов
/ 19 сентября 2019

Я создал функцию, чтобы проверить, является ли значение номером телефона, но когда я попытался позвонить, он отображает неверный токен


from sys import *

def is_PhoneNumber(number):
    if number.isdecimal():
        pass
    else:
        print("This is not a number at all")
        exit()
    if number[:2] not in list(range(70, 91)):
        print("This is not a Nigerian phone number")
        exit()
    else:
        pass
    if len(number) != 10:
        print("Its not a Nigerian phone number")
    else:
        pass


    print("This is a phone number")

is_PhoneNumber(09064764777)

Ответы [ 2 ]

0 голосов
/ 19 сентября 2019

вы забыли поставить двойные кавычки при вызове номера (is_PhoneNumber ("09064764777")), так что компилятор принимает ваш номер как целое число, и при определении функции вы используете строковые функции в условии if-else, которое дает вамошибка токена.

0 голосов
/ 19 сентября 2019

Вы передаете число этой функции, вместо этого 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")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...