Python

Задачи для практики на Python

Практика по Python полезна, когда задачи не сводятся к одному примеру из урока, а заставляют выбрать подходящий инструмент

В этой подборке есть условия, циклы, списки, строки, словари и функции. Задачи можно решать по порядку или брать те, где чувствуется пробел

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

Материал подходит для повторения базовых тем перед следующими уроками или первым мини-проектом

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

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

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

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

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

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

Решение:

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

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

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

Задача 2. Сумма чисел от 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

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

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

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

Решение:

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

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

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

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

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

Решение:

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

for number in numbers:
    total += number

print(total)

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

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

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

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

Решение:

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

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

print(positive)

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

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

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

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

Решение:

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

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

print(counts)

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

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

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

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

Решение:

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

print(apply_discount(1000, 15))

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

Задача 8. Очистить имя

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

Подсказка: strip и capitalize можно соединить в одном выражении

Решение:

def clean_name(name):
    return name.strip().capitalize()

print(clean_name("  anna "))

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

Задача 9. Подсчет частоты букв

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

Подсказка: Словарь подходит для подсчета

Решение:

def count_letters(word):
    counts = {}
    for char in word:
        counts[char] = counts.get(char, 0) + 1
    return counts

print(count_letters("banana"))

Проверка: Для banana буква a должна встретиться 3 раза

Задача 10. Мини-отчет по числам

Условие: Функция возвращает словарь с количеством, суммой и средним

Подсказка: Если список пустой, среднее должно быть 0

Решение:

def numbers_report(numbers):
    total = sum(numbers)
    count = len(numbers)
    average = total / count if count else 0
    return {"count": count, "total": total, "average": average}

print(numbers_report([10, 20, 30]))

Проверка: Проверьте пустой список

Задача 11. Удалить дубликаты с сохранением порядка

Условие: Соберите список уникальных значений в исходном порядке

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

Решение:

numbers = [1, 2, 1, 3, 2, 4]
unique = []

for number in numbers:
    if number not in unique:
        unique.append(number)

print(unique)

Проверка: Результат должен быть [1, 2, 3, 4]

Задача 12. Разделить числа на две группы

Условие: Разложите числа на четные и нечетные списки

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

Решение:

numbers = [1, 2, 3, 4, 5, 6]
even = []
odd = []

for number in numbers:
    if number % 2 == 0:
        even.append(number)
    else:
        odd.append(number)

print(even)
print(odd)

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

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

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

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

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

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

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

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

Дополнительные задачи

Задача 13. Группировка чисел по четности

Условие: Разложите числа на два списка: четные и нечетные

numbers = [1, 2, 3, 4, 5, 6]
even = []
odd = []

for number in numbers:
    if number % 2 == 0:
        even.append(number)
    else:
        odd.append(number)

print(even)
print(odd)

Проверка: Добавьте ноль и отрицательные числа

Задача 14. Подсчет расширений файлов

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

files = ["index.html", "style.css", "app.js", "main.py", "test.py"]
extensions = {}

for filename in files:
    ext = filename.split(".")[-1]
    extensions[ext] = extensions.get(ext, 0) + 1

print(extensions)

Проверка: Добавьте файл без точки и обработайте этот случай отдельно

Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные

Настройки cookie

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