Sagot :
Bonsoir,
Exercice 1:
1) L = [x**3 for x in range(11)]
2) K = [x**2-3*x+2 for x in range(1,16)]
3) J = [x + 's' for x in A]
dans le dernier, x parcourt les valeurs de la liste A et puisque ces valeurs sont de type string on peut ajouter un caractère, lui aussi de type string, à la fin en faisant +'carcteres'
exemple:
a = "pist"
b = a + "ache"
print(b) --> pistache
Exercice 2:
1) W = [x**2 for x in range(21) if x%2==0]
la condition x%2==0 test si x est bien pair car si x est pair alors il est divisible par 2 donc le reste de la division euclidienne de x par 2 est 0
Après si on veut les carrés des nombres pairs inférieurs ou égaux à 20 situés dans une liste il suffit de changer la syntaxe et la condition bien sur:
W = [x**2 for x in LaListeEnQuestion if x%2==0 and x < 21]
2) Q = [x*12 for x in liste if x*12 < 241]
3)
def fonctionDiviseur(n):
diviseurs = []
for i in range (1, n+1):
if n%i == 0:
diviseurs.append(i)
return diviseurs
4) V = [x**2 if x%2==0 else x**3 for x in liste]
Pour cette question j'ai été obligé de tester plusieurs choses et j'ai trouvé cette méthode qui fonctionne
Exercice 3:
1) Je n'y arrive pas cette question
listeMots = ['Arbre',"Cheval","Banane"]
liste = [(x,y) for x in listeMots if x[0] == 'A' or x[0] == 'B' for y in [1,2,3]]
J'obtiens en sortie:
[('Arbre', 1), ('Arbre', 2), ('Arbre', 3), ('Banane', 1), ('Banane', 2), ('Banane', 3)]
et je ne sais pas comment y remédire
2)L = [(x,y) for x in liste for y in liste2 if x>=0 and y <=3 and x+y >= 0 and x+y <=3]
Bonne soirée