Somme qui déclenche une division par zéro
RésoluBonjour,
J'ai cet exercice à réaliser :
Donner la valeur approchée avec au moins 5 chiffres significatifs de où
Voici mon programme :
import math S1 = 1 i = 1 for i in range(610): S1 = S1 + (-math.sin(3 * i) / i) print(S1)
Mais je ne comprends pas mon erreur. Serait-il possible de me dire où elle est s'il vous plaît ?
En vous remerciant !
- Somme qui déclenche une division par zéro
- Remettre a zero un pc - Guide
- Formule somme excel colonne - Guide
- Somme si couleur - Guide
- Comment remettre un iphone à zéro - Guide
- Somme en anglais excel - Guide
4 réponses
bonjour,
C'est quoi, "mon erreur"?
Quand tu partages du code, merci de tenir compte de ceci: https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code
Si tu veux comprendre ce que fait ton code, tu pourrais ajouter print(i) dans ta boucle.
Bonjour,
Si je lance ton code j'obtiens :
In [1]: import math
...:
...: S1 = 1
...: i = 1
...: for i in range(610):
...: S1 = S1 + (-math.sin(3 * i) / i)
...: print(S1)
---------------------------------------------------------------------------
ZeroDivisionError Traceback (most recent call last)
Cell In [7], line 6
4 i = 1
5 for i in range(610):
----> 6 S1 = S1 + (-math.sin(3 * i) / i)
7 print(S1)
ZeroDivisionError: float division by zero
On voit que la seule division est "/ i" et effectivement en itérant sur range(610), tu itères sur les valeurs {0, 1, 2, ... 609}.
Il faut donc itérer sur range(1, 611) pour considérer les valeurs {1, 2, ... 610}.
Bonne chance
J’ai rajouté un print à mon programme et cela me dit que la division n’est pas bonne et qu’on ne peux pas diviser par un flotant. Je ne m’y connais pas trop je ne sais pas comment remédier à ce problème ?
Peux-tu reporter l'erreur exacte (avec un copier coller) et indiquer quelle version de python tu utilises ? Si tu es en python2 je t'invite à passer en python3. Car comme tu peux le voir ci-dessous, il ne devrait pas y avoir d'erreur
(mando@silk) (~) $ ipython3
Python 3.10.9 (main, Dec 7 2022, 13:47:07) [GCC 12.2.0]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.5.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]: import math
...:
...: S1 = 1
...: i = 1
...: for i in range(1, 611):
...: S1 = S1 + (-math.sin(3 * i) / i)
...: print(S1)
0.9283835846497664
Bonne chance