初学者Python房间面积

2024-05-26 09:18:20 发布

您现在位置: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作为参考,所以希望它能更好地理解我要解释的内容。在


Tags: thename程序project名称inputarealength
3条回答

经过我们在评论中的讨论,您真正的问题似乎来自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

你可以做到这一点,但作为一个初级开发人员,这有点难以承受。如果你知道正则表达式,这是一件很琐碎的事,但你不懂,而且它们不是一个开始的话题。记住一句流行的话:

^{bq}$

大多数时候他们是错的,但偶尔他们是对的。但作为初学者,他们不是正确的选择。在

相反,你应该这样做:

  • 获取项目名称
  • 询问用户墙尺寸。当他们输入一个空/空字符串时,这是最后一个墙尺寸
  • 向用户询问天花板尺寸(虽然可以将其包括在墙尺寸中,但不需要来使其不同)。当他们输入一个空/空字符串时,就没有更多的天花板了。在
  • 询问用户门的尺寸。空字符串也是一样。在
  • 询问用户窗口大小。同样的道理也适用于天花板和墙壁。在
  • 合并墙/天花板尺寸并减去(门尺寸+窗尺寸)

您可以将大小存储在列表中,例如walls = [[3, 4], [5, 9], [9, 9]]。处理列表可以在Python教程或Internet上的许多其他教程中学习。在

您可以迭代(循环)列表,并将信息写入文件(如果您想这样做的话)。教程也将涵盖这一点。在

如果你采用上述方法,你会发现你的项目更容易完成。祝你好运!在

您是否考虑过使用熊猫数据帧来存储墙、窗和天花板的每个实例?然后将列Width乘以Length,并将其存储在Surface列中。在

然后,您可以简单地使用groupbyfunction来获得总数并将结果相加,或者简单地将Surface列相加。在

你可以使用一个列表或元组来存储你的墙天花板等,然后运行一个For循环来进行计算。如果您想按名称调用项目,您可能还需要使用字典。在

您可以使用简单的字符串加法创建Wall1、Wall2等,并将其放入字典中,而不是为每个元素创建变量。在

如果你澄清你将如何接受所有57面墙的用户输入,我们可以更准确地回答。在

相关问题 更多 >