Маленькие задания по программированию

Easy: легкие задачи по программированию

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

В таблице ниже представлен список задач, которые являются типовыми задачами в программировании. Список задач со временем будет пополняться все новыми и новыми задачами. Как и раньше, в таблице есть столбец — «Статус», если в статусе стоит зеленая галочка, значит на нашем сайте есть уже решение к данной задаче. Вы можете попытаться написать программу, не подглядывая в исходный код, который выложен на нашем сайте. Возможно ваше решение задачи будет изящнее, и в качестве примера альтернативного решения, по вашему согласию, мы опубликуем это решение на сайте.

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

Читайте также:  Каноническое представление задачи линейного программирования
Задача Автор решения Статус
1 Алгебраическая сумма admin
2 Алгебраическая сумма 1^k + 2^k + 3^k + . + N^k admin
3 Большая и меньшая цифры числа Гарбуз Виталий
4 Брошенное тело под углом Afro
5 Возведение числа в степень Platin
6 Выбор дня недели оператором switch NaikoN
7 Вычислить длину вектора с координатами x, y, z Afro
8 Вычислить значения функции, не используя pow admin
9 Вычислить сумму квадратов тех чисел, модуль которых превышает значение 2.5 admin
10 Значение выражения (1-tg x)^(ctg x)+ cos(x-y) admin
11 Конгруэнтный метод формирования псевдослучайных чисел admin
12 Номер четверти плоскости с координатами Gavay08
13 Одинаковые цифры введенного числа Гарбуз Виталий
14 Определить количество новых строк в тексте admin
15 Определить, пройдет ли кирпич в отверстие admin
16 Печать ромба символами ASCII Naikon
17 Поиск k-й цифры в строке admin
18 Преобразование десятичного числа в шестнадцатеричное admin
19 Программа палиндром в С++ Gavay08
20 Программа табулирования функции котангенса admin
21 Программа-тест, оператор switch admin
22 След матрицы admin
23 Среднее арифметическое admin
24 Сумма 1/sin(1) + 1/(sin(1) + sin(2)) + . + 1/(sin(1)+sin(2)+. +sin(n)) admin
25 Сумма чисел нацело делящихся на 5 admin
26 Таблица квадратов чисел на С++ Гарбуз Виталий
27 Таблица умножения введенного числа Гарбуз Виталий
28 Точки пересечений линий Евгений Привалов
29 Целое число admin
30 Циклический ввод цифр admin
31 Циклическое вычисление суммы чисел Евгений привалов
32 Шесть равнобедренных треугольников NaikoN

Новое

© 2023 CppStudio — Программирование для начинающих на С++

Источник

Задачи по Python для начинающих от Tproger и GeekBrains

Обложка: Задачи по Python для начинающих от Tproger и GeekBrains

Вместе с факультетом Python-разработки GeekUniversity собрали для вас несколько простых задач по Python для обучения и тренировки. Их можно решать в любом порядке.

Читайте также:  Простейшие программы для программирования

Обратите внимание, что у любой задачи по программированию может быть несколько способов решения. Чтобы посмотреть добавленный нами вариант решения, кликните по соответствующей кнопке. Все приведённые варианты написаны на Python 3.

Задача 1

Есть список a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] .

Выведите все элементы, которые меньше 5 .

Самый простой вариант, который первым приходит на ум — использовать цикл for :

Также можно воспользоваться функцией filter , которая фильтрует элементы согласно заданному условию:

print(list(filter(lambda elem: elem < 5, a)))

И, вероятно, наиболее предпочтительный вариант решения этой задачи — списковое включение:

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 = list(filter(lambda elem: elem in b, a))

result = [elem for elem in a if elem in b]

А можно привести оба списка к множествам и найти их пересечение:

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

Источник

10 легких задач по Python и SQL, которые оказались сложными :/

Сейчас IT - очень востребованная сфера: спрос на специалистов огромный, в индустрию ежедневно «входят» новые джуны. А это значит, что и конкуренция за место под солнцем среди начинающих программистов/аналитиков накаливается с каждым днем.

Что же делать в такой ситуации? Правильно - использовать любую возможность, чтобы немного подкачаться. Так как информации масса и в голове возникает мешанина, хороший способ - порешать несложные задачки и поразбирать вопросы. Это удобно - пока едешь в метро, можно решить пару-тройку задачек и немного привести в порядок свои знания.

Мы уже больше года выкладываем в своих соцсетях (ВКонтакте, Телеграм, Инстаграм) задачи разной сложности по программированию и смежным темам: Python, SQL, Data Science, Git, аналитике и другим темам. Для этого у нас даже есть специальная рубрика - GROK IT. Узнать ее можно по нашей фирменной утке 🙂

Так вот, за все это время мы неоднократно сталкивались с такими мыслями, когда планировали очередную задачу: «Ну нет, это слишком легко, люди от нас просто отпишутся за такие плевые задачи». Однако, все оказалось иначе.

Мы собрали для Вас 10 интересных мини-задачек по Python и SQL, которые кажутся очень простыми, но подавляющее большинство опрошенных дали неправильные ответы. Вот такая вот статистика ¯\_(ツ)_/¯

Пару слов о нас 🙂 Мы команда IT Resume и мы пилим крутую платформу для подготовки к техническим собеседованиям и развитию своих навыков. Скоро будет первый релиз, так что ждем вас в гости 😉

А пока подписывайтесь на наши соцсети, туда мы постим интересный и полезный контент по программированию, Data Science и аналитике.

На любой вкус: ВКонтакте - Телеграм - Инстаграм

Итак, давайте наконец перейдем к задачам. Погнали 🙂

Задача 1. Метод extend в Python

Формулировка:

# Дан список l. Что выведет код? l = [1, 2, 3] l.extend('abc') print(l)

Варианты ответов:

[1, 2, 3, 'abc'] [1, 2, 3] Error [1, 2, 3, 'a', 'b', 'c']

Правильных голосов: 36%, неправильных - 64%.

Мы были очень удивлены - казалось бы, extend - стандартный списковый метод в Python. Ан нет - у подавляющего большинства он вызвал затруднение.

Подробный разбор задачи здесь.

Кстати, еще больше задач мы публикуем в наших закрытых чатах ВКонтакте и Телеграме. Будем рады видеть вас там и решать задачки вместе! 🙂

Задача 2. Кортеж с одним элементом

Формулировка:

# Что выведет код? for i in (3): print(i)

Варианты ответов:

Правильных голосов: 33%, неправильных - 67%.

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

Подробный разбор задачи здесь.

Задача 3. Фигурные скобки в f-строках

Формулировка:

# Что выведет код? print(f'Curly brackets: <>')

Варианты ответов:

Curly brackets: <> Curly brackets: Ошибку Ни один из вариантов

Правильных ответов - 22%, неправильных - 78%.

Здесь мы тоже думали, честно говоря, что ответ прям очевиден: f-строки это же ведь совсем базовый Python. Но мы снова были не правы.

Подробный разбор задачи здесь.

Задача 4. DELETE + CTE в SQL

Формулировка:

-- Дана таблица Demo. -- Как изменится таблица после выполнения запроса в PostgreSQL? WITH temp_tab AS ( DELETE FROM Demo ) INSERT INTO Demo SELECT * FROM temp_tab 

Варианты ответов:

Никак, т.к. INSERT вставит удаленные строки Никак, т.к. запрос не выполнится Станет пустой, т.к. DELETE ничего не возвращает и вставлять нечего Никак, т.е. INSERT нельзя использовать с CTE

Правильных ответов: 28%, неправильных - 72%.

В отличие от предыдущих задач, тут мы предполагали, что людей ожидает некая засада 🙂 Все-таки не все знают про CTE, RETURNING и так далее. Собственно, так и получилось. Но зато многие теперь познакомились с новой конструкцией SQL.

Никак, т.к. запрос не выполнится.

Подробный разбор задачи здесь.

Кстати, вот здесь мы подробно объясняем, как и зачем использовать Common Table Expressions. В том числе и про DELETE.

Задача 5. Хитрый оператор AND в Python

Формулировка:

# Что выведет код? print(50 and 100)

Варианты ответов:

50 100 50 100 Ни один из этих вариантов

Правильных ответов - 13%, неправильных - 87%.

Статистика говорит сама за себя. Это тот случай, когда вдруг забываешь, в какой руке держать вилку. Вроде все очевидно - 2 числа и оператор AND. А что получится в итоге - не понимаешь. И никто почти не понимает.

Подробный разбор задачи здесь.

Задача 6. Shrug face и escape-последовательности в Python

Формулировка:

Варианты ответов:

'¯\\_(ツ)_//¯' '¯\_(ツ)_//¯' '¯\\_(ツ)_/¯' Ничего из перечисленного

Правильных ответов - 28%, неправильных - 72%.

Конечно, эту задачку мы разместили смеха ради, потому что все любят каомодзи 🙂 Но на самом деле такая ситуация встретилась у нас при разработке платформы - мы хотели передавать shrug face в качестве строки и наткнулись на интересные эффекты экранирования. Так что вполне себе бизнесовая задачка!

Подробный разбор задачи здесь.

Задача 7. Удаление таблицы SQL

Формулировка:

Какой запрос отработает без ошибок в PostgreSQL?

Варианты ответов:

DELETE * FROM Demo; DELETE FROM Demo; TRUNCATE TABLE Demo; TRUNCATE * FROM Demo;

Правильных ответов - 28%, неправильных - 72%.

Это еще один вопрос из серии «Какой рукой я держу вилку?». Из-за того, что некоторые операции делаешь на автомате, не зацикливаешься - а как же правильно, и такие задачи могут ввести в ступор. Да и чего уж там - многие в целом не знают, как удалять таблицу и в чем разница между DELETE и TRUNCATE.

DELETE FROM Demo. Неочевидно, но проверьте 🙂

Подробный разбор задачи здесь.

Задача 8. Добавление элементов в set

Формулировка:

# Что выведет код? set1 = set2 = set1.add(4) print(set2)

Варианты ответов:

Правильных ответов: 16%, неправильных - 84%.

Стандартные методы списков, множеств, словарей и т.д. в Python устроены, пожалуй, не до конца очевидно. В том плане, что какие-то методы возвращают значения, какие-то не возвращают ничего. Каждый раз в этом путаешься и метод add - яркий пример.

Подробный разбор задачи здесь.

Задача 9. Комбинирование условий сравнения в Python

Формулировка:

# Что выведет код? print(11 > 0 is True)

Варианты ответов:

Правильных ответов - 10%, неправильных - 90%.

Ну это задача совсем неочевидная. Python хоть и проповедует прозрачность, но эта конструкция прям совсем не прозрачная, как нам кажется (:

Подробный разбор задачи здесь.

Задача 10. Импорт библиотек по PEP8

Формулировка:

# Сколько правил PEP8 нарушено при таком импорте библиотек? import face_recognition import sys, os import mymodule # пользовательский скрипт from subprocess import Popen, PIPE

Варианты ответов:

Правильных ответов - 25%, неправильных - 75%.

Одно дело писать код, а другое - писать код правильно. И делают это далеко не все, хотя по факту это очень важно: через год читать грязный код просто невозможно - порой проще его просто переписать. PEP8 в Python, пожалуй, базовое руководство по этому поводу. Но оказывается, почти никто его не знает 🙂

Подробный разбор задачи здесь.

К слову, по этому поводу мы весной делали целый Style Guide кода на Python - очень рекомендуем посмотреть 🙂

Почти эпилог

Согласитесь, все эти 10 задачек кажутся очень легкими на первый взгляд. Но когда начинаешь разбираться чуть глубже, понимаешь, что зачастую твои знания не так уж и крепки 🙂 Даже матерый профи может оплошать на некоторых заданиях - не потому что с ним что-то не так, а потому что некоторые вещи настолько уже доведены до автоматизма, что даже не зацикливаешься на мелочах.

Кстати, в чатах ВКонтакте и Телеграме мы стараемся подробно отвечать на все решения, которые вы присылаете, так что с радостью ждем вас! 🙂 И впереди у нас еще много задачек по программированию, Data Science и аналитике.

Эпилог

А в качестве заключения, вот вам еще одна задачка по Python. Посмотрим, сможете ли Вы ее решить 😉

Формулировка:

Дан Pandas-датафрейм df, заполненный числами: +----------+----------+----------+ | col1 | col2 | col3 | +----------+----------+----------+

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

Присылайте свои решения в чаты - там и узнаете правильный ответ! Будем ждать 😉

P.S. Если для кого-то эти задачки показались слишком легкими или «нежизненными», то мы на это и не претендуем 🙂 Наши задачки помогают людям немного прокачивать свое знание тонкостей языка в игровой форме и обращать внимание на мелочи, которые в повседневной суровой жизни выпадают из виду. Выкатывать целые комбайны в продакшен мы не учим, но le bon Dieu est dans le détail, как говорится 😉

Источник

Оцените статью