初学者Python区域的房间

时间:2017-01-22 01:19:19

标签: python

现在我正在制定一个计算房间面积的计划,以便购买油漆罐。我进入课堂仅仅三周,我有点不知所措。我无法弄清楚我应该如何将每个墙/天花板/窗户/门连接到一个单独的名称,例如' 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作为参考,希望能更好地理解我想要解释的内容。

3 个答案:

答案 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列相加。