@kyklaed

Написал небольшую программу, и хочу разбить ее на модули, почему не проходит блок расчетов?

Добрый вечер, у меня такой вопрос, написал программу и захотел ее разбить на модули ( я только учусь программировать), суть в том что не обрабатывается блок расчетов, ниже я привел код каждого блока. python 3.4
я пишу небольшой такой калькулятор с записью результата в файл, что бы выбрать действие над числами необходимо ввести число, программа сравнивает в блоке обработки, если числа сходятся то происходит подсчет если нет то fail.

Так вот проблема такая - не обрабатывается или не передается значение для сравнения, а значения над которыми происходят действия передаются нормально

pastie.org/10062892

import inputvalue
import calculatingresult
FILE_NAME = 'data.txt'

#print("select the action and enter the number of action in the field = 1 - addition,")
#print("2 - subtraction, 3 - Multiply, 4 - division, 5 - involution")

value = inputvalue.input_value(int,"number of action","message_error")
digit = inputvalue.input_value(float,"enter the first number","message_error")
digit2 = inputvalue.input_value(float, "Enter the second number: ", "message_error2")

calculatingresult.calculating_saving_result (digit,digit2)

pastie.org/10062895

import calculatingresult

def input_value(type_value, message, message_error):
while True:
try:
return type_value(input(message))
except (TypeError, ValueError):
print(message_error)

pastie.org/10062896

import inputvalue
FILE_NAME = 'data.txt'

def calculating_saving_result (r_digit, r_digit2):
file_calculation = open (FILE_NAME, 'a')

print(r_digit, r_digit2)

if inputvalue.input_value==1:
r_addition = r_digit + r_digit2
file_calculation.write (str(r_addition))
elif inputvalue.input_value==2:
r_subtracting = r_digit - r_digit2
file_calculation.write (str(r_subtracting))
elif inputvalue.input_value==3:
r_multiplication = r_digit * r_digit2
file_calculation.write (str(r_multiplication))
elif inputvalue.input_value==4:
r_division = r_digit / r_digit2
file_calculation.write (str(r_division))
elif inputvalue.input_value==5:
r_involution = r_digit ** r_digit2
file_calculation.write (str(r_involution))
else:
file_calculation.write ('fail')
#print("fail")
file_calculation.close()
  • Вопрос задан
  • 326 просмотров
Пригласить эксперта
Ответы на вопрос 1
inputvalue.input_value - это функция
print(inputvalue.input_value)
<function input_value at 0x10b007950>

Поэтому всегда будет выполняться содержимое блока else - file_calculation.write ('fail')
В функцию calculating_saving_result() нужно передовать value, и уже его с ним работать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 03:01
1000 руб./за проект
18 апр. 2024, в 21:56
2000 руб./за проект
18 апр. 2024, в 21:00
150 руб./за проект