Хранение обновленных переменных в цикле?

#python #python-2.7

#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
  

Комментарии:

1. ошибка неправильного тега

Ответ №1:

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

Над вашим циклом выполните:

 area = 0
  

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

 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)