Ответы на разминку
- 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 и выводим с заданной шириной каждого поля.