现在我正在制定一个计算房间面积的计划,以便购买油漆罐。我进入课堂仅仅三周,我有点不知所措。我无法弄清楚我应该如何将每个墙/天花板/窗户/门连接到一个单独的名称,例如' WALL1 WALL2'等,然后能够调用那些计算。据我所知,我似乎无法弄清楚如何编写这个变量。我绝不会要求整个程序的代码,所以我们将以墙壁为例进行说明。 "约翰想要计算整栋房子需要多少油漆,并且每面墙有57个不同尺寸的墙壁。"如何在将每个墙壁连接到其长度和高度时允许使用无限量的墙壁?或者我应该限制墙壁的数量?一旦我确定了这些墙的数量,我如何将每面墙贴在自己的名字上?每个人的姓名'然后将被调入最终计算。以下是我到目前为止的情况:
# 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 :(得分:0)
您可以使用列表或元组来存储墙壁天花板等,然后运行For循环来进行计算。如果要按名称调用项目,可能还需要使用字典。
您可以使用简单的字符串添加创建Wall1,Wall2等,并将其放在字典中,而不是为每个元素创建变量。
如果您澄清如何接受所有57个墙壁等的用户输入,我们可以更准确地回答。
答案 1 :(得分:0)
在评论中进行讨论后,您的真正问题似乎来自not really understanding the relative difficulty of things yet。在很大程度上,这是因为你还没有真正理解编程,你刚刚在课堂上制作流程图。流程图和编程之间存在相当大的差异,因为使用流程图,您可以放置something magic happens
。
我的第一个建议是查看名为pep8的Python样式指南。 大多数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教程或Internet上的许多其他教程中学习的内容。
您可以对列表进行迭代(循环)并将该信息写入文件,如果这是您想要做的事情。教程也将涵盖这一点。
如果您采用上述方法,您会发现您的项目很多更容易完成。祝你好运!
答案 2 :(得分:-1)
您是否考虑过使用pandas数据帧来存储Wall,Window和Ceiling的每个实例?然后,将Width
列与Length
相乘,并将其存储在Surface
列中。
然后,您只需使用groupby
function获取总计并将结果相加,或者只是将Surface
列相加。