2014-09-15 3 views
3

Пытаясь написать программу, чтобы найти стоимость объема воды в бассейне в центах Продолжайте повесить трубку по объему и ответить и не можете понять, что я делаю неправильно , Любая помощь будет большой. Это уравнения, которые я использую.Стоимость объема воды в центах

Объем в кубических футах = длина * ширина * высота
стоимость = стоимость кубических футов * Объем в кубических футах

#Assignment 1, Python, Run 1 

length = float(input("Please enter the length of the pool in feet:")) 
width = float(input("Please input the width of the pool in feet:")) 
height = float(input("Please input the height of the pool in feet:")) 
cost = float(input("Please enter the cost of water in cents per cubic foot:")) 

volume = [length*width*height] 
answer = [cost*volume] 
+0

Я не уверен в ошибке, которую вы получаете, я думаю, что вы не используете правильную функцию умножения, обратитесь к http://stackoverflow.com/questions/595374/whats-the-python-function-like-sum-but- for-multiplication – braintech

ответ

2

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

volume = [ something ] # This syntax says "volume is an array that contains something 

Вы не можете умножить массив на поплавок и ожидать получения разумного ответа.

answer = [ cost * volume ] # Here you are multiplying a float by an array 

Я думаю, что вы имеете в виду

volume = length*width*height 
answer = cost*volume 

print("The volume is {0}, giving a total cost of {1}".format(volume, answer)) 
+0

Так что я делаю неправильно в thi s line? печать «Стоимость воды для заполнения бассейна» (ответ) «центами». –

+1

Вы не можете просто запустить переменную прямо против такой строки. В своем отредактированном ответе я показал один (очень гибкий) способ справиться с этим. Другой - это просто печать «стоимость», ответ, «цента». См. Запятые, чтобы отделить элементы, которые вы хотите распечатать. – GreenAsJade

+1

Также обратите внимание, как отмечают другие комментаторы, что формат использования печати отличается между python 2.x и python 3.x, поэтому мы все пытаемся угадать, что у вас есть, чтобы дать вам лучшую информацию :) – GreenAsJade

0

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

поэтому код:

volume = [length*width*height] 

answer = [cost*volume] 

должно быть:

volume = length * width * height 

answer = cost * volume 
0

Две проблемы, как я это вижу. Во-первых, вы создаете список, используя квадратные скобки, они не нужны:

volume = length * width * height 
answer = cost * volume 

На самом деле, они не работают, как и следовало ожидать. Умножив список на целое число дает вам список расширен до нужного размера:

> print(4 * [6,7]) 
[6, 7, 6, 7, 6, 7, 6, 7] 

или Python 2 варианта:

> print 4 * [6,7] 
[6, 7, 6, 7, 6, 7, 6, 7] 

умножая поплавок, как вы делаете, вызывает RUN- временная ошибка.

Во-вторых, вам нужно на самом деле дисплей некоторые выводится пользователю, например, с (как указано выше, для Python 2, оставь внешние скобки):

print(answer) 

или:

print("Volume for %.2f x %.2f x %.2f pool is %.2f" % (length,width,height,volume)) 
print("Cost at %.2f per cubic foot is %.2f" % (cost,answer)) 
+0

OP может использовать Python 3 (поскольку они 'input' вместо' raw_input') – Michael0x2a

+0

Хорошая точка, я приспособию, чтобы покрыть оба на всякий случай. – paxdiablo

+0

Еще один nitpick, извините - в Python 3 вы хотите сделать 'print (...)' без пробела между 'print' и parens, так как это функция. Использование 'str.format' также обычно предпочтительнее использования интерполяции строки'% '-style (хотя похоже, что OP только узнает о конкатенации строк и использует переменные, и поэтому может не знать, какие функции/методы) – Michael0x2a

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