@Emince

Как отменить вызов функции при вызове другой в Python?

К примеру, я проверяю строку на наличие символов и ее, также, необходимо проверить на то, что числа, которые содержаться в ней не превышают определенного значения. Для этого я написал 2 функции. При вводе с троку не чисел, а буквенно - цифровых значений (а44, вв3 и т.д.) код падает, из- за функции, проверяющей числа. Как можно запретить выполнять функцию def big_nmbr если функция def letter_func возвращает значение?

def letter_func(string):
    nw_lst = string.split('.')
    nw_str = []

    for smb in nw_lst:
        if smb.isdigit() == 0:
            nw_str.append(smb)

    res_str = ', '.join(nw_str)
    return res_str

def big_nmbr(string):
    lst = string.split('.')
    lst = [int(i) for i in lst]
    nw_lst = []

    for num in lst:
        if num > 255:
            nw_lst.append(num)

    return nw_lst
  • Вопрос задан
  • 201 просмотр
Решения вопроса 1
includedlibrary
@includedlibrary
Можно добавить в место вызова проверку:
if letter_func(str) == '':
    big_nmbr(str)


Или добавить в big_nmbr блок try:
def big_nmbr(string):
    try:
        lst = string.split('.')
        lst = [int(i) for i in lst]
        nw_lst = []

        for num in lst:
            if num > 255:
                nw_lst.append(num)

        return nw_lst
    except ValueError:
        return []
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы