Форум сайта python.su
Добрый день!
Дана задача со следующими условиями:
Фитнес браслет
У вас есть фитнес браслет, который отслеживает сколько вы прошли за день шагов, съели калорий и просмеялись минут.
Вам нужно написать код, который бы выводил за каждый день эти данные. Все данные находятся в словаре bracelet_data. Удачи!
Sample Input:
{“Monday”:{“steps”:13000, “calories”:2700, “laugh”:10}}
Sample Output:
<p> Monday </p>
<p> Сегодня вы прошли: 13000 шагов </p>
<p> Сегодня вы съели: 2700 калорий </p>
<p> Сегодня вы смеялись: 10 минут </p>
Я написал следующий код:
{% for day in bracelet_data.keys() %}
<p>{{day}}</p>{% for value in bracelet_data.values() %}
{% for data in value.values() %}
<p>Сегодня вы прошли: {{data}} шагов</p>
{% endfor %}
{% endfor %}
{% endfor %}
В результате выводится:
<p>Monday</p>
<p>Сегодня вы прошли: 13000 шагов</p>
<p>Сегодня вы прошли: 2700 шагов</p>
<p>Сегодня вы прошли: 10 шагов</p>
Помогите разобраться, как правильно написать, чтобы во второй и третьей строке выводилась верная информация? Всю голову себе сломал…
Заранее спасибо!
Вторая задача выглядит так:
Реализуйте класс PiggyBank, который представляет собой олдскульную копилку в форме свиньи. Он имеет два атрибута, доллары (dollars) и центы (cents), и их начальные значения передаются в конструктор.
Создайте метод add_money с двумя параметрами deposit_dollars и deposit_cents, который увеличивает сумму денег в копилке. Например, если вы положили в копилку меньше доллара, значение deposit_dollars равно 0. Метод не должен ничего печатать!
Параметры deposit_dollars и deposit_cents метода add_money могут иметь любое значение, но значение центов в копилке после добавления не может превышать 99! Если значение deposit_cents после добавления больше 99, вам необходимо обновить как значение в долларах, так и значение в центах!
Подсказка: вы можете использовать оператор целочисленного деления и деления с остатком!
Написал код:
class PiggyBank:
def __init__(self, dollars, cents):
self.dollars = dollars
self.cents = cents
self.money = 0
def add_money(self, deposit_dollars, deposit_cents):
self.dollars = self.money + deposit_dollars
if self.money + deposit_cents <= 99:
self.cents += deposit_cents
else:
coin1 = (self.money + deposit_cents) // 100
coinn2 = (self.money + deposit_cents) % 100
self.dollars = self.money + coin1
self.centc = self.money + coin2
При запуске выдаёт ошибку. Что нужно исправить?
Отредактировано Angel_1421 (Июнь 8, 2021 16:13:13)
Офлайн
Angel_1421а что именно за ошибку оно выдает вам религия не позволяет указать?
При запуске выдаёт ошибку. Что нужно исправить?
[code python][/code]
Офлайн
Там свой встроенный модуль проверки. Просто пишет Wrong answer и всё
Офлайн
а что за шаблон у вас в первой задаче django?
https://django-tutorial.blogspot.com/2012/08/django-templates.html
С каждым циклом {% for %} вы получаете доступ к специальной переменной, называемой forloop. Эта переменная содержит несколько атрибутов, которые дают вам информацию о состоянии цикла в данный момент:
forloop.counter хранит число шагов уже пройденных циклом. Отсчет начинается с 1, то есть с начала цикла значение forloop.counter изменится с 0 на 1.
Для примера:
{% for item in todo_list %}
<p>{{ forloop.counter }}: {{ item }}</p>
{% endfor %}
Тэг {% if %} принимает так же значения and, or, or not для проверки сразу нескольких переменных.
Отредактировано AD0DE412 (Июнь 9, 2021 08:18:23)
Офлайн
Это Jinja
Офлайн
Angel_1421
так у вас там в __init__ накойто ляд self.money =0
и потом в add_money()
if self.money + deposit_cents <= 99:
вместо
if self.cents + deposit_cents <= 99:
ну и дальше все в том же духе.
self.money там вообще как пятое колесо для рыбы.
[code python][/code]
Отредактировано PEHDOM (Июнь 9, 2021 13:09:57)
Офлайн
Исправил.
class PiggyBank:
def __init__(self, dollars, cents):
self.dollars = dollars
self.cents = cents
def add_money(self, deposit_dollars, deposit_cents):
self.dollars = self.dollars + deposit_dollars
if self.cents + deposit_cents <= 99:
self.cents += deposit_cents
else:
coin1 = (self.cents + deposit_cents) // 100
coin2 = (self.cents + deposit_cents) % 100
self.dollars = self.dollars + coin1
self.cents = self.cents + coin2
Все равно не работает
Офлайн
self.cents = self.cents + coin2
self.cents = coin2
[code python][/code]
Отредактировано PEHDOM (Июнь 9, 2021 17:38:22)
Офлайн
Все равно не работает
Офлайн
Angel_1421 А вот тут ХЗ, должно работать, но чтобы понимать что там за ошибка нужно видеть что ооно там передает и что проверяет.
[code python][/code]
Отредактировано PEHDOM (Июнь 10, 2021 09:36:38)
Офлайн