✅ Решения заданий

⚡ Решения в двух словах

  • Разминка: c, a, a, c, b, c, b.
  • Счётчик слов: split() + capitalize() + f"{i}. {word:<15}".
  • Формат даты: f"{day:02}/{month:02}/{year}".
  • Сумма положительных: фильтр + f"${total:,.2f}".
  • Счета клиентов: split() + f-strings с шириной поля.

Ответы на разминку

  • 1 — c: ошибка типа в C-style форматировании.
  • 2 — a: %.2f округляет до двух знаков.
  • 3 — a: f-string вычисляет выражение.
  • 4 — c: комбинация позиционного и именованного аргументов.
  • 5 — b: округление .2f.
  • 6 — c: разделители тысяч.
  • 7 — b: центрирование с заполнением _.

Решение задачи 1: счётчик слов

📄 task_01_word_counter.py
text = input("Введите строку: ")
words = text.split()

i = 1
for word in words:
    print(f"{i}. {word.capitalize():<15}")
    i += 1

Логика: разбиваем строку на слова, делаем первую букву заглавной и выравниваем по левому краю на 15 символов.

💡 Современный вариант:
for i, word in enumerate(input("Введите строку: ").split(), start=1):
    print(f"{i}. {word.capitalize():<15}")

Решение задачи 2: формат даты

📄 task_02_date_format.py
day = int(input("Введите день: "))
month = int(input("Введите месяц: "))
year = int(input("Введите год: "))

formatted_date = "{:02}/{:02}/{}".format(day, month, year)
print(f"Дата: {formatted_date}")

Логика: спецификатор :02 добавляет ведущий ноль к однозначным числам.

💡 Современный вариант:
day = int(input("Введите день: "))
month = int(input("Введите месяц: "))
year = int(input("Введите год: "))
print(f"Дата: {day:02}/{month:02}/{year}")

Решение задачи 3: сумма положительных чисел

📄 task_03_positive_sum.py
numbers = [1245.4435, -302.1403, 87459.99, -520.8265, 1450.001]

total = 0.0
for number in numbers:
    if number > 0:
        total += number

print(f"Сумма положительных чисел: ${total:,.2f}")

Логика: суммируем только положительные числа, затем форматируем как денежную сумму.

Решение задачи 4: счета клиентов

📄 task_04_accounts.py
data_list = [
    "John 23 12345.678",
    "Alice 30 200.50",
    "Bob 35 15000.3",
    "Charlie 40 500.75"
]

for data in data_list:
    parts = data.split()
    name = parts[0]
    age = parts[1]
    balance = float(parts[2])
    print(f"Имя: {name:<10} | Возраст: {age:>3} | Баланс: {balance:>10.2f}")

Логика: разбиваем строку по пробелам, преобразуем баланс в float и выводим с заданной шириной каждого поля.