Python liste de carrés d'un nombre entier
Bonsoir,
Je ne comprends pas pourquoi le programme ne donne pas la liste voulue...
Je ne comprends pas pourquoi le programme ne donne pas la liste voulue...
Réponses
-
Bonjour,
C'est peut-être cela que vous souhaitez faire. En fait, vous n'avez mis qu'un seul élément dans votre liste l.import numpy as np def carres(N): l=np.zeros(N+1) i = 0 while i*i <= N: l[i*i]=1 i=i+1 return l print(carres(10))
0, 1, 4 et 9 sont bien des carrés.
Cordialement,
Denise Chemla
[Pour afficher du code python, IL FAUT utiliser le bouton "Code" (5ème par la droite au dessus de la fenêtre d'édition. AD] -
Bonjour,
Sans le module numpy on peut aussi créer la liste l grâce à :l = [] for _ in range(N+1): l.append(0)
Si on écrit juste "l=[0]*(N+1)" alors tous les éléments de la liste renvoient vers la même variable ; donc modifier un élément modifie tous les autres.
Et à la fin tu as écrit "return 1" au lieu de "return l". -
Bonjour ,
pourquoi compliquer quand on peut faire simple'''-- liste des carrés de 1 à N --------- -- -- ---------------------------------------''' def liste_carres(N): liste = [] for i in range(N): liste.append(i*i) return liste print (liste_carres(8))
-
Ton programme ne renvoie pas la même chose que ce que veut faire OShine, fm_31. Mais on peut quand même simplifier le programme d'OShine :
import sqrt from math def carres(N): return [(sqrt(i)==int(sqrt(i)) for i in range(N+1)]
-
@Calli
Ceci :l = [0]*(N+1)
ne poserait aucun problème car 0 (comme tout entier) est un objet immutable. Il est impossible de le modifier en place. Si tu remplaces un 0 de cette liste par autre chose qui n'est pas 0, l'objet mis à la place du 0 aura forcément une autre adresse, donc les autres slots de la liste (qui contiennent chacun l'adresse de 0) ne seront pas affectés.
Le problème auquel tu penses concerne les objets « mutables » (listes, ensembles autres que frozenset(), dictionnaires...). -
Effectivement brian, j'ai testé. Mais j'ai appris à toujours être prudent dans ce genre de cas. :-D
-
Le problème apparaît quand on utilise les méthodes d’un mutable.
Python 3.9.1 (default, Dec 8 2020, 07:51:42) [GCC 10.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> l=[0]*5 >>> l [0, 0, 0, 0, 0] >>> l[1]=2 >>> l [0, 2, 0, 0, 0] >>> m=[[0]]*5 >>> m [[0], [0], [0], [0], [0]] >>> m[1]=2 >>> m [[0], 2, [0], [0], [0]] >>> m[2].append(2) >>> m [[0, 2], 2, [0, 2], [0, 2], [0, 2]] >>> n=[[]]*5 >>> n[1]=2 >>> n [[], 2, [], [], []] >>> n[2].append(2) >>> n [[2], 2, [2], [2], [2]] >>> o=[[]]*5 >>> o[1].append(2) >>> o [[2], [2], [2], [2], [2]]
Algebraic symbols are used when you do not know what you are talking about.
-- Schnoebelen, Philippe -
Oshine : ton programme ne fonctionne pas car tu as écrit
return 1
au lieu dereturn l
à la dernière ligne. -
Bonjour,
Plus simple:import numpy as np print(np.linspace(0,10,11)**2)
Ou:import numpy as np def carres(n): return np.linspace(0,n,n+1)**2 print(carres(10))
Cordialement,
Rescassol -
Je pense qu’on a mal lu son script. Il ne veut pas la liste des carrés, il veut une liste indicatrice des carrés.Algebraic symbols are used when you do not know what you are talking about.
-- Schnoebelen, Philippe -
Bonjour,
Il faut dire que la phrase:
> Je ne comprends pas pourquoi le programme ne donne pas la liste voulue...
ne dit pas ce qu'est la liste voulue.
Il devrait comprendre qu'on est pas dans sa tête.
Cordialement,
Rescassol
Connectez-vous ou Inscrivez-vous pour répondre.
Bonjour!
Catégories
- 163.2K Toutes les catégories
- 9 Collège/Lycée
- 21.9K Algèbre
- 37.1K Analyse
- 6.2K Arithmétique
- 53 Catégories et structures
- 1K Combinatoire et Graphes
- 11 Sciences des données
- 5K Concours et Examens
- 11 CultureMath
- 47 Enseignement à distance
- 2.9K Fondements et Logique
- 10.3K Géométrie
- 63 Géométrie différentielle
- 1.1K Histoire des Mathématiques
- 68 Informatique théorique
- 3.8K LaTeX
- 39K Les-mathématiques
- 3.5K Livres, articles, revues, (...)
- 2.7K Logiciels pour les mathématiques
- 24 Mathématiques et finance
- 313 Mathématiques et Physique
- 4.9K Mathématiques et Société
- 3.3K Pédagogie, enseignement, orientation
- 10K Probabilités, théorie de la mesure
- 773 Shtam
- 4.2K Statistiques
- 3.7K Topologie
- 1.4K Vie du Forum et de ses membres