Python

Задачи по Python для начинающих: 20 упражнений с решениями

В этом материале ровно 20 упражнений по Python для начинающих. Они идут от ввода данных и условий к циклам, спискам, строкам, словарям и функциям

Каждая задача содержит условие, подсказку, готовое решение и проверку. Лучше сначала написать свой вариант, затем сравнить его с решением и запустить код на других данных

Как работать с подборкой

Подборка закрывает первый практический круг новичка: ввод, условия, циклы, списки, строки, словари и простые функции

Перед просмотром решения попробуйте написать хотя бы черновик. Если задача не идет, выпишите входные данные, ожидаемый результат и одно действие, которое нужно сделать первым

После решения измените данные и запустите код снова. Так вы быстрее увидите, где программа привязана только к одному примеру

Задачи с решениями

Задача 1. Приветствие по имени

Условие: Попросите пользователя ввести имя и выведите персональное приветствие

Подсказка: Сначала получите строку через input, затем соберите ответ через f-string

Решение:

name = input("Ваше имя: ").strip()
print(f"Привет, {name}!")

Проверка: Проверьте имя с пробелами по краям и пустой ввод

Задача 2. Сумма двух чисел

Условие: Прочитайте два числа и выведите их сумму

Подсказка: input возвращает строку, поэтому перед сложением нужен int или float

Решение:

a = int(input("Первое число: "))
b = int(input("Второе число: "))
print(a + b)

Проверка: Проверьте 2 и 3, затем -5 и 10

Задача 3. Площадь прямоугольника

Условие: Пользователь вводит ширину и высоту, программа считает площадь

Подсказка: Площадь равна произведению сторон

Решение:

width = float(input("Ширина: "))
height = float(input("Высота: "))
area = width * height
print(area)

Проверка: Проверьте 3 и 4, результат должен быть 12

Задача 4. Четное или нечетное

Условие: Определите, является ли число четным

Подсказка: Остаток от деления на 2 показывает четность

Решение:

number = int(input("Число: "))

if number % 2 == 0:
    print("Четное")
else:
    print("Нечетное")

Проверка: Проверьте 0, 7 и 10

Задача 5. Возрастной доступ

Условие: Если пользователю 18 или больше, выведите разрешение, иначе отказ

Подсказка: Условие должно сравнивать число, а не строку

Решение:

age = int(input("Возраст: "))

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

Проверка: Проверьте 17, 18 и 25

Задача 6. Большее из двух чисел

Условие: Прочитайте два числа и выведите большее

Подсказка: Отдельно решите, что делать при равенстве

Решение:

a = int(input("Первое число: "))
b = int(input("Второе число: "))

if a > b:
    print(a)
elif b > a:
    print(b)
else:
    print("Числа равны")

Проверка: Проверьте пары 5/3, 2/9 и 4/4

Задача 7. Счетчик от 1 до N

Условие: Пользователь вводит N, программа печатает числа от 1 до N

Подсказка: range в правой границе не включает последнее число

Решение:

n = int(input("N: "))

for number in range(1, n + 1):
    print(number)

Проверка: Проверьте N = 1 и N = 5

Задача 8. Сумма чисел от 1 до N

Условие: Посчитайте сумму всех чисел от 1 до введенного N

Подсказка: Создайте переменную total и увеличивайте ее в цикле

Решение:

n = int(input("N: "))
total = 0

for number in range(1, n + 1):
    total += number

print(total)

Проверка: Для N = 5 результат должен быть 15

Задача 9. Таблица умножения

Условие: Выведите таблицу умножения для числа от 1 до 10

Подсказка: Внутри цикла печатайте множитель и результат

Решение:

number = int(input("Число: "))

for multiplier in range(1, 11):
    print(f"{number} x {multiplier} = {number * multiplier}")

Проверка: Проверьте число 7 и убедитесь, что строк ровно 10

Задача 10. Количество символов без пробелов по краям

Условие: Прочитайте строку, уберите пробелы по краям и выведите длину

Подсказка: strip не меняет строку на месте, он возвращает новую строку

Решение:

text = input("Введите текст: ").strip()
print(len(text))

Проверка: Введите строку с пробелами в начале и конце

Задача 11. Разворот строки

Условие: Разверните введенную строку в обратном порядке

Подсказка: Срез [::-1] берет строку с конца к началу

Решение:

text = input("Текст: ")
reversed_text = text[::-1]
print(reversed_text)

Проверка: Для python результат должен быть nohtyp

Задача 12. Палиндром

Условие: Проверьте, читается ли строка одинаково слева направо и справа налево

Подсказка: Сначала приведите строку к нижнему регистру и уберите пробелы по краям

Решение:

text = input("Слово: ").strip().lower()

if text == text[::-1]:
    print("Палиндром")
else:
    print("Не палиндром")

Проверка: Проверьте слова казак, python и Anna

Задача 13. Сумма элементов списка

Условие: Дан список чисел, выведите сумму без встроенной функции sum

Подсказка: Пройдите по списку циклом и накопите total

Решение:

numbers = [3, 5, 2, 10]
total = 0

for number in numbers:
    total += number

print(total)

Проверка: Сравните результат с sum(numbers)

Задача 14. Только положительные числа

Условие: Из списка чисел соберите новый список только с положительными значениями

Подсказка: Не удаляйте элементы из исходного списка во время обхода

Решение:

numbers = [-3, 0, 5, 8, -1]
positive = []

for number in numbers:
    if number > 0:
        positive.append(number)

print(positive)

Проверка: Результат должен быть [5, 8]

Задача 15. Максимум без max

Условие: Найдите максимальное число в непустом списке без функции max

Подсказка: Начните с первого элемента, затем сравнивайте остальные

Решение:

numbers = [4, 9, 1, 12, 7]
largest = numbers[0]

for number in numbers:
    if number > largest:
        largest = number

print(largest)

Проверка: Проверьте список из одного элемента

Задача 16. Подсчет слов

Условие: Посчитайте, сколько слов в строке

Подсказка: split без аргументов сам убирает лишние пробелы между словами

Решение:

text = "python  is a good start"
words = text.split()
print(len(words))

Проверка: Проверьте строку с несколькими пробелами подряд

Задача 17. Частота слов

Условие: Для списка слов посчитайте, сколько раз встречается каждое слово

Подсказка: Словарь удобен, потому что слово становится ключом

Решение:

words = ["cat", "dog", "cat", "bird", "dog", "cat"]
counts = {}

for word in words:
    counts[word] = counts.get(word, 0) + 1

print(counts)

Проверка: Для cat должно получиться 3

Задача 18. Функция скидки

Условие: Напишите функцию, которая принимает цену и процент скидки, возвращает новую цену

Подсказка: Функция должна возвращать результат через return, а не только печатать

Решение:

def apply_discount(price, percent):
    discount = price * percent / 100
    return price - discount

print(apply_discount(1000, 15))

Проверка: Для 1000 и 15 результат должен быть 850

Задача 19. Мини-калькулятор

Условие: Сделайте простую функцию для операций +, -, *, /

Подсказка: Для деления проверьте ноль во втором числе

Решение:

def calculate(a, b, operation):
    if operation == "+":
        return a + b
    if operation == "-":
        return a - b
    if operation == "*":
        return a * b
    if operation == "/":
        if b == 0:
            return "На ноль делить нельзя"
        return a / b
    return "Неизвестная операция"

print(calculate(10, 2, "/"))

Проверка: Проверьте все операции и деление на ноль

Задача 20. Проверка пароля

Условие: Проверьте пароль: минимум 8 символов, есть хотя бы одна цифра

Подсказка: any помогает проверить условие хотя бы для одного символа

Решение:

password = input("Пароль: ")
has_digit = any(char.isdigit() for char in password)

if len(password) >= 8 and has_digit:
    print("Пароль подходит")
else:
    print("Пароль слишком простой")

Проверка: Проверьте password, python123 и 12345678

По этой теме полезно отдельно посмотреть Составьте еженедельное расписание занятий, чтобы расширить контекст и сравнить подходы

По этой теме полезно отдельно посмотреть Аннотации типов для декораторов в Python, чтобы расширить контекст и сравнить подходы

Как проверять свои решения

Для каждой задачи сделайте минимум три запуска: обычный пример, крайний пример и пример с неожиданными данными. Для чисел это может быть ноль или отрицательное значение, для строк — пустая строка, для списков — пустой список или повторяющиеся элементы

Если код работает, объясните его словами. Скажите, какие данные приходят на вход, что хранится в переменных, где меняется результат и почему программа останавливается

Частые ошибки новичков

  • читать решение, но не запускать его руками
  • менять сразу несколько строк и не понимать, какая из них сломала код
  • называть переменные одной буквой там, где можно написать понятное имя
  • забывать проверять пустые строки, пустые списки и ноль
  • путать вывод через print и возврат результата через return
  • оставлять код рабочим только для одного заранее выбранного примера
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные

Настройки cookie

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x