Мне нужно рассчитать общий размер пола. сначала запрашивается количество комнат (все они прямоугольные), а затем с помощью цикла for запрашивается длина и ширина каждой из них. Вот мой код (python):

norooms = int(input('How many rooms does the floor have?'))
length = dict()
width = dict()
for i in range(norooms):
    length[i] = input('what is the length of room?')
    width[i] =input('what is the width of room?')
    print('that was room number:',i+1)

Теперь надо подсчитать общую сумму пола. Могу ли я получить помощь?

-3
sadzony 14 Дек 2015 в 15:12

4 ответа

Лучший ответ
norooms = int(input('How many rooms does the floor have?'))
length = dict()
width = dict()
for i in range(norooms):
    length[i] = input('what is the length of room?')
    width[i] =input('what is the width of room?')
    print('that was room number:',i+1)
total=0
for i in range(norooms):
    total += float(length[i])*float(width[i])

print 'total is:' ,total

Если это было в программировании Exchange, я рекомендую этот код:

room_counts = int(input('How many rooms does the floor have?'))
total=0
for i in xrange(room_counts)
    length=float(input('room #%s length?'%(i+1)))
    width=float(input('room #%s width?'%(i+1)))
    total +=length*width
print 'total is ',total
0
Community 12 Апр 2017 в 07:31

Это можно решить очень быстро с помощью numpy. Если вы собираетесь делать подобные вещи в будущем, возможно, стоит потратить некоторое время на изучение библиотеки.

В любом случае, здесь вы идете:

import numpy as np

no_rooms = int(input('How many rooms does the floor have?'))

length = np.empty(no_rooms)
width = np.empty(no_rooms)

for i in range(no_rooms):
    length[i] = input('what is the length of room?')
    width[i] = input('what is the width of room?')
    print('that was room number:', i+1)

print('total is: ' + str(np.dot(length, width)))
1
N. Wouda 14 Дек 2015 в 12:27

Вы знаете, как рассчитать площадь данной комнаты x? Сделайте это для всех комнат, а затем рассчитайте сумму. Также имейте в виду, что в настоящее время длина и ширина комнат все еще являются строками.

1
DeepSpace 14 Дек 2015 в 12:16

Цикл for также перебирает ключи словарей, поэтому вы можете сделать:

for key in length:
    # do something with length[key] and width[key]

Тем не менее, я думаю, что это было бы немного более читабельно, если бы вы изменили свои dict на list из dict, например:

norooms = int(input('How many rooms does the floor have?'))
rooms = []
for i in range(norooms):
    room = {"length": 0, "width": 0}
    room["length"] = input('what is the length of room?')
    room["width"] = input('what is the width of room?')
    rooms.append(room)
    print('that was room number:',i+1)
for room in rooms:
    # do something with room["length"] and room["width"]

Или даже просто сделайте вычисление в первом цикле for, если хотите.

0
Kendas 14 Дек 2015 в 12:20