Python: уроки, справочник и задачи

Задачи на Python для начинающих с подсказками и решениями

Раздел: Задачи на Python с решениями · Обновлено 31.10.2026

Python задачи для начинающих в этой подборке закрывают первые темы курса: ввод и вывод, условия, циклы for и while, срезы строк, списки и простые функции. К каждому упражнению есть условие, ссылки на теорию, подсказка и рабочее решение на Python 3. Сначала попробуйте написать код сами, а готовый вариант откройте для сверки.

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

Задачи на Python для начинающих с подсказками и решениями
Фото: D00264450 / CC BY-SA 4.0, Wikimedia Commons
Содержание статьи
  1. Задача Python #1. Вычислите умножение и сумму двух чисел
  2. Задача Python #2. Сумма текущего и предыдущего числа
  3. Задача Python #3. Четные символы строки
  4. Задача #4. Удалить первые символы строки python
  5. Задача #5. Совпадает ли первый и последний номер в списке?
  6. Задача #6. Вывести из списка числа, кратные 5
  7. Задача #7. Python вхождение подстроки в строку
  8. Задача #8. Распечатайте цифры
  9. Задача # 9. Является ли число палиндромом?
  10. Задача # 10. Новый список из двух списков
  11. Задача #11. Извлечь каждую цифру из целого числа
  12. Задача #12. Таблица умножения
  13. Заключение
  14. Дополнительные задачи для тренировки
  15. Типичные ошибки новичков в этих задачах
  16. Частые вопросы

Список задач:

  1. Вычислите умножение и сумму двух чисел
  2. Сумма текущего и предыдущего числа
  3. Четные символы строки
  4. Удалить первые символы строки python
  5. Совпадает ли первый и последний номер в списке?
  6. Вывести из списка числа, кратные 5
  7. Python вхождение подстроки в строку
  8. Распечатайте цифры
  9. Является ли число палиндромом?
  10. Новый список из двух списков
  11. Извлечь каждую цифру из целого числа
  12. Таблица умножения
  13. Заключение

Приведенные ниже задачи python для начинающих, содержат 12 программ. Подсказка и решение приведены для каждой задачи. Вы можете сразу посмотреть решение задачи, но для вас будет намного эффективнее, если вы сами попробуете решить поставленную задачу.

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

Задача Python #1. Вычислите умножение и сумму двух чисел

Условия задачи. Верните результат умножения если, сумма умножения равна или больше 1000, в противном случае верните значение суммы двух чисел. Для решения данной задачи, можно ознакомиться:

Показать подсказку
  1. Создайте функцию, которая в качестве аргумента принимает два числа
  2. Внутри функции, умножаем наши числа, и сохраняем в переменной resultum
  3. Затем применяем конструкцию if...else, для того что бы проверить, является ли число хранящееся в resultum больше, либо равной 1000?
  4. В противном случае, в блок else, выводим сумму двух чисел.
Показать решение
a = int(input())
b = int(input())
def product(num1,num2):
    resultum = num1 * num2
    if resultum >= 1000:
        print(resultum)
    else:
        print(num1+num2)

product(a,b)

Задача Python #2. Сумма текущего и предыдущего числа

Напишите программу, которая использует цикл, для первых 10 чисел. В каждом цикле, ваша задача заключается в том, что бы вывести сумму, предыдущего и текущего числа.

Ожидаемый результат следующий:

Текущее Число 0 Предыдущее Число 0 Сумма: 0
Текущее число 1 Предыдущее Число 0 Сумма: 1
Текущее Число 2 Предыдущее Число 1 Сумма: 3
Текущее число 3 Предыдущее Число 2 Сумма: 5
Текущее Число 4 Предыдущее Число 3 Сумма: 7
Текущее Число 5 Предыдущее Число 4 Сумма: 9
Текущее Число 6 Предыдущее Число 5 Сумма: 11
Текущее число 7 Предыдущее Число 6 Сумма: 13
Текущее Число 8 Предыдущее Число 7 Сумма: 15
Текущее число 9 Предыдущее Число 8 Сумма: 17

Для решения данной задачи, вам необходимо хорошо ознакомиться со следующими темами:

Показать подсказку
  1. Создаем переменнуюnum_prev и даём значение 0
  2. Запускаем цикл for, и используем функцию range()
  3. Создаем переменную x_sum, и передаем туда сумму значении i - (текущее число в итерации) - переменной num_prev
  4. Переменной num_prev присваиваем значение i
  5. Печатаем результат
Показать решение
print('Печать текущей и предыдущей суммы чисел в диапазоне (10)')
num_prev = 0

for i in range(10):
    x_sum = num_prev + i
    print(f'Текущее число {i}, предыдущее число {num_prev}, сумма: {x_sum}')
    num_prev = i

Задача Python #3. Четные символы строки

Напишите программу, в которой пользователь вводит строку, а на выходе получаем четные символы из введенной строки. К примеру на входе мы получаем строку pydocs, на выходе p,d,c (0,2,4 - индексы).

Для решения этой задачи, вам необходимо хорошо ознакомиться со следующими темами:

Показать подсказку
  1. Используем функцию ввода пользователя
  2. Вычисляем длину строки с помощью функции len()
  3. Запускаем цикл for и функцию range()
  4. В функции range() используем 0, len(s), 2. Шаг 2 - потому как, нам необходимы только четные номера индексов.
Показать решение
s = input('Введите строку: ')

for i in range(0, len(s), 2):
    print(s[i])

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

Задача #4. Удалить первые символы строки python

Напишите программу, которая удаляет первые n символов из строки, и верните новую строку.

Например:

Показать подсказку

Для решения этой задачи, можно воспользоваться нарезкой строк. К примеру, для удаления первых двух символов s[2:].

Показать решение
str = input('Введите строку')
strremove = int(input('Введите количество символов для удаления'))
def wordstr(str,n):
    x = str[n:]
    print(x)
wordstr(str,strremove)

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

Задача #5. Совпадает ли первый и последний номер в списке?

Напишите функцию, которая возвращает True, если первый и последний номер в списке совпадает. В случае, если не совпадает, верните значение False. К примеру:

list1 = [10,20,30,40,50,10]
list2 = [10,20,30,40,50,60]
#Ожидаемый результат
List1 - True
List2 - False
Показать решение
list = [10,20,30,40,50,30]
print(list[0],'Значение первого индекса')
print(list[-1],'Значение последнего индекса')
def listsearch(list):
    if list[0] == list[-1]:
        print(True)
    else:
        print(False)

listsearch(list)

Задача #6. Вывести из списка числа, кратные 5

Напиши функцию, которая выводит из списка только те числа, которые являются кратными 5. В целом данная задача не является сложной, если возникнут сложности, ознакомьтесь со следующими темами:

Для задачи, так же не будет подсказок. Вы сможете решить её и без этого.

Показать решение
list = [10,20,16,40,21,30]
def listx(list):
    for i in list:
        if i % 5 == 0:
            print(i)

listx(list)

Задача #7. Python вхождение подстроки в строку

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

str = "Вася хороший программист. Будь как Вася"

Наша задача, написать программу, которая посчитает, сколько раз в этой строке встречается подстрока "Вася". После того, как вы посчитаете, напечатайте сообщение о том, сколько раз появляется наша подстрока, в строке.

Показать решение
str_x = "Вася хороший программист. Будь как Вася"
count = 0
xstr = str_x.split()
for i in xstr:
    if i == 'Вася':
        count = count + 1
print(f'Вася появился в строке {count} раз')

Задача #8. Распечатайте цифры

Напишите программу, которая распечатает следующий вариант.

1 
2 2 
3 3 3 
4 4 4 4 
5 5 5 5 5

Для решения этой задачи, вам пригодятся знания, по циклам, и вложенным циклам.

Показать решение
for i in range(1, 6):
    for j in range(i):
        print(i, end=' ')
    print()

Задача # 9. Является ли число палиндромом?

Напиши программу, которая проверяет, является ли число палиндромом? К примеру, пользователь вводит число 121, при чтении с обоих сторон цифра остается неизменной, значит это число палиндром. В противном случае, если при обратном чтении, число не является палиндромом, выведите сообщение, о том, что данное число, не является палиндромом.

Для решения данной задачи:

Показать решение
n1 = int(input("Введите целое число: "))
n2 = 0
n3 = n1
while n1 > 0:
    # находим остаток - последнюю цифру
    digit = n1 % 10
    # делим нацело - удаляем последнюю цифру
    n1 = n1 // 10
    # увеличиваем разрядность второго числа
    n2 = n2 * 10
    # добавляем очередную цифру
    n2 = n2 + digit
if n2 == n3:
    print(f'Число {n3}, является палиндромом')
else:
    print(f'Число {n3}, не является палиндромом')

Задача # 10. Новый список из двух списков

Напишите программу, которая на вход получает два списка. Из первого списка, извлекаются нечетные числа, из второго четные. Новые элементы добавляем в новый список, и выводим результат.

list1=[10,20,30,45,75]
list2=[35,65,40,50,60]

Для решения данной задачи:

Показать подсказку
  • Создаем пустой список
  • Перебираем оба списка по заданным условиям
  • Добавляем результат в новый список
Показать решение
list1=[10,20,30,45,75]
list2=[35,65,40,50,60]
list3 = []

for i in list1:
    if i % 2 != 0:
        list3.append(i)
for j in list2:
    if j % 2 == 0:
        list3.append(j)
print(list3)

Задача #11. Извлечь каждую цифру из целого числа

Напишите программу, которая извлекает каждую цифру, из целого числа. К примеру, на входе программа получает число 123, а на выходе 1 2 3, каждое число по отдельности. Похожую задачу вы уже решили, попробуйте немного изменить код, и решить данную задачу. Для решения этой задачи, используйте цикл while.

Показать решение
number = int(input('Введите число: '))
digits = []
while number > 0:
    digits.append(number % 10)  # последняя цифра
    number = number // 10       # отбрасываем ее
print(*reversed(digits))

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

Напишите программу, которая выводит таблицу умножения. Ниже представлена ожидаемые выходные данные.

1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
6 12 18 24 30 36 42 48 54 60
7 14 21 28 35 42 49 56 63 70
8 16 24 32 40 48 56 64 72 80
9 18 27 36 45 54 63 72 81 90
10 20 30 40 50 60 70 80 90 100
Показать подсказку
  1. Запускаем цикл for
  2. Используем функцию range() в диапазоне от 1 до 11
  3. Внутри первого цикла, запускаем второй цикл с тем же диапазоном
  4. Умножаем между собой множители из первого цикла(первый множитель) и второго внутреннего цикла(второй множитель)
Показать решение
for i in range(1, 11):
    for j in range(1, 11):
        print(i * j, end=" ")
    print()

Заключение

Если вы сумели решить все приведенные задачи из этого блока, вы на верном пути, и совсем скоро вы станете мастером джедаем python. Если у вас не получилось решить задачи без подсказок, не переживайте, это нормально. В этом блоке задач, было 12 упражнений, но это конечно еще не все, практически по каждому блоку далее предусмотрены еще и другие тематические упражнения, охватывающие практически всю основу Python. Поэтому, если Python вас заинтересовал, то продолжайте решать задачи далее, по порядку.

Дополнительные задачи для тренировки

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

Задача #13. FizzBuzz

Выведите числа от 1 до 30. Вместо чисел, кратных 3, печатайте Fizz, вместо кратных 5 печатайте Buzz, а вместо кратных и 3, и 5 печатайте FizzBuzz. Порядок проверок здесь важен: сначала проверяется делимость на 15.

Решение:

for n in range(1, 31):
    if n % 15 == 0:
        print('FizzBuzz')
    elif n % 3 == 0:
        print('Fizz')
    elif n % 5 == 0:
        print('Buzz')
    else:
        print(n)

Задача #14. Количество гласных в строке

Пользователь вводит строку на русском языке. Посчитайте, сколько в ней гласных букв, без учета регистра. Пример: для строки "Привет, Мир" ответ 3.

Решение:

vowels = 'аеёиоуыэюя'
text = input('Введите строку: ').lower()
count = 0
for ch in text:
    if ch in vowels:
        count += 1
print('Гласных:', count)

Задача #15. Максимум без функции max()

Найдите наибольший элемент списка, не вызывая встроенную функцию max(). Начальным значением удобно взять первый элемент, а не ноль: иначе код ошибется на списке из отрицательных чисел.

Решение:

numbers = [-7, -3, -12, -5]
biggest = numbers[0]
for x in numbers[1:]:
    if x > biggest:
        biggest = x
print(biggest)  # -3

Больше упражнений на эти темы собрано в разделах задачи по циклам и задачи на строки.

Типичные ошибки новичков в этих задачах

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

Частые вопросы

Ответы на вопросы, которые чаще всего возникают при решении первых задач.

С каких задач начинать изучение Python?

С задач на ввод, вывод и арифметику, затем условия, циклы, строки и списки. Функции и словари лучше брать после того, как уверенно получается написать цикл с условием внутри.

Что делать, если задача не решается?

Разбейте условие на шаги и проверяйте каждый шаг отдельным print(). Если через 20-30 минут нет идей, откройте подсказку, а не решение, и попробуйте еще раз.

Мое решение отличается от приведенного, это ошибка?

Нет. Если программа выдает правильный результат на разных входных данных, включая крайние случаи (пустая строка, ноль, отрицательное число), решение верное. Сравните его с готовым кодом: возможно, один из вариантов короче или понятнее.

Где решать задачи, если Python не установлен?

Подойдет любой онлайн-интерпретатор или интерактивный режим IDLE. Для домашней практики удобнее установить Python 3.12 или новее и редактор с подсветкой кода, например VS Code или PyCharm.