Problème exercice Python
Bonjour,
Je n'arrive vraiment pas à réaliser ce programme python quelqu'un pourrait il m'aider, s'il vous plaît ?
À partir de cette liste,
L = [1, 2, 4, 8, 9, 11, 16, 25, 33, 36, 40]
... il faut écrire une fonction qui retourne deux listes, une liste Lpaire contenant les multiples de 2 et une autre Lcarre contenant les carrés parfaits.
Voici ce que j'ai commencé à faire :
def exo1():
Lpair = []
Lcarre = []
for i in range(n):
if l[i] % 2 == 0:
Lpair.append(l[i])
if l == True:
Lcarre.append(l[i])
return (Lpair, Lcarre)
Merci d'avance
2 réponses
-
D'abord, je ne vois pas l'appel à la fonction. Même chose pour l'affichage.
Ensuite, tu ne passes pas ta liste de départ en paramètre.
Commentt détermine-t-on qu'un nombre est un carré parfait? -
Bonjour,
Il faut passer la liste L en paramètre à la fonction exo1. Attention aussi à être cohérent sur le nom de la liste (qui à ce stade s'appelle dans ton code tantôt L et tantôt l).
Ensuite, pour tester si un nombre est un carré parfait, tu as besoin de la fonction math.sqrt. Il suffit de vérifier si math.sqrt(L[i]) est entier ou non
import math def is_square(x): r = math.sqrt(x) return int(r) == r for x in [1, 2, 4, 8, 9, 11, 16, 25, 33, 36, 40]: print(x, is_square(x))Résultat :
1 True 2 False 4 True 8 False 9 True 11 False 16 True 25 True 33 False 36 True 40 FalseBonne chance