Подпишитесь на интересующие вас теги, чтобы следить за новыми постами и быть в курсе событий.
Задачи по Python для начинающих от Tproger и GeekBrains
Для обучения программированию на питоне нужны тренировки. Совместно с GeekBrains собрали для вас несколько простых задач на Python 3 c решениями.
1014227
Вместе с факультетом Python-разработки GeekUniversity собрали для вас несколько простых задач по Python для обучения и тренировки. Их можно решать в любом порядке.
Обратите внимание, что у любой задачи по программированию может быть несколько способов решения. Чтобы посмотреть добавленный нами вариант решения, кликните по соответствующей кнопке. Все приведённые варианты написаны на Python 3.
Задача 1
Есть список a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
.
Выведите все элементы, которые меньше 5
.
Вариант решения
Самый простой вариант, который первым приходит на ум — использовать цикл for
:
Также можно воспользоваться функцией filter
, которая фильтрует элементы согласно заданному условию:
И, вероятно, наиболее предпочтительный вариант решения этой задачи — списковое включение:
print([elem for elem in a if elem < 5])
Задача 2
Даны списки:
a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
;
b = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
.
Нужно вернуть список, который состоит из элементов, общих для этих двух списков.
Вариант решения
Можем воспользоваться функцией filter
:
Или списковым включением:
result = [elem for elem in a if elem in b]
А можно привести оба списка к множествам и найти их пересечение:
result = list(set(a) & set(b))
Однако в таком случае каждый элемент встретится в результирующем списке лишь один раз, т.к. множество поддерживает уникальность входящих в него элементов. Первые два решения (с фильтрацией) оставят все дубли на своих местах.
Задача 3
Отсортируйте словарь по значению в порядке возрастания и убывания.
Вариант решения
Импортируем нужный модуль и объявляем словарь:
Сортируем в порядке возрастания:
И в порядке убывания:
Задача 4
Напишите программу для слияния нескольких словарей в один.
Вариант решения
Допустим, вот наши словари:
Объединить их можно вот так:
А можно с помощью «звёздочного» синтаксиса:
result = {**dict_a, **dict_b, **dict_c}
О звёздочном синтаксисе можно прочитать в нашей статье.
Задача 5
Найдите три ключа с самыми высокими значениями в словаре my_dict = {'a':500, 'b':5874, 'c': 560,'d':400, 'e':5874, 'f': 20}
.
Вариант решения
Можно воспользоваться функцией sorted
:
Аналогичный результат можно получить с помощью функции nlargest
из модуля heapq
:
Читайте также: Всё о сортировке на Python
Задача 6
Напишите код, который переводит целое число в строку, при том что его можно применить в любой системе счисления.
Вариант решения
Второй аргумент функции int
отвечает за указание основания системы счисления:
print(int('ABC', 16))
Задача 7
Нужно вывести первые n строк треугольника Паскаля. В этом треугольнике на вершине и по бокам стоят единицы, а каждое число внутри равно сумме двух расположенных над ним чисел.
Вариант решения
Задача 8
Напишите проверку на то, является ли строка палиндромом. Палиндром — это слово или фраза, которые одинаково читаются слева направо и справа налево.
Вариант решения
Тут всё просто, достаточно сравнить строку с её обратной версией, для чего можно использовать встроенную функцию reversed:
Того же эффекта можно добиться с помощью срезов:
Задача 9
Сделайте так, чтобы число секунд отображалось в виде дни:часы:минуты:секунды
.
Вариант решения
Задача 10
Вы принимаете от пользователя последовательность чисел, разделённых запятой. Составьте список и кортеж с этими числами.
Вариант решения
Задача 11
Выведите первый и последний элемент списка.
Вариант решения
Задача 12
Напишите программу, которая принимает имя файла и выводит его расширение. Если расширение у файла определить невозможно, выбросите исключение.
Вариант решения
Задача 13
При заданном целом числе n посчитайте n + nn + nnn.
Вариант решения
Задача 14
Напишите программу, которая выводит чётные числа из заданного списка и останавливается, если встречает число 237.
Вариант решения
Задача 15
Напишите программу, которая принимает два списка и выводит все элементы первого, которых нет во втором.
Вариант решения
Задача 16
Выведите список файлов в указанной директории.
Вариант решения
Задача 17
Сложите цифры целого числа.
Вариант решения
Задача 18
Посчитайте, сколько раз символ встречается в строке.
Вариант решения
Задача 19
Поменяйте значения переменных местами.
Вариант решения
Можно написать монструозную конструкцию в стиле языка C:
Но в Python есть более удобный способ для решения этой задачи:
Задача 20
С помощью анонимной функции извлеките из списка числа, делимые на 15.
Вариант решения
Задача 21
Нужно проверить, все ли числа в последовательности уникальны.
Вариант решения
Задача 22
Напишите программу, которая принимает текст и выводит два слова: наиболее часто встречающееся и самое длинное.
Вариант решения
На данный момент этот блок не поддерживается, но мы не забыли о нём!Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
1014227
Что думаете?
165 комментариев
Сначала интересные
чувствую себя тупым...

oostarkker, как же я тебя понимаю
oostarkker, как же я вас понимаю
oostarkker, ля, легко же
ещё 2 комментария

Расписал решение задачи №2, длинное, но очень простое и универсальное. Списки могут быть абсолютно любыми, их можно поменять местами и т.д.
Совет: не пытайтесь сразу пользоваться готовыми функциями пайтона, они могут сыграть с вами злую шутку, когда будете придумывать какой-либо алгоритм для очередной задачки.
a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
b = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
c = []
for i in range(len(a)):
for j in range(len(b)):
if a[i] == b[j] and a[i] not in c:
c += [a[i]]
else:
continue
for i in range(len(b)):
for j in range(len(a)):
if b[i] == a[j] and b[i] not in c:
c += [b[i]]
else:
continue
c.sort()
print(c)

Nikita Bolshakov,
a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
питон изобретен, что бы упрощать, а не усложнять)):
b = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
print([i for i in a if i in b])
Dariy Maryanichenko, a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
b = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
same_numbers = []
for number in set(a):
if number in set(b):
same_numbers.append(number)
print(same_numbers)

Dariy Maryanichenko, Решение неправильное. Он выводит 1 дважды, хотя в b только одна единица)
ещё 4 комментария

a = {1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89}
b = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}
c = a & b
print(c)
легкий способ решить 2 задачу
Показать все комментарии