Примеры решения задач на питоне

Каждому изучающему Python нужно писать код для закрепления. Вашему вниманию предлагаются несколько задач для реализации (не слишком простых (кроме первой) и не слишком сложных).

Для выполнения заданий крайне рекомендуется пройти самоучитель.

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

Для запуска тестов для вашей функции проще всего будет добавить код из папки с тестами в конец файла с функцией.

А теперь, собственно, задачи:

Простейшие арифметические операции (1)

Написать функцию arithmetic, принимающую 3 аргумента: первые 2 — числа, третий — операция, которая должна быть произведена над ними. Если третий аргумент +, сложить их; если , то вычесть; * — умножить; / — разделить (первое на второе). В остальных случаях вернуть строку "Неизвестная операция".

Високосный год (2)

Написать функцию is_year_leap, принимающую 1 аргумент — год, и возвращающую True, если год високосный, и False иначе.

Квадрат (3)

Написать функцию square, принимающую 1 аргумент — сторону квадрата, и возвращающую 3 значения (с помощью кортежа): периметр квадрата, площадь квадрата и диагональ квадрата.

Времена года (4)

Написать функцию season, принимающую 1 аргумент — номер месяца (от 1 до 12), и возвращающую время года, которому этот месяц принадлежит (зима, весна, лето или осень).

Банковский вклад (5)

Пользователь делает вклад в размере a рублей сроком на years лет под 10% годовых (каждый год размер его вклада увеличивается на 10%. Эти деньги прибавляются к сумме вклада, и на них в следующем году тоже будут проценты).

Написать функцию bank, принимающая аргументы a и years, и возвращающую сумму, которая будет на счету пользователя.

Простые числа (6)

Написать функцию is_prime, принимающую 1 аргумент — число от 0 до 1000, и возвращающую True, если оно простое, и False — иначе.

Правильная дата (7)

Написать функцию date, принимающую 3 аргумента — день, месяц и год. Вернуть True, если такая дата есть в нашем календаре, и False иначе.

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

XOR-шифрование (8)

Написать функцию XOR_cipher, принимающая 2 аргумента: строку, которую нужно зашифровать, и ключ шифрования, которая возвращает строку, зашифрованную путем применения функции XOR (^) над символами строки с ключом. Написать также функцию XOR_uncipher, которая по зашифрованной строке и ключу восстанавливает исходную строку.

Вместе с факультетом 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

Задача 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] .

Нужно вернуть список, который состоит из элементов, общих для этих двух списков.

И снова мы можем воспользоваться циклом for :

Или функцией filter :

Или списковым включением:

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

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

result = list(set(a) & set(b))

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

Задача 3

Отсортируйте словарь по значению в порядке возрастания и убывания.

Импортируем нужный модуль и объявляем словарь:

Сортируем в порядке возрастания:

И в порядке убывания:

result = dict ( sorted ( d . items ( ) , key = operator . itemgetter (1 ) , reverse = True ) )

Читайте также:  Как восстановить winsxs в windows 7

Задача 4

Напишите программу для слияния нескольких словарей в один.

Допустим, вот наши словари:

Объединить их можно вот так:

А можно с помощью «звёздочного» синтаксиса:

О звёздочном синтаксисе можно прочитать в нашей статье.

Задача 5

Найдите три ключа с самыми высокими значениями в словаре my_dict = <‘a’:500, ‘b’:5874, ‘c’: 560,’d’:400, ‘e’:5874, ‘f’: 20>.

Можно воспользоваться функцией sorted :

Аналогичный результат можно получить с помощью функции nlargest из модуля heapq :

Задача 6

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

Второй аргумент функции int отвечает за указание основания системы счисления:

Задача 7

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

Задача 8

Напишите проверку на то, является ли строка палиндромом. Палиндром — это слово или фраза, которые одинаково читаются слева направо и справа налево.

Тут всё просто, достаточно сравнить строку с её обратной версией, для чего можно использовать встроенную функцию reversed:

Того же эффекта можно добиться с помощью срезов:

Задача 9

Сделайте так, чтобы число секунд отображалось в виде дни:часы:минуты:секунды .

Задача 10

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

Задача 11

Выведите первый и последний элемент списка.

Задача 12

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

Задача 13

При заданном целом числе n посчитайте n + nn + nnn.

Tayrus

Однако здравствуйте! Я решил дать вам некоторые задачи, они рассчитаны на начальный уровень. Возможно некоторые задачи вам покажутся "упоротыми", но кто его знает. Возможно я буду дополнять эту тему новыми задачами, если вы этого захотите(кстати напишите надо ли это делать в комментарии). К задачам будет прилагаться мое решение, смотрите его если решили задачу сами или когда совсем не можете решить. Если мое решение не совпадает с вашим это не значит что ваше решение неверное, главное что работает)
Моя версия python 2.7.15

Читайте также:  Последняя миссия сталкер тень чернобыля

Задача 1: Вывести букву "A" 100 раз. И потом проверить ее длину(ну а мало ли мы ошиблись))) )

Задача 2: Пользователь вводит трех значное число и мы его разделяем на 1 отдельно число
Пример 625 -> 6,2,5 | 589 -> 5,8,9

Задача 3: Удаление дубликатов(одинаковых слов) из файлов

Задача 4: Получить внешний ip адресс

Задача 7: Есть файл, в нем 4 слова через пробел, посчитать кол-во слов.

Valkiria

Tayrus

Задача 8: Есть файл, в нем цифры в строчку 112233445566778899 , вывести двухзначные числа

Пример 112233 -> 11,22,33 и так далее.
Объясните своё решение.

Задача 9: Написать функцию, которая принимает неограниченное кол-во аргументов и выводи их в консоль.
Объясните своё решение.

Задача 10: Создайте словарь, занесите в него любые ключи с любыми значениями, отобразите ключ и значение
Объясните своё решение.

Задача 11: Сделайте функцию, которая принимает одно число и определяет это число четное или нечетное.
Объясните своё решение.

Задача 12: Создайте переменную code со значением 100(создать не в функции!), теперь сделайте функцию которая принимает число и меняет переменную code на число, которое мы передаем в функцию и выводит в консоль(вывод не в функции)
Объясните своё решение.

explorer

На степик есть курсы по питону, весьма занятные. Задачи порой угарные и были довольно непростыми порой для того объёма материала, что был подан.

Коля каждый день ложится спать ровно в полночь и недавно узнал,
что оптимальное время для его сна составляет X минут.
Коля хочет поставить себе будильник так, чтобы он прозвенел ровно через X минут после полуночи
, однако для этого необходимо указать время сигнала в формате часы, минуты.
Помогите Коле определить, на какое время завести будильник.
Часы и минуты в выводе программы должны располагаться на разных строках
Помните, что для считывания данных нужно вызывать функцию input без аргументов!

Sample Input 1:
480
Sample Output 1:
8
0
Sample Input 2:
512
Sample Output 2:
8
32

Оцените статью
Добавить комментарий

Adblock
detector