Нашли ошибку?
Скачать чистый
мини-проект≈ 20 минупражнения: 0 из 6

Мини-проект: расходы за две недели

Разобрать траты за две недели — средние, изменения, перевод в другую валюту, самый дорогой день, остаток бюджета и доли дней.

Python запустится при первом выполнении

Мини-проект собирает вместе всё, что было в модуле: массивы, арифметику с числом и с массивом, итоги и argmax. Новых понятий здесь нет — только задача, которую нужно разложить на шаги.

Вы две недели записывали, сколько тратите каждый день, в рублях. Данные уже в массивах: week1 — первая неделя, week2 — вторая, с понедельника по воскресенье.

[ ]Траты по дням
import numpy as np

days = ["пн", "вт", "ср", "чт", "пт", "сб", "вс"]
week1 = np.array([1450, 980, 2300, 1200, 3100, 4200, 1800])
week2 = np.array([1320, 1150, 1980, 2450, 2900, 5100, 2100])
print(week1)
print(week2)
Выводсохранённый · нажмите «Выполнить», чтобы получить свой
[1450  980 2300 1200 3100 4200 1800]
[1320 1150 1980 2450 2900 5100 2100]

Шаг 1. Средние траты

[ ]Упражнение 1Сколько в среднем в день решено

Посчитайте, сколько в среднем тратилось в день в первую неделю (avg1) и во вторую (avg2).

avg1 = ...
avg2 = ...

Шаг 2. Что изменилось

[ ]Упражнение 2День ко дню решено

Сохраните в change, на сколько рублей траты второй недели отличались от первой в тот же день недели: положительное число — во второй неделе потратили больше.

change = ...

[ ]Где выросли траты
print(change)
print("больше всего траты выросли в", days[change.argmax()])
Выводсохранённый · нажмите «Выполнить», чтобы получить свой
[-130  170 -320 1250 -200  900  300]
больше всего траты выросли в чт
Вывод появится, когда решите упражнение «День ко дню», — иначе он подскажет ответ. Ячейку можно и выполнить.

Шаг 3. В другой валюте

[ ]Упражнение 3Траты в долларах решено

Переведите траты второй недели в доллары по курсу 92 рубля за доллар и сохраните в week2_usd.

week2_usd = ...

Шаг 4. Самый дорогой день

[ ]Упражнение 4Когда потратили больше всего решено

Список days содержит названия дней недели по порядку. Сохраните в max_day название дня второй недели, когда потратили больше всего, а в max_sum — сколько именно.

max_day = ...
max_sum = ...

Шаг 5. Бюджет

Предположим, бюджет — 2000 ₽ в день. Остаток дня — бюджет минус траты: положительный — сэкономили, отрицательный — вышли за бюджет.

[ ]Упражнение 5Остаток бюджета решено

Сохраните в left остаток бюджета по каждому дню второй недели, а в left_total — остаток за всю неделю.

left = ...
left_total = ...

Шаг 6. Доли дней

[ ]Упражнение 6Какая часть недели пришлась на день решено

Посчитайте, какой процент трат второй недели пришёлся на каждый день, и сохраните в shares: сумма всех процентов должна получиться 100.

shares = ...

Выводы

[ ]Итоги двух недель
print("в среднем в день:", round(avg1), "→", round(avg2), "₽")
print("рост:", round((week2.sum() / week1.sum() - 1) * 100, 1), "%")
print("самый дорогой день:", max_day, max_sum, "₽")
print("остаток бюджета за неделю:", left_total, "₽")
Выводсохранённый · нажмите «Выполнить», чтобы получить свой
в среднем в день: 2147 → 2429 ₽
рост: 13.1 %
самый дорогой день: сб 5100 ₽
остаток бюджета за неделю: -3000 ₽
Итог появится, когда решите все упражнения урока, — в нём ответы. Ячейку можно и выполнить.

Во вторую неделю тратили больше — примерно на 13 %, рост дали четверг (+1250 ₽) и суббота (+900 ₽), остальные дни почти не изменились; бюджет в 2000 ₽ в день вторая неделя превысила на 3000 ₽. Всё это посчитано без единого цикла: каждое действие — одна строка с массивами.

Выводы с ответами появятся, когда решите все упражнения урока.

Подробнее в справочнике

Практика по модулю

Задачи по NumPy для самостоятельной практики появятся в разделе «Задачи → NumPy».

Нашли ошибку?