Прошу помощи в решении задачи на питоне
Уже больше двух недель не могу разобраться с задачей,нужно использовать цикл for и тд. Прошу помощи и подробных объяснений,обучаюсь несколько месяцев. Для коров есть 10 стойл. В каждом стойле разные условия для животных, поэтому и молока они дают по-разному. В первом стойле производят 2 литра в день, во втором 4, в третьем - 6, потом 8, 10, 12, 14, 16, 18, 20. Но коровы стоят не во всех стойлах. Свободные и занятые обозначаются строкой из букв a и b, где a - свободное стойло, b - занятое.
Пользователь вводит строку из 10 символов a и b. Необходимо определить, сколько в итоге будет произведено молока за день.
Ответы (5 шт):
Поскольку это тестовое задание, вы его должны решить сами. Но могу дать подсказку - эта задача решается в одну строчку при использовании range, zip, sum и спискового включения.
P.S. Ну раз все уже пишут код, придётся и мне код привести.
print(sum(v for k,v in zip(input(), range(2,22,2)) if k == 'b'))
Простите, что нарушаю солидарность в вопросах ответа на учебные задания, но я сам вчера только начала изучать Python и мне это интересно. Прошу прокомментировать ответ, если что не так.
udoi = [2,4,6,8,10,12,14,16,18,20]
print('Введите строку без пробелов из букв a и b,латинскими, пожалуйста')
string = input()
moloko = 0
for i in range(10):
if string[i] == 'b':
moloko += udoi[i]
print(moloko)
В продолжение комментариев вариант кода:
s = "baaaaaaaab"
milk = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
summ = 0
for n, i in enumerate(s):
if i == "b":
summ += milk[n]
print(summ)
Подкину немного тем для изучения Python:
udoi = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
string = ['a', 'a', 'b','a', 'b','a', 'b', 'a', 'b', 'a']
print(sum(u[1] for u in zip(string, udoi) if u[0] == 'b'))
milk_yield = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
cow_stalls = ['a', 'a', 'b', 'a', 'b', 'b', 'a', 'b', 'a', 'b']
result = sum(m[1] for m in list(zip(cow_stalls, milk_yield)) if m[0]=='b')
В result - сумма молока от коров в занятых стойлах:
>>> result
64
список кортежей, каждый элемент которого - код стойла и удой:
>>> list(zip(cow_stalls, milk_yield))
[('a', 2), ('a', 4), ('b', 6), ('a', 8), ('b', 10), ('b', 12), ('a', 14), ('b', 16), ('a', 18), ('b', 20)]
цикл по этому списку:
m[1] for m in...
учитывая только занятые стойла:
if m[0]=='b'