Python ошибка калькулятора при делении чисел - PullRequest
0 голосов
/ 31 января 2020

Я создаю программу калькулятора в python. Он должен получить максимум 5 цифр от пользователя, а затем пользователь вводит расчетный знак, который он хочет использовать. Все работает, +, - и *, но разделение / не работает и возвращает следующее сообщение об ошибке:

CALCULATOR
ENTER NUMBER 1. TYPE SPACE TO ENTER CALCULATION4
ENTER NUMBER 2. TYPE SPACE TO ENTER CALCULATION7
ENTER NUMBER 3. TYPE SPACE TO ENTER CALCULATION
ENTER THE CALCULATION + - / */
THE RESULT IS
Traceback (most recent call last):
  File ".\calc.py", line 52, in <module>
    print  "THE RESULT IS", int(NUMBER1) / int(NUMBER2) / int(NUMBER3) / int(NUMBER4) / int(NUMBER5)
ZeroDivisionError: integer division or modulo by zero

Программа калькулятора:

from goto import goto, label
print(   "CALCULATOR"    )
NUMBER1 = 0; NUMBER2 = 0; NUMBER3 = 0; NUMBER4 = 0; NUMBER5 = 0;

NUMBER1 = raw_input(   "ENTER NUMBER 1. TYPE SPACE TO ENTER CALCULATION"    )
if NUMBER1 == " ":
  goto .end;

NUMBER2 = raw_input(   "ENTER NUMBER 2. TYPE SPACE TO ENTER CALCULATION"   )
if NUMBER2 == " ":
  NUMBER2 = 0;
  goto .calculation;

NUMBER3 = raw_input(   "ENTER NUMBER 3. TYPE SPACE TO ENTER CALCULATION"   )

if NUMBER3 == " ":
  NUMBER3 = 0;
  goto .calculation;

NUMBER4 = raw_input(   "ENTER NUMBER 4. TYPE SPACE TO ENTER CALCULATION"   )
if NUMBER4 == " ":
  NUMBER4 = 0;
  goto .calculation;

NUMBER5 = raw_input(   "ENTER NUMBER 5. TYPE SPACE TO ENTER CALCULATION"   )
if NUMBER5 == " ":
  NUMBER5 = 0;
  goto .calculation;

label .calculation

CALCULATION = raw_input(    "ENTER THE CALCULATION + - / *")


if CALCULATION == "+":
  print  "THE RESULT IS", int(NUMBER1) + int(NUMBER2) + int(NUMBER3) + int(NUMBER4) + int(NUMBER5)

if CALCULATION == "-":
  print  "THE RESULT IS", int(NUMBER1) - int(NUMBER2) - int(NUMBER3) - int(NUMBER4) - int(NUMBER5)

if CALCULATION == "*":
  print  "THE RESULT IS", int(NUMBER1) * int(NUMBER2) * int(NUMBER3) * int(NUMBER4) * int(NUMBER5)

if CALCULATION == "/":
  print  "THE RESULT IS", int(NUMBER1) / int(NUMBER2) / int(NUMBER3) / int(NUMBER4) / int(NUMBER5)


label .end

print "";print  "------------------------------------";print "";
print   "PROGRAM END."
print  "THANK YOU FOR USING THE CALCULATOR."
print  "SEE YOU NEXT TIME."
print  "BYE!"

Почему ошибка возникает только при делении чисел и как я могу ее устранить?

Ответы [ 2 ]

1 голос
/ 03 февраля 2020

Согласен с первым ответом, что вы не можете делить на 0 когда-либо, ошибка подразумевает это. Но с другой стороны, вы можете рассмотреть возможность разделения на этаж, которое работает для чисел типа int и non. Хотя это ваше личное предпочтение и зависит от того, что требуется программе.

этажное деление

 //
1 голос
/ 31 января 2020

Вы не можете разделить число на 0, ошибка очевидна.

Ваш код не полный, мы не можем помочь нам больше. Попробуйте дать нам короткий, но полный пример.

...