#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)