Exercice : 410 - exercices courts corrigés

Créer une fonction mult_ou_plus avec des arguments num1 et num2 qui retourne le produit de num1 par num2 si ce produit est < à 1000, la somme de num1 et num2 si le produits et >=1000Option : Améliorer l'affichage en indiquant l'opérateur qui à été retenu.

1
def mult_ou_plus(num1,num2):
2
    # num1 et num2 sont les arguments de la fonction
3
    # votre code ci-dessous indenté par rapport à la déclarartion de la fonction def
4
    
5
    print(num1,num2,res)
6
    return res
7
n1=12
8
n2=5
9
res=mult_ou_plus(n1,n2)
10
n1=120
11
n2=12
12
res=mult_ou_plus(n1,n2)

Question

Corrigé de la fonction 410-1 : une fonction simple

Solution

1
def mult_ou_plus(num1,num2):
2
    # num1 et num2 sont les arguments de la fonction
3
    # votre code ci-dessous indenté par rapport à la déclarartion de la fonction def
4
    
5
    if num1 > num2:
6
        res = num1 * num2
7
    else:
8
        res = num1 + num2
9
    
10
    # fin de votre code
11
    print(num1,num2,res)
12
    return res
13
n1=12
14
n2=5
15
res=mult_ou_plus(n1,n2)
16
n1=120
17
n2=12
18
res=mult_ou_plus(n1,n2)

Question

410-2 : listes

A partir d'une liste

*410-2a-> Afficher les éléments dont la valeur est divisibles par 5 (indice 1)

*410-2b -> Créer une liste numlistdiv5 constituées des éléments dont les valeurs sont divisibles par 5 (solution)

Pour ajouter des éléments dans une liste, chercher de l'aide sur les méthodes append et extend, bien comprendre la différence entre les deux méthodes.

1
numlist = [10,20,33,46,55]
2
print(numlist)
3
4
# votre code ci-dessous
5

Indice

1
numlist = [10,20,33,46,55]
2
print(numlist)
3
4
# votre code ci-dessous
5
element=0
6
7
for element in numlist:
8
    if element % 5 == 0:
9
        print(element)
10
       
11

Solution

1
numlist = [10,20,33,46,55]
2
print(numlist)
3
4
# votre code ci-dessous
5
element=0
6
numlistdiv5=[]
7
for element in numlist:
8
    if element % 5 == 0:
9
        print(element)
10
        numlistdiv5.append(element)
11
print(numlistdiv5)

Question

410-3

A partir d'une liste d'éléments d'une liste numList=[7,4,9,1,3,6]

Vérifier sir la liste est triée de manière croissante, retourner un True ou un false ?

Si oui, afficher la liste triée, sinon, trier la liste et la ré-afficher.

Pour vos tests, enlevez ou remettre le # pour tester votre code avec l'une ou l'autre des deux listes

1
#numList=[7,4,9,1,3,6]
2
numList=[7,9,12,15,16,19]

Indice

On compare les éléments deux à deux, la liste est triée si le deuxième et plus grand que le premier

Indice

Pour parcourir les éléments d'une boucle en débutant par l'élément en position 2 dans la liste en initialisant la variable precedent avec le premier

1
numList=[7,4,9,1,3,6]
2
i=0
3
element = 0
4
precedent = numList[0]
5
for i in range(1,6):
6
    print(i)
7
    print(i,precedent,numList[i])
8

Indice

1
numList=[7,4,9,1,3,6]
2
i=0
3
element = 0
4
precedent = numList[0]
5
for i in range(1,6):
6
    print(i)
7
    print(i,precedent,numList[i])
8
    precedent = numList[i]
9
    print(i,precedent,numList[i])

Solution

1
#numList=[7,4,9,1,3,6]
2
numList=[7,9,12,15,16,19]
3
4
i=0
5
precedent = numList[0]
6
tricroissant=True
7
for i in range(1,6):
8
    if precedent > numList[i]:
9
        tricroissant = False
10
        print(i)
11
        break
12
    else:
13
        precedent = numList[i]
14
print(tricroissant)
15

Question

410-4

Créer une fonction qui retourne True ou False et la tester avec les 2 listes

Solution

1
def listeTriee(nList):
2
    i=0
3
    precedent = nList[0]
4
    tricroissant=True
5
    for i in range(1,6):
6
        if precedent > nList[i]:
7
            tricroissant = False
8
            print(i)
9
            break
10
        else:
11
            precedent = nList[i]
12
    return tricroissant
13
14
numList=[7,4,9,1,3,6]
15
print(listeTriee(numList))
16
17
numList=[7,9,12,15,16,19]
18
print(listeTriee(numList))

Question

410-6 : faire défiler les caractères de la chaîne machaine="python"

Solution

1
machaine="python"
2
s=""
3
for s in machaine:
4
    print(s)

Question

410-7

A partir d'une chaîne machaine="python"

Afficher le contenu de variables debut2 et fin4 qui affichent respectivement les 2 premiers caractères de machaine et les 4 derniers.

Solution 1 : avec l'opérateur : de gestion des listes

Solution 2 : en utilisant une boucle

Solution

Solution 1
1
machaine="python"
2
debut2 = machaine[0:2]
3
print(debut2)
4
fin4= machaine[2:]
5
print(fin4)

Solution

Solution 2
1
machaine="python"
2
s=""
3
i=0
4
debut2=""
5
fin4=""
6
for s in machaine:
7
    if i<2:
8
        debut2=debut2+s
9
    if i>=len(machaine)-4:
10
        fin4 = fin4 +s
11
    print(s)
12
    i+=1
13
print (debut2)
14
print(fin4)
15

Question

410-8

maliste1 =[10,20,23,11,17]

maliste2 =[23,17,24,36,10]

Créer une liste nommée mafusion qui contient seulement les éléments triés et différents des 2 listes, donc mafusion affichera [10,11,17,20,23,24,36]

Trouver une solution 1 rapide avec une méthode python de l'objet liste

Faire avec une solution 2 et une boucle

Indice

solution 1 : méthode extend

Solution

avec la méthode extend
1
maliste1 =[10,20,23,11,17]
2
maliste2 =[23,17,24,36,10]
3
mafusion=maliste1
4
mafusion.extend(maliste2)
5
print(mafusion)

Solution

1
maliste1 =[10,20,23,11,17]
2
maliste2 =[23,17,24,36,10]
3
mafusion=maliste1
4
for element in maliste2:
5
    maliste1.append(element)
6
print(mafusion)

Question

410-9

Afficher le résultat =ci-dessous :

1

22

333

4444

55555

Solution

1
s=""
2
for i in range(1,6):
3
    s = str(i)
4
    for j in range(1,i):
5
        s = s + str(i)
6
    print(s)