我无法从for循环中的变量中收集答案

时间:2016-01-20 19:41:34

标签: python loops variables scope

请有人帮我做作业......我被困住了,我需要认真的帮助。以下是问题: 对于每个房间,要求房间名称(例如休息室,餐厅)和房间的墙壁数量:对于每个墙壁,询问墙壁的高度和宽度(以米为单位)。以平方米计算墙的总表面积 我不能在我的for循环中添加数字,因为for循环重复变量也是如此,所以我不能在我的第一个输入中记录第一个答案因为我不能这样做我找不到总表面积

在我的代码下面:

numofrooms = input("num of rooms:")
n = int(numofrooms)
for n in range(n):
    input("name of room:")
    numofwalls = input("num of walls:")
    wall = int(numofwalls)
    for wall in range(wall):
        height = input("height of wall:")
        height = int(height)
        width = input("width of wall:")
        width = int(width)
        sa = int(height) * int(width)
    tsa = sa * int(numofwalls) * int(numofwalls)

4 个答案:

答案 0 :(得分:2)

在计算每个墙的表面积时,将该值添加到变量中。在程序结束时,打印该变量。

您的<%= simple_form_for @case, html: { multipart: true } do |f| %> <%= f.input :image, as: :file %> <%= f.input :title, label: "Case" %> <%= f.input :description, label: "Parts" %> <%= f.collection_check_boxes :part_ids, Part.all, :id, :name %> <%= link_to_add_association 'Create Part', f, :parts, class: "btn btn-default add-button" %> <%= f.submit %> <% end %> #_parts_fields.html.erb <%= f.text_field :title %> 变量几乎已经使用此变量,但您的代码替换以前的tsa值而不是添加,并且它应该在tsa循环中缩进。

答案 1 :(得分:1)

要汇总值,请使用其他变量:

sa_sum = 0
for _ in range(wall):
    sa = do_your_calculation()
    sa_sum = sa_sum + sa

答案 2 :(得分:1)

numofrooms = input("num of rooms:")
n = int(numofrooms)
tsa = 0
for n in range(n):
    input("name of room:")
    numofwalls = input("num of walls:")
    wall = int(numofwalls)
    for wall in range(wall):
        height = input("height of wall:")
        height = int(height)
        width = input("width of wall:")
        width = int(width)
        sa = int(height) * int(width)
    tsa += sa * int(numofwalls) * int(numofwalls)

您只需要对每个循环求tsa,而不是每次都重置它。你很亲密。

答案 3 :(得分:0)

目前,您正在计算每个房间的表面积(sa =宽度*高度),但之后没有正确计算(即将该值存储在总计中)。

下面的代码通过不断地为所述房间添加所有墙壁的sa来计算每个房间的sa(“for wall in range(numOfWalls):”loop)。它需要计算所有房间的sa,因此它将每个房间的表面积添加到一个总变量(如其他答案中所述)

numOfRooms = int(input("num of rooms:"))
tsa = 0
for n in range(numOfRooms):
    input("name of room:")
    numOfWalls = int(input("num of walls:"))
    sa = 0
    for wall in range(numOfWalls):
        height = int(input("height of wall:"))
        width = int(input("width of wall:"))
        sa = sa + (height * width)
    tsa = tsa + sa

我结合了一些线条,让事情看起来更好看