2016-05-26 2 views
-1

Здравствуйте, я как бы новичок в Python 2. Какой простейший способ взять ввод и распечатать результат математического выражения с десятичными знаками? По некоторым причинам я получаю синтаксис error.Here в код им пытаются бежать, чтобы вычислить среднее значение:Математические выражения с плавающими точками

a = input() 
b = input() 
c = input() 

print "MEDIA = %.1f\n"%(((a*2)+(b*3)+(c*5))/(10))) 
+2

У вас есть дополнительная закрытая скобка. также никогда не используйте 'input()'; вместо этого используйте 'raw_input()' и преобразуйте 'float'. –

+0

удалите закрывающий кронштейн в конце инструкции 'print' –

+0

Все еще я получаю синтаксическую ошибку. – Inconnu

ответ

4

Я считаю, что у вас есть это просто ошибка синтаксиса.

Ваши скобки не сбалансированы.

Try:

print "MEDIA = %.1f\n"%(((a*2)+(b*3)+(c*5))/(10)) 
0

Вы можете просто сделать:

a = float(input()) 
b = float(input()) 
c = float(input()) 

Или вы могли бы добавить . к уравнению : print "MEDIA =% .1f \ n"% ((a * 2.) + (B * 3.) + (C * 5.))/(10.)))

Добавив ., вы преобразуете их в поплавок. Я думаю, что возможность просто читать их в виде поплавка более прямолинейна.

EDIT:
К сожалению, приглядевшись в своем заявлении для печати, вам просто нужно удалить окончание ) так, что она становится: print "MEDIA = %.1f\n"%(((a*2)+(b*3)+(c*5))/(10))

+1

'input' явно использует' eval', поэтому, если вход уже является float, он будет оцениваться как таковой. –

+0

Нет, это не работает. Он дает синтаксическую ошибку. – Inconnu

+0

О, вы правы, я не поймал лишний ')' в конце вашего заявления на печать – ZWiki

0

Если вход поплавок, поплавок (raw_input()) работает. но обычно вы можете использовать eval (raw_input()). eval получает строку и преобразует ее в реальное значение. Например:

float_str = "1.2345" 
f = eval(float_str) 
list_str = "[1,2,3]" 
l = eval(list_str) 

Здесь «л» будет список и «е» будет поплавок.

0

У вас есть дополнительный кронштейн в конце, который вызывает синтаксическую ошибку. Вы можете сделать это следующим образом:

print "MEDIA = %.1f\n"%((float(raw_input())*2+float(raw_input())*3+float(raw_input())*5)/10) 

Если количество входов меняются, вы могли бы пойти для цикла.

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