2016-06-13 5 views
-1

Я пытаюсь написать программу, которая побуждает пользователя вводить два числа, а затем система вычисляет сумму, разницу, продукт и частное число данных и распечатывает результаты. Это то, что у меня есть до сих пор. Когда я запустил код для суммы, он вернулся правильно, когда я добавил функцию разности, она не работает.несколько шагов математические уравнения python

def total_sum(num1,num2): 
result = num1 + num2 
return result 

def total_difference(num_1,num_2): 
    result = num_1 - num_2 
    return result 

def total_product(number1,number2): 
    result = number1 * number2 
    return result 

def total_quotient (number_1,number_2): 
    result = number_1/number_2 
    return result 

def main(): 
    value_1 = float(input('Enter a number :')) 
    value_2 = float(input('Enter second number :')) 
    value_2 != 0 

    add = total_sum(value_1,value_2) 
    difference = total_difference(value_1, value_2) 
    product = total_product(value_1,value_2) 
    quotient = total_quotient(value_1,value_2) 

    print ('The total is {:.1f}'.format(add)) 
    print ('The difference is {:.1f}'.format(difference)) 
    print ('The product is {:.2f}' .format(product)) 
    print ('The quotient is {:.2f}'.format(quotient)) 

main() 
+2

Вы забыли апостроф во второй печати в основной()? – Li357

+0

@AndrewL Я очень новичок в python, я не уверен, о чем вы говорите. это дает мне синтаксическую ошибку в «def» части def total_sum – CzSzPzTz

+0

'print ('Разница есть', format (total_difference, '.1f)). Это линия, о которой говорит Andrew.Это была опечатка при публикации кода? – SilentMonk

ответ

0

Несколько ошибок,

  1. Вы пропустили ' как было указано в комментарии Эндрю.
  2. Вы сделали ошибку в .format.
  3. Вы использовали results в своей функции разницы, в которой вы возвращали результат.

Вот исправленный код:

def total_sum(num1,num2): 
    result = num1 + num2 
    return result 

def total_difference(num_1,num_2): 
    result = num_1 - num_2 
    return result 

def main(): 
    value_1 = float(input('Enter a number :')) 
    value_2 = float(input('Enter second number :')) 

    add = total_sum(value_1,value_2) 
    difference = total_difference(value_1, value_2) 

    print ('The total is {:.5f}'.format(add)) 
    print ('The difference is {:.5f}'.format(difference)) 


main() 
+0

спасибо! Итак, я бы просто добавил фактор и шаги продукта в том же порядке правильно? @Ani Menon – CzSzPzTz

+0

OP предпочитает использовать встроенную функцию 'format' вместо' str.format', указав спецификацию внутри самой строки, я не думаю, что это считается ошибкой. –

+0

@CzSzPzTz Да. (и не забудьте добавить 'значение_2 ', не равный нулю в операторе деления) –

1

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

у вас есть эквивалент:

a = sum(1,2) 
print(a) 

, которая будет возвращать TypeError: 'float' object is not iterable

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

list2sum = [] 
list2sum.append(value_1) # do the same for 2) 
a = sum(list2sum) 
print(a) 

для more on sum:

сумма (истребитель [, старт])

Начальные суммы и предметы итерации от слева направо и возвращает общее количество. start по умолчанию 0. . Итерируемые элементы обычно являются числами, а начальное значение не равно , разрешено быть строкой.

Для некоторых случаев использования существуют хорошие альтернативы sum(). Предпочтительный, быстрый способ конкатенации последовательности строк предпочтительнее: '' .join (последовательность). Чтобы добавить значения с плавающей запятой с расширенной точностью , см. Math.fsum(). Чтобы объединить ряд итераций, рассмотрите возможность использования itertools.chain().

Если вы пытаетесь использовать общую функцию суммы, сделайте это, используя его соответствующим образом:

a = total_sum(value_1, value_2) 
print(a) #print to confirm result 

Помните, что сумма фактически встроенный-функции, как уже упоминалось выше. Я не знаю, почему вы пытаетесь использовать его здесь:

total_sum = sum(value_1,value_2) 
+1

Я считаю, что метод total_sum должен использоваться вместо суммы там, в любом случае, полезно для справки по документации –

Смежные вопросы