如何使用相同的 Python 代码块处理异常和特定条件

How to handle exceptions and specific conditions with the same chunk of Python codes

我想知道是否有任何方法可以让 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。我怎样才能通过以下方式实现我的目标 not

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

,哪个会重复相同的代码?

string.partition(':')[2]

是必经之路。如果不存在冒号或冒号后面没有字符,则生成的字符串将为空。