Programme qui plante à 257.
Re: Programme qui plante à 257.
donc un objet peut changer d'identifiant en cours d’exécution en fonction de sa valeur ?
Re: Programme qui plante à 257.
Non. L'identifiant d'un objet est unique pendant toute la durée de vie de cet objet (et aucun autre objet coéxistant ne peut avoir ce même identifiant) et il ne peut en changer. Cependant rien ne garanti que deux entiers de même valeur soient le même objet. Nos petits tests nous ont d'ailleurs montrés que pour nos versions de Python (je crois que ce n'est pas le cas pour 2.3 par exemple), les entiers entre -5 et 256 seront toujours uniques (au sens où il n'y aura toujours qu'un seul objet entier avec cette valeur). En revanche on peut avoir trois entiers différents ayant tous la valeur 257.
Vous pouvez consulter ce petit texte explicatif très bien fait si vous voulez en savoir plus :
http://www.laurentluce.com/posts/python ... mentation/
Vous pouvez consulter ce petit texte explicatif très bien fait si vous voulez en savoir plus :
http://www.laurentluce.com/posts/python ... mentation/
Dernière modification par np* le 08 déc. 2015 23:04, modifié 2 fois.
$ $P = N\!P^* ?$ $
Re: Programme qui plante à 257.
In [1]: a=25
In [2]: id(a)
Out[2]: 10437984
In [3]: a=a*1000
In [4]: id(a)
Out[4]: 139632807383824
In [2]: id(a)
Out[2]: 10437984
In [3]: a=a*1000
In [4]: id(a)
Out[4]: 139632807383824
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.
Re: Programme qui plante à 257.
Si tu dis ça alors promets moi de ne JAMAIS devenir ingéOn s'en fout des spécs.
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.
Re: Programme qui plante à 257.
Code : Tout sélectionner
In [1]: a=25
In [2]: id(a)
Out[2]: 10437984
In [3]: a=a*1000
In [4]: id(a)
Out[4]: 139632807383824
Qu'une variable et un objet ne sont pas une même chose ?
In[3] n'est pas une modification de l'objet d'identifiant 10437984, mais la création d'un nouvel objet d'identifiant 139632807383824, lié à la variable a. L'objet d'identifiant 10437984 va disparaître lorsque le ramasse-miettes passera par là, puisqu'aucune variable n'y fait référence.
EDIT : En fait l'objet 10437984 ne va pas vraiment disparaître puisque c'est un entier entre -5 et 256
Dernière modification par np* le 08 déc. 2015 23:11, modifié 4 fois.
$ $P = N\!P^* ?$ $
Re: Programme qui plante à 257.
Je te rassure tout de suitefakbill a écrit :Si tu dis ça alors promets moi de ne JAMAIS devenir ingéOn s'en fout des spécs.
Re: Programme qui plante à 257.
D'accord, c'était vraiment tout con, je suis nul, merci!loupi a écrit :il faut utiliser "!=" et non "is not" dans ton while pour la comparaison, car tu compares 2 objet différents len(L) et n.
C'est mon prof qui m'a montré le "is/ is not", et maintenant que vous en parlez, il avait insisté sur la différence ( Je me souviens d'un des exemples qu'il avait utilisé, 1 == True est vrai, 1 is True est faux. Deux objets peuvent prendre la même valeur sans être le même objet. Je viens de tester, ça fait pareil avec 256 et 256.0, par exemple.)fakbill a écrit :Pas le temps de lire ton code maintenant mais qui t'a montré "is / is not"??
Qu'as tu compris de "is / is not"? Ca teste quoi exactement??
Il plante quoi? des choux? As tu essayé de debugger? Sais tu comment commencer à débugger? .
Et non, je sais pas du tout comment (ou ce qu'est) débugger! (enfin, je devine certainement l'idée global grâce au nom, mais c'est tout.. ).
Sinon, j'ai trouvé votre discussion franchement intéressante, merci.
2015/2016: MPSI A , Lycée Camille Guérin, Poitiers
2016/2017: MP*, Lycée Camille Guérin, Poitiers
2017/2018: MP*, Lycée Camille Guérin, Poitiers
2018/- : CentraleSupelec
2016/2017: MP*, Lycée Camille Guérin, Poitiers
2017/2018: MP*, Lycée Camille Guérin, Poitiers
2018/- : CentraleSupelec
Re: Programme qui plante à 257.
Pourquoi montrer "is" aux débutants??
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.
Re: Programme qui plante à 257.
Peut-être pour expliquer la manière dont sont stockées les variables, dans le cadre d'une explication plus large sur tout ce qui est pointeurs/adresses (c'est utile de savoir comment ça marche sous le capot, même dans un langage haut-niveau)? Mais on est d'accord que c'est très bizarre et risqué d'expliquer ça à un débutant, preuve en est avec ce topicfakbill a écrit :Pourquoi montrer "is" aux débutants??
Et merci np* pour ton explication, c'est intéressant comme phénomène
2013-2014: MPSI-MP
2014-2018 : ENS Paris-Saclay
2018-... : Google Software Engineer
2014-2018 : ENS Paris-Saclay
2018-... : Google Software Engineer
Re: Programme qui plante à 257.
#my suggestion
Code : Tout sélectionner
n=int(input("le premier numero"))
if n==1 : print("est:2")
else:
n=n-1
k=0
i=1
while k<n :
i=i+2
c=0
for j in range(2,i):
r=i%j
if r==0 :
c=c+1
if c==0: k=k+1
print("est:",i)