Найти - Пользователи
Полная версия: Помогите с решением двух задач, пожалуйста
Начало » Python для новичков » Помогите с решением двух задач, пожалуйста
1
Angel_1421
Добрый день!

Дана задача со следующими условиями:

Фитнес браслет

У вас есть фитнес браслет, который отслеживает сколько вы прошли за день шагов, съели калорий и просмеялись минут.

Вам нужно написать код, который бы выводил за каждый день эти данные. Все данные находятся в словаре 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

При запуске выдаёт ошибку. Что нужно исправить?
PEHDOM
Angel_1421
При запуске выдаёт ошибку. Что нужно исправить?
а что именно за ошибку оно выдает вам религия не позволяет указать?
Angel_1421
Там свой встроенный модуль проверки. Просто пишет Wrong answer и всё
AD0DE412
а что за шаблон у вас в первой задаче 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 для проверки сразу нескольких переменных.
Angel_1421
Это Jinja
PEHDOM
Angel_1421
так у вас там в __init__ накойто ляд self.money =0
и потом в add_money()
if self.money + deposit_cents <= 99:
вместо
if self.cents + deposit_cents <= 99:
ну и дальше все в том же духе.
self.money там вообще как пятое колесо для рыбы.
Angel_1421
Исправил.

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

Все равно не работает
PEHDOM
 self.cents = self.cents + coin2
серьезно?
а может всеже
 self.cents = coin2
Angel_1421
Все равно не работает
PEHDOM
Angel_1421 А вот тут ХЗ, должно работать, но чтобы понимать что там за ошибка нужно видеть что ооно там передает и что проверяет.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB