problemes de division en Python

problemes de division en Python - Python - Programmation

Marsh Posté le 26-01-2013 à 20:32:55    

Bonjour à tous
j'apprend le langage python sans professeur et j'aurais une question a propos du symbole "%"
si j'ai bien compris il s'agit du "mod" sous pascal? c'est a dire le reste de la division(ce que je comprend par "le premier chiffre après la virgule"
 
j'utilise Python3 et lorsque je fais 25%2 il me donne 1 (ce qui devrait être 5 puisque 25 par 2 donne 12.5)
et lorsque je fais 50%4 il me donne 2 (alors qu 'il s'agit mathématiquement de la même chose que 25 par 2)
cependant les chiffres ronds me donnent bien "0"
pourquoi dont ces chiffres pour les nombres a virgule?
 
Autre petit question,
Lorsque je fais 10/3
la réponse est 3.33333335
d’où vient ce 5? il s'agit normalement de "3" a l'infini

Reply

Marsh Posté le 26-01-2013 à 20:32:55   

Reply

Marsh Posté le 27-01-2013 à 00:07:29    

Il va falloir réviser tes cours de maths :
 
http://fr.wikipedia.org/wiki/Reste
 
Pour la division c'est bizarre :  
J'obtiens 3 si je je fais 10/3.

Reply

Marsh Posté le 27-01-2013 à 00:08:14    

Non, mod revoit le reste de la division euclidienne, pas le 1er chiffre.


---------------
Perhaps you don't deserve to breathe
Reply

Marsh Posté le 27-01-2013 à 11:36:24    

Loupsio a écrit :

Bonjour à tous
j'apprend le langage python sans professeur et j'aurais une question a propos du symbole "%"
si j'ai bien compris il s'agit du "mod" sous pascal? c'est a dire le reste de la division(ce que je comprend par "le premier chiffre après la virgule"

Donc tu comprends mal.
Le reste d'une division, ce n'est pas ça.
A+,
 


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 27-01-2013 à 14:47:56    

Ah! au temps pour moi  :)  
effectivement si dès le départ je me trompais, ça pouvait pas le faire
Sinon pour la division,je trouve ça effectivement bizarre, le 5 (il me fait la même pour 60/4... bon je pense pas que ça change grand chose pour moi au final  
Merci beaucoup de vos réponses

Reply

Marsh Posté le 28-01-2013 à 12:16:27    

Tu peux donc maintenant retenir la formule:
Si a et b sont deux entiers, b non nul, alors a/b et a%b sont les deux entiers (uniques) tels que:  
a = b * (a/b) + (a%b) et 0 <= (a/b) ,  0 <= |a%b| < |b|
a/b est le quotient de la division euclidienne, et a%b est le reste de cette division.
 
10 = 3*3 + 1 et 0 <= 1 < 3 donc 10/3 = 3 et 10%3 = 1
 
La division euclidienne, c'est une division qui ne sort pas du cadre des nombres entiers, donc pas de notion de virgule ou de notion de chiffres après la virgule (qu'on peut retrouver en considérant la fraction (a%b)/b, soit, dans l'exemple donné, 1/3 ce qui est en notation avec la virgule, 0.333...)
 
A+,


Message édité par gilou le 28-01-2013 à 14:06:12

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed