Как обрабатывать исключения и особые условия с одним и тем же фрагментом кода Python - PullRequest
0 голосов
/ 18 мая 2018

Интересно, есть ли способ заставить Python выполнить тот же кусок кода, если что-то случится, или если есть ошибки.

Например, я пишу функцию, которая может получать символы после двоеточияв данной строке, и я хочу, чтобы она делала то же самое, если a) нет двоеточия или b) двоеточие существует, но после него нет символов .Давайте предположим, что в данной строке будет не более одного двоеточия.

def split_colon(string):
    try:
        ans = string.split(":")[1].strip()
        return ans
    except IndexError or if ans == "":
        return "Hmm, not a word is found"

Очевидно, я получаю SyntaxError в кодах выше.Как я могу достичь своей цели , а не путем:

def split_colon(string):
    try:
        ans = string.split(":")[1].strip()
    except IndexError:
        return "Hmm, not a word is found"
    if ans == "":
        return "Hmm, not a word is found"
    else:
        return ans

, которая будет дублировать те же коды?

1 Ответ

0 голосов
/ 18 мая 2018
string.partition(':')[2]

это путь.Результирующая строка будет пустой, если двоеточие не существует или после двоеточия нет символа.

...