Somme qui déclenche une division par zéro
Résolu/Fermémamiemando Messages postés 33407 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 29 novembre 2024 - 16 févr. 2023 à 16:12
- Somme qui déclenche une division par zéro
- Remettre a zero un pc - Guide
- Formule somme excel colonne - Guide
- Somme si couleur - Guide
- Zero barré clavier ✓ - Forum Windows
- Somme si date comprise entre ✓ - Forum Excel
4 réponses
16 févr. 2023 à 15:09
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.
16 févr. 2023 à 15:14
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 ?
16 févr. 2023 à 16:12
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