Répondez aux questions et envoyez à votre classe room le fichier
ayant comme nom le format suivant
- TDP_02_Python_NOM_PRENOM.ipynb
</ul>
Nom Prénom :
CHOUBIK Houssam
Liste : Rappels
- écrire un progreamme qui affiche le nombre d'éléments d'une liste (sans utiliser len())
L = [1,2,3,4]
c = 0
for _ in L:
c += 1
print(c)
4
- écrire un programme qui affiche la somme cumulative de la liste LC
LC = [3, 9, 10, 4, 1, 8]
print(LC)
[3, 9, 10, 4, 1, 8]
# écrire votre solution ici : doit afficher [3, 12, 22, 26, 27, 35]
LC = [3,9,10,4,1,8]
somme = []
acc = 0
for v in LC:
acc += v
somme.append(acc)
print(somme)
[3, 12, 22, 26, 27, 35]
Ecrire un programme qui affiche tous les éléments dupliqués d'une liste données sans utiliser aucune fonction prédéfinie en Python.
* indication : utiliser une double boucle for
# Exemple
# L = [7 , 21 , 5 , 12 , 7 , 91 , 21 , 12 , 28]
# la sortie est: [7, 21, 12]
L = [7, 21, 5, 12, 7, 91, 21, 12, 28]
d = []
n = 0
for _ in L:
n += 1
for i in range(n):
for j in range(i + 1, n):
if L[i] == L[j] and L[i] not in d:
d.append(L[i])
print(d)
[7, 21, 12]
- Générer et afficher une liste L contenant, dans l'ordre, des entiers de 0 à 60
- indication : utiliser la fonction range()
# solution 1 : en utilisant list()
L = list(range(61))
print(L)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60]
# solution 2 : en utilisant []
L=[i for i in range(61)]
print(L)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60]
- Afficher dans un ordre croissant tous les éléments pairs (sans utilisation de boucle)
pairs = L[0:61:2]
print(pairs)
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60]
- Afficher dans un ordre décroissant tous les éléments impairs (sans utilisation de boucle)
impairs = L[59:0:-2]
print(impairs)
[59, 57, 55, 53, 51, 49, 47, 45, 43, 41, 39, 37, 35, 33, 31, 29, 27, 25, 23, 21, 19, 17, 15, 13, 11, 9, 7, 5, 3, 1]
- Mettre dans la liste L3 tous les éléments de L multiples de 3 (sans utilisation de boucle)
- Mettre dans la liste L4 tous les éléments de L multiples de 4 (sans utilisation de boucle)
L3 = L[0:61:3]
L4 = L[0:61:4]
print("L3 =", L3)
print("L4 =", L4)
L3 = [0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60] L4 = [0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60]
- Afficher tous les éléments de L3 exceptés les 5 derniers éléments (sans utilisation de boucle)
L3_nouvelle=L3[0:-5]
print(L3_nouvelle)
[0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45]
- Afficher tous les éléments de L4 exceptés les 7 premiers éléments (sans utilisation de boucle)
L4_nouvelle=L4[7:]
print(L4_nouvelle)
[28, 32, 36, 40, 44, 48, 52, 56, 60]
Chaines de caractères
Exercice :
Écrire un programme qui prend en paramètre une liste d’entiers T et et qui affiche la moyenne des éléments de T.
import random
L = [random.randint(0, 10) for i in range(5)]
print(L)
[5, 6, 0, 0, 4]
# solution 1 : En utilisant une boucle
somme = 0
n = 0
for x in L:
somme += x
n += 1
if n == 0:
print("None")
moy = somme/n
print(somme)
print("Moyenne =", moy)
15 Moyenne = 3.0
# solution 2 : En utilisant une sum()
somme=sum(L)
n=len(L)
moy=somme/n
print(somme)
print("Moyenne =", moy)
15 Moyenne = 3.0
Exercice :
Soit T une liste d’entiers.
Écrire un programme qui met tous les éléments pairs au début de la liste et tous les éléments impairs à la fin de la liste.
Exemple:
L = [5, 6, 9, 8, 10]
L devient :
L = [6, 8, 10, 5, 9] ou L = [8, 6, 10, 9, 5]
N.B.
- l'ordre interne des paires ou impaires n'est pas interessant
- Ne pas utiliser d'espaces auxiliaires (l'arrangement doit se faire inPlace)
import random
L = [random.randint(0, 20) for i in range(10)]
L
[3, 4, 3, 20, 12, 13, 2, 17, 7, 5]
# ecrire votre solution ici
gauche = 0
droite = len(L) - 1
while gauche < droite:
while gauche < droite and L[gauche] % 2 == 0:
gauche += 1
while gauche < droite and L[droite] % 2 == 1:
droite -= 1
if gauche < droite:
L[gauche], L[droite] = L[droite], L[gauche]
print(L)
[2, 4, 12, 20, 3, 13, 3, 17, 7, 5]
Exercice : Écrire un programme qui décale de n positions les lettres d’une chaine de caractère ch de longueur L (on suppose que n < L).
Exemple: si ch = “Rattrapage” et n=2 alors CHD = “geRattrapa”
ch = "Rattrapage"
d = 2
CHD = ch[-d:] + ch[:-d]
print(CHD)
geRattrapa
- Écrire un programme qui supprime les espaces (s'ils existent) au début d'une chaine de caractère passée en paramètre - Ne pas utiliser la fonction strip
# ecrire votre solution ici
ch = " test des espaces au debut et fin "
print(f"ch av :*{ch}*")
# completer la solution ici
# chd = ...
i = 0
while i < len(ch) and ch[i] == " ":
i += 1
chd = ch[i:]
print(f"ch av :*{chd}*")
ch av :* test des espaces au debut et fin * ch av :*test des espaces au debut et fin *
- Écrire un programme qui supprime les espaces (s'ils existent) à la fin d'une chaine de caractère passée en paramètre - Ne pas utiliser la fonction strip
ch = " test des espaces au debut et fin "
print(f"ch av :*{ch}*")
i = len(ch) - 1
while i >= 0 and ch[i] == " ":
i -= 1
chf = ch[:i+1]
print(f"ch ap :*{chf}*")
ch av :* test des espaces au debut et fin * ch ap :* test des espaces au debut et fin*
Exercice :
- Écrire un programme qui remplace les slashes dans une chaine par des backslashes.
Exemple : - chemin = "D:/data/info/prog/python" devient - chemin = "D:\data\info\prog\python"
ch = "D:/data/info/prog/python"
print(ch)
D:/data/info/prog/python
# ecrire votre solution ici
ch = "D:/data/info/prog/python"
print(f"chemin = \"{ch}\"")
# remplacer / par \
ch = ch.replace("/", "\\")
chemin = "D:/data/info/prog/python"
print(f"chemin = \"{ch}\"")
chemin = "D:\data\info\prog\python"