2017-01-22 10 views
1

Сейчас я работаю над программой, чтобы рассчитать площадь комнаты, чтобы купить банки с краской. Я всего лишь три недели в классе, и я немного перегружен. Мне трудно понять, как я должен прикреплять каждую стену/потолок/окно/дверь к отдельному имени, например «WALL1 WALL2» и т. Д., А затем иметь возможность вызывать их для расчета. Насколько я понял, я не могу понять, как написать эту переменную. Я ни в коем случае не прошу код для всей программы, поэтому мы рассмотрим только стены в качестве примера. «Джон хочет рассчитать, сколько краски ему нужно для целого дома и имеет 57 стен с различными размерами каждой стены». Как разрешить использовать неограниченное количество стен при прикреплении каждой стены к ее длине и высоте? Или я должен ограничить количество стен? Как только я установлю, сколько из этих стен есть, как я прикрепляю каждую стену к собственному имени? Каждое «имя» затем будет вызвано в окончательный расчет. Вот то, что я до сих пор:Новичок Python Площадь комнаты

# Area calculation for paint program 
print "Area Calculation For Paint" 

Project_Name = input('Enter your Project Name:') 

print "WALL1." 
print "WALL2." 
print "WALL3." 
print "WALL4." 
print "WALL5" 
print "WALL6" 
print "WALL7" 
print "WALL8".... 


# Get the user’s choice: 
shape = input("Please select a Wall and input the length and height: ") 




# Calculate the area for each room 
if WALL1 == yes: 
height = input("Please enter the height: ") 
length = input("Please enter the length: ") 
area1 = height*length 
WALL1 = area1 



# Calculate the total square footage 
TOTALSQFT = WALL1 + WALL2 + WALL3 + WALL4 + WALL5 + CEILING1 - WINDOW1 + WINDOW2 + WINDOW3 + DOOR1 + DOOR2... etc 


print "Project_Name total square footage is TOTALSQFT" 

я предоставил мой Flowchart here в качестве ссылки так, мы надеемся, что делает лучше понять то, что я пытаюсь объяснить.

+0

Похоже, вы ищете петлю. Я предлагаю взглянуть на ваш учебник. – TigerhawkT3

+0

И я настоятельно рекомендую вам использовать 'class', если вам разрешено. – Arman

+0

@ TigerhawkT3 забавная вещь - это мой учебник для моих «Оснований разработки программного обеспечения» и вообще не охватывает Python. Я буду искать информацию о циклах. – Amerilys

ответ

0

Вы можете использовать список или кортеж для хранения потолка стены и т. Д., То это вопрос запуска цикла For для расчета. Вы также можете использовать словарь, если хотите вызвать элементы по имени.

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

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

+0

Честно говоря, я не знаю, как ответить на ваш вопрос. Я новичок в этом ... – Amerilys

+0

вы говорите: «Джон хочет рассчитать, сколько краски ему нужно для всего дома и имеет 57 стен с различными размерами каждой стены». Так вы должны получить все 57 размеров стен сразу? или вам нужна только одна стена за раз. Например, можно сказать, что вы позволяете пользователю вводить ширину, высоту и тип (стена, потолок и т. Д.), Тогда вы выводите вычисленную область и может быть какой-то конкретной информацией? –

+0

@Amerilys Есть ли у вас какие-либо знания в области программирования вообще на любом языке? –

-1

Рассматривали ли вы использование фреймов данных pandas для хранения каждого экземпляра стены, окна и потолка? Затем вы умножаете свои столбцы Width на Length и храните их в колонке Surface.

Тогда вы можете просто использовать groupbyfunction, чтобы получить свои итоги и добавить результаты или просто суммировать столбцы Surface.

+4

Пользователь просто учится кататься на велосипеде, и вы хотите поставить перед ним BMW M3 с пандами и концепцией dataframes? –

+0

Я родом из R и часто использую таблицу, поэтому должен признать, что мне труднее не использовать их. Могу быть бухгалтером во мне, но я лучше понимаю мои данные, когда они находятся в матрице, подобной объекту. – Gelinator

+0

Если вы прочитали блок-схему, опубликованную в OP, это явно не то, что упражнение после. –

0

После нашей дискуссии в комментариях выяснилось, что ваша настоящая проблема исходит от not really understanding the relative difficulty of things yet. В значительной степени это потому, что вы еще не понимаете программирования, вы просто делаете блок-схемы в своем классе. Существует отличная разница между блок-схемами и программированием, поскольку с помощью блок-схемы вы можете просто положить something magic happens.

Моя первая рекомендация - проверить руководство по стилю Python под названием pep8). Большинство разработчиков Python придерживаются этого, и это облегчит вашу жизнь при попытке связаться с нами.

Затем вы хотите скорректировать свои ожидания. Попытка разобрать кучу значений от чего-то вроде:

Wall 1 3x4 Wall 2 5x9 Wall 3 9x9 Door 1 2x6.5 Door 2 2x6.5 

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

Разработчики видят проблему и говорят: «Ах, я знаю, я буду использовать регулярные выражения!» Теперь у них есть две проблемы.

В большинстве случаев они ошибаются, но иногда они правильные вещи. Но, будучи новичком, они неправы.

Вместо этого, вы должны стремиться к чему-то вроде этого:

  • получить имя проекта
  • спросить у пользователя размеры стен. Когда они вводят пустую/пустую строку, это последний размер стены
  • спросите пользователя о размерах потолков (хотя вы можете включить это в размеры стены, нет необходимо, чтобы они отличались). Когда они вводят пустую/пустую строку, потолков больше нет.
  • спросите пользователя о размерах дверей. То же самое касается пустых строк.
  • спросите пользователя о размерах окна. То же самое относится и к потолку против стен.
  • объединить/размеры стен и потолка вычесть (размеры двери + размеры окон)

Вы можете хранить размеры в списках, например, walls = [[3, 4], [5, 9], [9, 9]]. Работа со списками - это то, чему вы можете научиться в учебнике Python или во многих других учебниках в Интернете.

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

Если вы возьмете вышеуказанный подход, вы обнаружите, что ваш проект много проще в заполнении. Удачи!

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