在循环中存储更新的变量?

时间:2016-10-08 16:50:52

标签: python python-2.7

我写过这个程序,询问用户他们想要打印多少个矩形。它还要求每个的宽度和高度,并打印三角形。在询问每个的高度和宽度后,它会移动到下一个矩形,依此类推。

这一切都可以正常使用我制作的程序,但最后我要打印出用户创建的所有矩形的总面积。如何更新我的代码并实现此目的?如何存储第一个矩形的区域并将第二个区域的区域添加到第一个区域,依此类推? 这是代码:

size = input("How many rectangles?" ) #asks the number of rectangles 
i=1
n = 1
while i <= size:
    w = input("Width "+str(n)+"? ") #asks for width of each rectangle
    h = input("Height "+str(n)+"? ") #asks for height of each rectangle
    n=n+1
    h1=1
    w1=1
    z = ""
    while w1 <= w:
        z=z+"*"
        w1+=1
    while h1<=h:
        print z
        h1+=1
    i+=1

2 个答案:

答案 0 :(得分:3)

你如何累积总面积?

在你的循环之上,执行:

area = 0

然后,在您的循环中的某个位置,在您从用户获得wh之后,只需执行

area += w * h

完成循环后,area将包含总面积。

答案 1 :(得分:2)

此代码应该使用for循环而不是while循环来跟踪计数器,将数字保存在变量中而不仅仅是“*”字符串中,并在少数地方使用+ =而不是x = x + 1,除此之外,这里是解决您特别询问的总面积问题的最小步骤:

size = input("How many rectangles?" ) #asks the number of rectangles 
i=1
n = 1
area = 0
while i <= int(size):
    w = float(input("Width "+str(n)+"? ")) #asks for width of each rectangle
    h = float(input("Height "+str(n)+"? ")) #asks for height of each rectangle
    n+=1
    h1=1
    w1=1
    z = ""
    while w1 <= w:
        z=z+"*"
        w1+=1
    while h1<=h:
        print(z)
        h1+=1
        area += len(z)
    i+=1
print('total area = ',area)