ошибка целочисленного деления python - по модулю на ноль - BUT делитель! = 0

Я новичок в простой математике с использованием python, так что извините, если это глупый вопрос.

У меня есть 8 переменных, которые все установлены в целые числа, и эти целые числа используются при выполнении простого вычисления.

a = 0
b = 17
c = 152
d = 1
e = 133
f = 19
g = 20
h = 0

answer = ( ( ( a/f ) + b + c ) - ( g + ( h/f ) ) )/( d/f )

print answer

Когда я запускаю этот код, я получаю ошибку, ZeroDivisionError: целочисленное деление или по модулю на ноль.

Я прочитал об этой ошибке, и все точки документации к моему делителю равны нулю, но если я напечатаю это с числами как строки вместо переменных, я получаю:

( ( ( 0/19 ) + 17 + 152 ) - ( 20 + ( 0/19 ) ) )/( 1/19 )

Nowhere in this statement is the divisor zero.

Пожалуйста, дайте мне знать, как мне нужно изменить свое выражение, чтобы получить ответ 2831. Обратите внимание, что я могу изменить тип переменных на float или другой. Спасибо за помощь!

2
nl ja de

2 ответы

Вероятно, вы используете Python 2.x , где x/y является целым числом .

Итак, в приведенном ниже коде:

( 20 + ( 0/19 ) ) )/( 1/19 )

1/19 is an integer division, which results in 0. So the expression is essentially same as: -

( 20 + ( 0/19 ) ) )/0

Теперь вы видите, откуда исходит ошибка.


Вы можете добавить следующий импорт в код python , чтобы обеспечить деление с плавающей запятой:

from __future__ import division

Или вы можете применить одно из целых чисел к float, используя либо float() , либо просто добавив .0 к исходному значению.

11
добавлено
from __future__ import division

и чем ваш расчет

это приведет к тому, что деление вернет поплавки

1
добавлено
Python
Python
7 654 участник(ов)

Уютный чат для профессионалов, занимающихся поиском питоньих мудростей. Как не получить бан: https://t.me/ru_python/577926

Python beginners
Python beginners
4 449 участник(ов)

Вопросы про Python для чайников. Cпам и троллинг неприемлем. Не злоупотребляйте стикерами. Частозадаваемые вопросы: https://github.com/ru-python-beginners/faq/blob/master/README.md Статистика тут: https://grstats.me/chat/x4qym2k5uvfkr3al6at7

pro.python
pro.python
1 090 участник(ов)

Сообщество разработчиков под Python Создатель: @rodgelius

Rude Python
Rude Python
971 участник(ов)

Python без „девочек”, здесь матерятся и унижают Django. Not gay friendly. Правила: t.me/rudepython/114107 @rudepython | t.me/rudepython

rupython
rupython
509 участник(ов)

Группа создана с целью оперативного получения ответов на возникающие вопросы по разработке на яп python, смежные темы, а также человеческого общения. Приветствую!

Python-programming
Python-programming
266 участник(ов)

Чат группы вконтакте https://vk.com/python_community