🐍 Python: Практические задания

Глава 1: Условные конструкции

📊 Прогресс:

0/0

🟢 Уровень 1: Базовые условия и операторы сравнения

Задача 1.1: Проверка возраста
Пользователь вводит свой возраст (целое число). Если возраст больше или равен 18, вывести "Совершеннолетний"
💡 Подсказка:
Используй if и оператор >=
✅ Решение:
age = int(input("Введите возраст: "))
if age >= 18:
    print("Совершеннолетний")
Задача 1.2: Проверка на ноль
Пользователь вводит целое число. Если число равно 0, вывести "Это ноль"
💡 Подсказка:
Используй оператор == для проверки равенства
✅ Решение:
num = int(input("Введите число: "))
if num == 0:
    print("Это ноль")
Задача 1.3: Проверка пустой строки
Пользователь вводит строку (может нажать Enter для пустой строки). Если строка пустая, вывести "Строка пустая"
💡 Подсказка:
Пустая строка "" это falsy значение
✅ Решение:
s = input("Введите строку: ")
if not s:
    print("Строка пустая")
Задача 1.4: Проверка отрицательного числа
Пользователь вводит число. Если оно меньше нуля, вывести "Отрицательное число"
💡 Подсказка:
Используй оператор <
✅ Решение:
num = int(input("Введите число: "))
if num < 0:
    print("Отрицательное число")

🟡 Уровень 2: if-else и простые комбинации

Задача 2.1: Чётное или нечётное
Пользователь вводит целое число. Определить, чётное оно или нечётное, и вывести соответствующее сообщение
💡 Подсказка:
Используй остаток от деления % и if-else
✅ Решение:
num = int(input("Введите число: "))
if num % 2 == 0:
    print("Чётное")
else:
    print("Нечётное")
Задача 2.2: Положительное или отрицательное
Пользователь вводит число. Определить его знак: "Положительное", "Отрицательное" или "Ноль"
💡 Подсказка:
Сначала проверь на ноль, потом используй elif
✅ Решение:
num = int(input("Введите число: "))
if num > 0:
    print("Положительное")
elif num == 0:
    print("Ноль")
else:
    print("Отрицательное")
Задача 2.3: Проверка пароля
Пользователь вводит пароль. Если пароль равен "qwerty", вывести "Доступ разрешён", иначе "Доступ запрещён"
💡 Подсказка:
Используй == для сравнения строк
✅ Решение:
password = input("Введите пароль: ")
if password == "qwerty":
    print("Доступ разрешён")
else:
    print("Доступ запрещён")
Задача 2.4: Проверка длины строки
Пользователь вводит строку. Если её длина больше 10 символов, вывести "Длинная строка", иначе "Короткая строка"
💡 Подсказка:
Используй функцию len()
✅ Решение:
text = input("Введите строку: ")
if len(text) > 10:
    print("Длинная строка")
else:
    print("Короткая строка")

🟠 Уровень 3: elif и множественные условия

Задача 3.1: Оценка по баллам
Пользователь вводит количество баллов (целое число от 0 до 100). Вывести оценку:
• 90 и выше = "Отлично"
• 80-89 = "Хорошо"
• 70-79 = "Удовлетворительно"
• меньше 70 = "Неудовлетворительно"
💡 Подсказка:
Используй цепочку if-elif-else
✅ Решение:
score = int(input("Введите количество баллов: "))
if score >= 90:
    print("Отлично")
elif score >= 80:
    print("Хорошо")
elif score >= 70:
    print("Удовлетворительно")
else:
    print("Неудовлетворительно")
Задача 3.2: День недели
Пользователь вводит номер дня недели (1-7). Вывести "Будний день" для 1-5 или "Выходной" для 6-7
💡 Подсказка:
Проверь на 6 или 7 с помощью or
✅ Решение:
day = int(input("Введите номер дня недели (1-7): "))
if day == 6 or day == 7:
    print("Выходной")
else:
    print("Будний день")
Задача 3.3: Категория возраста
Пользователь вводит возраст. Определить категорию:
• 0-12 = "Ребёнок"
• 13-17 = "Подросток"
• 18-59 = "Взрослый"
• 60 и старше = "Пожилой"
💡 Подсказка:
Используй elif для последовательной проверки
✅ Решение:
age = int(input("Введите возраст: "))
if age <= 12:
    print("Ребёнок")
elif age <= 17:
    print("Подросток")
elif age <= 59:
    print("Взрослый")
else:
    print("Пожилой")
Задача 3.4: Размер одежды
Пользователь вводит размер одежды (строка). Вывести описание:
• "S" = "Маленький"
• "M" = "Средний"
• "L" = "Большой"
• "XL" = "Очень большой"
• любой другой = "Неизвестный размер"
💡 Подсказка:
Используй цепочку elif
✅ Решение:
size = input("Введите размер (S/M/L/XL): ")
if size == "S":
    print("Маленький")
elif size == "M":
    print("Средний")
elif size == "L":
    print("Большой")
elif size == "XL":
    print("Очень большой")
else:
    print("Неизвестный размер")

🔴 Уровень 4: Логические операторы и составные условия

Задача 4.1: Диапазон чисел
Пользователь вводит число. Проверить, находится ли оно в диапазоне от 10 до 20 включительно. Вывести "В диапазоне" или "Вне диапазона"
💡 Подсказка:
Используй and для объединения условий
✅ Решение:
num = int(input("Введите число: "))
if num >= 10 and num <= 20:
    print("В диапазоне")
else:
    print("Вне диапазона")
Задача 4.2: Проверка логина и пароля
Пользователь вводит логин и пароль (каждый с новой строки). Доступ разрешён только если логин "admin" И пароль "12345"
💡 Подсказка:
Используй and для проверки обоих условий
✅ Решение:
login = input("Введите логин: ")
password = input("Введите пароль: ")
if login == "admin" and password == "12345":
    print("Доступ разрешён")
else:
    print("Доступ запрещён")
Задача 4.3: Скидка в магазине
Пользователь вводит сумму покупки (число) и статус VIP (да/нет). Скидка 10% даётся если сумма больше 1000 ИЛИ клиент VIP
💡 Подсказка:
Используй or для альтернативных условий
✅ Решение:
amount = int(input("Введите сумму покупки: "))
vip = input("VIP клиент? (да/нет): ")
if amount > 1000 or vip == "да":
    print("Скидка 10%")
else:
    print("Без скидки")
Задача 4.4: Допуск к экзамену
Студент вводит количество посещённых занятий (из 20) и средний балл. Допуск к экзамену если: посещено >= 15 занятий И средний балл >= 3.5
💡 Подсказка:
Используй and и сравнение с float
✅ Решение:
attendance = int(input("Количество посещённых занятий: "))
gpa = float(input("Средний балл: "))
if attendance >= 15 and gpa >= 3.5:
    print("Допущен к экзамену")
else:
    print("Не допущен к экзамену")

🟣 Уровень 5: Вложенные условия и тернарный оператор

Задача 5.1: Детальная проверка числа
Пользователь вводит число. Если оно положительное, дополнительно проверить чётное оно или нечётное. Для неположительных вывести "Не положительное"
💡 Подсказка:
Используй вложенный if внутри первого
✅ Решение:
num = int(input("Введите число: "))
if num > 0:
    if num % 2 == 0:
        print("Положительное чётное")
    else:
        print("Положительное нечётное")
else:
    print("Не положительное")
Задача 5.2: Тернарная проверка
Пользователь вводит число. Используя тернарный оператор, присвоить переменной result значение "Да" если число больше 100, иначе "Нет". Вывести result
💡 Подсказка:
результат = значение1 if условие else значение2
✅ Решение:
num = int(input("Введите число: "))
result = "Да" if num > 100 else "Нет"
print(result)
Задача 5.3: Валидация email
Пользователь вводит email. Email валиден если содержит "@" И есть точка после "@". Вывести "Email валиден" или "Email невалиден"
💡 Подсказка:
Используй in для проверки вхождения и метод find()
✅ Решение:
email = input("Введите email: ")
if "@" in email:
    at_pos = email.find("@")
    if "." in email[at_pos:]:
        print("Email валиден")
    else:
        print("Email невалиден")
else:
    print("Email невалиден")
Задача 5.4: Калькулятор скидки
Пользователь вводит сумму и тип карты ("gold", "silver", "none"). Gold даёт 20% скидки, silver - 10%. Используя тернарный оператор, вычислить итоговую сумму
💡 Подсказка:
Можно вкладывать тернарные операторы
✅ Решение:
amount = int(input("Введите сумму: "))
card = input("Тип карты (gold/silver/none): ")
discount = 0.8 if card == "gold" else (0.9 if card == "silver" else 1)
final = amount * discount
print(f"Итоговая сумма: {final}")

Уровень 6: Специальные случаи и тонкости

Задача 6.1: Проверка пустых значений
Пользователь вводит строку. Если она пустая ИЛИ состоит только из пробелов, вывести "Нет данных", иначе "Есть данные"
💡 Подсказка:
Используй метод strip() и проверку на falsy
✅ Решение:
data = input("Введите данные: ")
if not data.strip():
    print("Нет данных")
else:
    print("Есть данные")
Задача 6.2: Оператор неравенства
Пользователь вводит команду. Если команда НЕ равна "стоп", вывести "Продолжаем", иначе "Останавливаемся"
💡 Подсказка:
Используй оператор !=
✅ Решение:
command = input("Введите команду: ")
if command != "стоп":
    print("Продолжаем")
else:
    print("Останавливаемся")
Задача 6.3: elif vs отдельные if
Пользователь вводит число. Проверить ВСЕ характеристики: больше 5, чётное, положительное. Вывести каждую подходящую характеристику с новой строки
💡 Подсказка:
Используй отдельные if, а не elif
✅ Решение:
num = int(input("Введите число: "))
if num > 5:
    print("Больше 5")
if num % 2 == 0:
    print("Чётное")
if num > 0:
    print("Положительное")
Задача 6.4: Проверка на число
Пользователь вводит строку. Проверить, можно ли её преобразовать в число. Если да - вывести "Это число", если нет - "Это не число"
💡 Подсказка:
Используй метод isdigit() для положительных чисел или проверку на "-" в начале
✅ Решение:
value = input("Введите значение: ")
if value.isdigit() or (value.startswith("-") and value[1:].isdigit()):
    print("Это число")
else:
    print("Это не число")
Задача 6.5: Ленивые вычисления (short-circuit)
Дан список товаров: products = ["молоко", "хлеб", "яйца"]. Пользователь вводит индекс. Проверить, что индекс в допустимом диапазоне И товар на этой позиции начинается с "м"
💡 Подсказка:
Благодаря short-circuit, вторая проверка не выполнится для некорректного индекса
✅ Решение:
products = ["молоко", "хлеб", "яйца"]
index = int(input("Введите индекс товара (0-2): "))
if 0 <= index < len(products) and products[index].startswith("м"):
    print("Товар начинается с 'м'")
else:
    print("Условие не выполнено")
Задача 6.6: Сложные логические выражения
Пользователь вводит возраст, наличие паспорта (да/нет) и специального разрешения (да/нет). Доступ разрешён если: (возраст >= 18 И есть паспорт) ИЛИ (есть специальное разрешение)
💡 Подсказка:
Используй скобки для группировки условий
✅ Решение:
age = int(input("Введите возраст: "))
has_passport = input("Есть паспорт? (да/нет): ")
has_permission = input("Есть спецразрешение? (да/нет): ")

if (age >= 18 and has_passport == "да") or has_permission == "да":
    print("Доступ разрешён")
else:
    print("Доступ запрещён")

💡 Полезные советы