Форум сайта python.su
RikinЭто основы, которые вы не захотели изучать.Вы сейчас как будто пол фильма проспали, а потом проснулись и спрашиваете,что это за герои и что они делают
Вопрос1: что мы делаем в этой строке с помощью этой команды (и кв. скобки)?:
Офлайн
RikinК списку нельзя применить круглые скобки.
Это здесь - Вы имеете ввиду я вызываю список как функцию?:Нужны, стало быть (хотя бы для верного направления) квадратные скобки… Куда бы их поместить… ?print(works(range(1, 3)))
Так, что ли?:print(works[range(1, 3)])
>>> def f(x): ... return x * x ... >>> xx = f(4) >>> xx 16 >>>
>>> lst = [10, 20, 30, 40] >>> >>> n = 2 >>> item30 = lst[n] >>> item30 30 >>>
Отредактировано py.user.next (Дек. 27, 2021 07:55:44)
Офлайн
С новым годом Вас!
Здоровья, успехов, исполнения желаний!
Офлайн
py.user.next
…… даже основ питона не знаешь и взялся ….? Кто же этот мастер, который взял тебя на учёбу? Видно, мошенник какой-то
Офлайн
Спасибо.
Еще вопрос. Теперь ваш неуч хотел бы реализовать сложение затрат “costs” в списке works постредством FOR… in range() выбранных позиций: например в данном случае с первой до
четвёртой (не включая).
То есть, алгоритмически идея такова:
- выудить на каждой итерации цикла FOR - текущее актуальное значение costs ? для этого наверное полезно выбросить эти значения costs за пределы цикла FOR
- некий новый список lstSumCosts с числом значений, соответствующим числу итераций цикла FOR - заполнить выуженными значениями costs
- просуммировать все элементы новополученного списка и выдать сумму затрат “costs_selected”
Я конечно пробовал, но…:
class Work: def __init__(self, name="", activity="", costs=0): self.name = name self.activity = activity self.costs = costs works = [{"name": "Max Must", "activity": "Software development 1", "costs": 100}, {"name": "Peter Beisp", "activity": "Software development 1", "costs": 95}, {"name": "Jacky Sparrowson", "activity": "Management", "costs": 70}, {"name": "Tonia Tirolsenia", "activity": "Software Testing area 1", "costs": 85}, {"name": "Antony Tirolsen", "activity": "Software Testing area 2", "costs": 80}, {"name": "Mister A", "activity": "buying materials group A", "costs": 35}, {"name": "Mister X", "activity": "buying materials group B", "costs": 35}, {"name": "Mister Y", "activity": "buying materials group Y", "costs": 30}, {"name": "Mister Z", "activity": "buying materials group Z", "costs": 25}] obj_lst = [] for work in works: obj_lst.append(Work(**work)) # theSum = 0 for i in range(1, 4): print("name work:", obj_lst[i].name) print("activity work:", obj_lst[i].activity) print("costs work:", obj_lst[i].costs) # lstSum =[obj_lst[i].costs] # print("lstSum:", lstSum) # theSum = obj_lst[i].costs + obj_lst[i+1].costs # ??? how to build the Sum of in range selected # "costs[i]" / obj_lst[i].costs ??? # print("theSum:", theSum) # print (sum("general_sum:", obj_lst[i].costs)) print('\n')
Офлайн
Rikin
сложение затрат “costs” в списке works постредством FOR… in range() выбранных позиций: например в данном случае с первой до
четвёртой (не включая).
>>> works = [ ... {"name": "Max Must", "activity": "Software development 1", "costs": 100}, ... {"name": "Peter Beisp", "activity": "Software development 1", "costs": 95}, ... {"name": "Jacky Sparrowson", "activity": "Management", "costs": 70}, ... {"name": "Tonia Tirolsenia", "activity": "Software Testing area 1", "costs": 85}, ... {"name": "Antony Tirolsen", "activity": "Software Testing area 2", "costs": 80}, ... {"name": "Mister A", "activity": "buying materials group A", "costs": 35}, ... {"name": "Mister X", "activity": "buying materials group B", "costs": 35}, ... {"name": "Mister Y", "activity": "buying materials group Y", "costs": 30}, ... {"name": "Mister Z", "activity": "buying materials group Z", "costs": 25} ... ] >>> >>> out = sum(i['costs'] for i in works[:3]) >>> out 265 >>>
Офлайн
py.user.nextfor i in works[:3]
for i in works[:3]
for i in range(1, 4):
for i in range(1, 4):
for i in works[:3]
Отредактировано Rikin (Янв. 2, 2022 14:36:49)
Офлайн
Спасибо.
Но так он суммирует позицию 1 и позицию 2… а третья очевидно не включается в сумму.
А так - с вашей помощью - считает как хотелось бы:
out = sum(i['costs'] for i in works[1:4]) print(out)
Офлайн
Rikin
Помимо того, насколько я понимаю здесь выборка идёт начиная с нулевой, а не с первой позиции?
Я бы хотел начать не с нулевой позиции списка works, а с первой
>>> works = [ ... {"name": "Max Must", "activity": "Software development 1", "costs": 100}, ... {"name": "Peter Beisp", "activity": "Software development 1", "costs": 95}, ... {"name": "Jacky Sparrowson", "activity": "Management", "costs": 70}, ... {"name": "Tonia Tirolsenia", "activity": "Software Testing area 1", "costs": 85}, ... {"name": "Antony Tirolsen", "activity": "Software Testing area 2", "costs": 80}, ... {"name": "Mister A", "activity": "buying materials group A", "costs": 35}, ... {"name": "Mister X", "activity": "buying materials group B", "costs": 35}, ... {"name": "Mister Y", "activity": "buying materials group Y", "costs": 30}, ... {"name": "Mister Z", "activity": "buying materials group Z", "costs": 25} ... ] >>> >>> out = sum(i['costs'] for i in works[1:4]) >>> out 250 >>>
costs_sum = 0 for i in range(1, 4): print('name work:', obj_lst[i].name) print('activity work:', obj_lst[i].activity) print('costs work:', obj_lst[i].costs) costs_sum += obj_lst[i].costs print('costs sum:', costs_sum)
Rikin
Да… и я сначала пробовал out = sum(i for i in range(1, 4)) но range ему не нравится ни с какими скобками и ни с какими вариантами…-> выдаёт ошибку с range…
Ну и ладно… пусть будет works
>>> works = [ ... {"name": "Max Must", "activity": "Software development 1", "costs": 100}, ... {"name": "Peter Beisp", "activity": "Software development 1", "costs": 95}, ... {"name": "Jacky Sparrowson", "activity": "Management", "costs": 70}, ... {"name": "Tonia Tirolsenia", "activity": "Software Testing area 1", "costs": 85}, ... {"name": "Antony Tirolsen", "activity": "Software Testing area 2", "costs": 80}, ... {"name": "Mister A", "activity": "buying materials group A", "costs": 35}, ... {"name": "Mister X", "activity": "buying materials group B", "costs": 35}, ... {"name": "Mister Y", "activity": "buying materials group Y", "costs": 30}, ... {"name": "Mister Z", "activity": "buying materials group Z", "costs": 25} ... ] >>> >>> out = sum(works[i]['costs'] for i in range(1, 4)) >>> out 250 >>>
Отредактировано py.user.next (Янв. 3, 2022 02:09:22)
Офлайн