quand utiliser if vs elif en python

Si j'ai une fonction avec plusieurs instructions conditionnelles où chaque branche est exécuté retours de la fonction. Dois-je utiliser plusieurs instructions if, ou if/elif/else? Par exemple, dire que j'ai une fonction:

def example(x):
    if x > 0:
        return 'positive'
    if x < 0:
        return 'negative'
    return 'zero'

Est-il mieux écrire:

def example(x):
    if x > 0:
        return 'positive'
    elif x < 0:
        return 'negative'
    else:
        return 'zero'

Les deux ont le même résultat, mais est un plus efficace ou considérés comme plus idiomatique que les autres?

Edit:

Un couple de gens ont dit que, dans le premier exemple, les deux si les déclarations sont toujours évalués, ce qui ne semble pas être le cas pour moi

par exemple, si je lance le code:

l = [1,2,3]

def test(a):
    if a > 0:
        return a
    if a > 2:
        l.append(4)

test(5)

l sera toujours égal à [1,2,3]

source d'informationauteur Sean Geoffrey Pietz