""" Урок 05. Практикум 1 — весь код примеров одним файлом. Источник: subjects/python-fundamentals/course/lessons/05-practice-1/examples.html Файл собран автоматически (tools/build_lesson_examples.py): правьте страницу урока. Запуск: python lesson-05.py """ # ==================================================================== # Пример 1. input() всегда возвращает строку # ==================================================================== age_text = "22" print(type(age_text)) # age = int(age_text) print(type(age)) # print(age + 1) # 23 try: print("25" + 5) except TypeError as error: print("TypeError:", error) # can only concatenate str (not "int") to str # ==================================================================== # Пример 2. Склейка строк: + и str(), альтернатива — print с запятыми # ==================================================================== name = "Анна" age = 22 color = "синий" message = "Меня зовут " + name + ", мне " + str(age) + " лет, и мой любимый цвет — " + color + "." print(message) # Меня зовут Анна, мне 22 лет, и мой любимый цвет — синий. # print сам расставляет пробелы через sep=" " и умеет печатать числа как есть print("Меня зовут", name + ",", "мне", age, "лет, и мой любимый цвет —", color + ".") # Меня зовут Анна, мне 22 лет, и мой любимый цвет — синий. # ==================================================================== # Пример 3. Кавычки и escape-последовательности # ==================================================================== print("Она сказала: \"Привет!\"") # экранирование обратным слэшем print('Она сказала: "Привет!"') # внешние кавычки другого вида print("""Она сказала: "Привет!" """) # тройные кавычки print("Список дел:\n\tУчеба\n\tУборка\n\tСпорт") # ==================================================================== # Пример 3. Кавычки и escape-последовательности # ==================================================================== # Она сказала: "Привет!" # Она сказала: "Привет!" # Она сказала: "Привет!" # Список дел: # Учеба # Уборка # Спорт # ==================================================================== # Пример 4. Семья операторов деления: /, //, %, divmod() # ==================================================================== distance = 120 speed = 45 print(distance / speed) # 2.6666666666666665 — обычное деление, float print(distance // speed) # 2 — целых раз print(distance % speed) # 30 — остаток print(divmod(distance, speed)) # (2, 30) — то же самое парой # ==================================================================== # Пример 5. Общий приём: перевести в одну единицу, потом разложить // и % # ==================================================================== total_minutes = 200 hours = total_minutes // 60 minutes = total_minutes % 60 print("Общее время:", hours, "часа и", minutes, "минут") # Общее время: 3 часа и 20 минут total_days = 20 weeks = total_days // 7 days = total_days % 7 print("До события осталось:", weeks, "недель и", days, "дня.") # До события осталось: 2 недель и 6 дня. # тот же приём для объёма: сколько бутылок по 250 мл нальётся из 17 литров liters = 17 milliliters = 250 full_bottles = liters * 1000 // milliliters leftover = liters * 1000 % milliliters print(full_bottles, "полных бутылок и", leftover, "мл останется") # 68 полных бутылок и 0 мл останется # ==================================================================== # Пример 6. Цифры числа через // и % # ==================================================================== number = 1234 first_digit = number // 1000 last_digit = number % 10 middle_part = (number % 1000) // 10 new_number = last_digit * 1000 + middle_part * 10 + first_digit print(new_number) # 4231 digits_sum = number // 1000 + number // 100 % 10 + number // 10 % 10 + number % 10 print("Сумма цифр:", digits_sum) # 10 # ==================================================================== # Пример 6. Цифры числа через // и % # ==================================================================== print(str(number)[0], str(number)[-1]) # 1 4 # ==================================================================== # Пример 7. n + nn + nnn: почему нельзя конвертировать n сразу # ==================================================================== n = "7" # намеренно оставляем строкой nn = n + n # "77" — строки складываются как текст nnn = n + n + n # "777" print(nn, nnn) # 77 777 result = int(n) + int(nn) + int(nnn) print(result) # 861 # частая ошибка: конвертировать n в int раньше времени n_num = 7 wrong_result = n_num + n_num + n_num print("wrong:", wrong_result) # 21 — это просто 7+7+7, не то, что просили # ==================================================================== # Пример 8. Плотное выражение в одну строку → разложенные шаги # ==================================================================== # всё в одной строке — работает, но проверить и объяснить сложно print("Стоимость:", (int("650") / 100) * int("7") * int("55")) # Стоимость: 2502.5 # то же самое по шагам — каждое значение можно напечатать отдельно distance = 650 fuel_consumption = 7 fuel_price = 55 consumption_for_trip = (distance / 100) * fuel_consumption total_cost = consumption_for_trip * fuel_price print("Расход на поездку:", consumption_for_trip, "л") # Расход на поездку: 45.5 л print("Стоимость бензина для поездки:", total_cost) # Стоимость бензина для поездки: 2502.5 # ==================================================================== # Пример 9. Подводный камень: float не всегда даёт «круглый» результат # ==================================================================== print(0.1 + 0.2) # 0.30000000000000004 print(0.1 + 0.2 == 0.3) # False price_per_liter = 54.7 liters = 3 print(price_per_liter * liters) # 164.10000000000002 print(round(price_per_liter * liters, 2)) # 164.1 # ==================================================================== # Пример 10. Собираем приём целиком: ввод → преобразование → расчёт → вывод # ==================================================================== distance = int(input("Введите расстояние (в км): ")) speed = int(input("Введите среднюю скорость (в км/ч): ")) total_minutes = int(distance / speed * 60) hours = total_minutes // 60 minutes = total_minutes % 60 print("Время в пути:", hours, "часа и", minutes, "минут") # при вводе 613 и 80: Время в пути: 7 часа и 39 минут