C16.2 : Position du return

Avec des instructions conditionnelles

Application 1

1) Indiquer, en argumentant votre réponse, si les deux fonctions ci-dessous donnent le même résultat.

def choix1(n):
    if n < 0:
        return 'négatif'
    if n % 2 == 0:
        return 'positif et pair'
    return 'positif et impair'

def choix2(n):
    if n < 0:
        return 'négatif'
    elif n % 2 == 0:
        return 'positif et pair'
    else:
        return 'positif et impair'

2) Proposer une troisième version avec un seul return.

Afficher la correction
def choix3(n):
    if n < 0:
        resultat = 'négatif'
    elif n % 2 == 0:
        resultat = 'positif et pair'
    else:
        resultat = 'positif et impair'
    return resultat

Avec des boucles

Application 1

Écrire plusieurs versions d'une fonction premiere_occurrence(liste, x) qui prend une liste de nombres liste et un nombre x en paramètres et renvoie la position de la première occurrence de x dans liste, ou None si le nombre n'est pas dans la liste.

Afficher la correction
def premiere_occurrence1(liste, x):
    i = 0
    while i < len(liste) and liste[i] != x:
        i += 1
    if i < len(liste):
        return i
    else:
        return None

def premiere_occurrence2(liste, x):
    i = 0
    while i < len(liste):
        if liste[i] == x:
            return i
        i += 1
    return None

def premiere_occurrence3(liste, x):
    for i in range(len(liste)):
        if liste[i] == x:
            return i
    return None