2016-10-08 2 views
0

Я написал эту программу, которая спрашивает пользователя о том, сколько прямоугольников они хотят распечатать. Он также запрашивает ширину и высоту каждого и печатает треугольники. После запроса высоты и ширины каждого из них он перемещается на следующий прямоугольник и так далее.Сохранение обновленных переменных в цикле?

Это все работает отлично, используя программу, которую я создал, но в конце я хочу распечатать общую площадь всех прямоугольников, которые создал пользователь. Как я могу обновить свой код и добиться этого? Как можно сохранить область первого прямоугольника и добавить область второй в эту первую область и так далее? Вот код:

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 
+0

ошибка неправильный тег – HogRider123

ответ

3

Как насчет вас просто аккумулировать общую площадь?

Над вашей петли, сделайте следующее:

area = 0 

Затем, где-то внутри цикла, после того, как вы получили w и h от пользователя, просто сделать

area += w * h 

После завершения цикла, area будет содержать общую площадь.

+0

я чувствую глупо не думать об этом. отлично работает – HogRider123

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)