Приветствую вас, друзья! Когда мы изучаем программирование, не важно даже какой язык, нам нужна постоянная практике в виде решения различных задач. В этой подборке вашему вниманию будет представлено несколько задач для реализации на языке Python (можете реализовать на другому языке, который вы сейчас изучаете, это тоже будет полезно).
Задачи не сложные, но и не самые простые. Попробуйте решить каждую задачу самостоятельно и без использование интернета в качестве поисковика готового решения.
Задачи расположены в порядке увеличения их сложности.
В конце статьи я приведу свои решения, так что можно будет свериться.
Подборка задач
Простейшие арифметические операции (1)
Написать функцию arithmetic , принимающую 3 аргумента: первые 2 — числа, третий — операция, которая должна быть произведена над ними. Если третий аргумент + , сложить их; если — , то вычесть; * — умножить; / — разделить (первое на второе). В остальных случаях вернуть строку «Неизвестная операция «.
Выполняем тестовое задание на Junior Python разработчика с зарплатой 70000р | PDF в MP3
Високосный год (2)
Написать функцию is_year_leap , принимающую 1 аргумент — год, и возвращающую True, если год високосный, и False иначе.
Написать функцию 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 , которая по зашифрованной строке и ключу восстанавливает исходную строку.
Источник: dzen.ru
Функции Python — Упражнения, Практика, Решение
5. Напишите функцию Python для вычисления факториала числа (неотрицательное целое число). Функция принимает число в качестве аргумента. Перейти к редактору
Нажмите меня, чтобы увидеть образец решения
Какие вещи реально пишут на Python?
6. Напишите функцию Python, чтобы проверить, находится ли число в заданном диапазоне. Перейти к редактору
Нажмите меня, чтобы увидеть образец решения
7. Напишите функцию Python, которая принимает строку и рассчитывает количество букв верхнего и нижнего регистра. Перейти к редактору
Пример строки : «Быстрая Лиса Бровей»
Ожидаемый результат :
Количество символов в верхнем регистре: 3
Количество строчных букв: 12
Нажмите меня, чтобы увидеть образец решения
8. Напишите функцию Python, которая берет список и возвращает новый список с уникальными элементами первого списка. Перейти к редактору
Список образцов: [1,2,3,3,3,3,4,5]
Уникальный список: [1, 2, 3, 4, 5]
Нажмите меня, чтобы увидеть образец решения
9. Напишите функцию Python, которая принимает число в качестве параметра и проверяет, является ли число простым или нет. Перейти к редактору
Примечание. Простое число (или простое число) — это натуральное число, большее 1, которое не имеет положительных делителей, кроме 1 и самого себя.
Нажмите меня, чтобы увидеть образец решения
10. Напишите программу на Python для печати четных чисел из заданного списка. Перейти к редактору
Список образцов : [1, 2, 3, 4, 5, 6, 7, 8, 9]
Ожидаемый результат : [2, 4, 6, 8]
Нажмите меня, чтобы увидеть образец решения
11. Напишите функцию Python, чтобы проверить, является ли число совершенным или нет. Перейти к редактору
Согласно Википедии: в теории чисел совершенное число — это положительное целое число, равное сумме его собственных положительных делителей, то есть сумме его положительных делителей, исключая само число (также известное как его аликвотная сумма). Эквивалентно, идеальное число — это число, которое составляет половину суммы всех его положительных делителей (включая себя).
Пример : первое совершенное число равно 6, потому что 1, 2 и 3 являются его собственными положительными делителями, а 1 + 2 + 3 = 6. Эквивалентно, число 6 равно половине суммы всех его положительных делителей: (1 + 2 + 3 + 6) / 2 = 6. Следующее совершенное число — 28 = 1 + 2 + 4 + 7 + 14. За ним следуют совершенные числа 496 и 8128.
Нажмите меня, чтобы увидеть образец решения
12. Напишите функцию Python, которая проверяет, является ли переданная строка палиндромом или нет. Перейти к редактору
Примечание. Палиндром — это слово, фраза или последовательность, которые читаются так же, как и вперёд, например, бегут мадам или медсестры.
Нажмите меня, чтобы увидеть образец решения
13. Напишите функцию Python, которая печатает первые n строк треугольника Паскаля. Перейти к редактору
Примечание. Треугольник Паскаля — это арифметическая и геометрическая фигура, впервые представленная Блезом Паскалем.
Образец треугольника Паскаля:

14. Напишите функцию Python, чтобы проверить, является ли строка панграммой или нет. Перейти к редактору
Примечание. Панограммы — это слова или предложения, содержащие каждую букву алфавита хотя бы один раз.
Например: «Быстрая коричневая лиса перепрыгивает через ленивую собаку»
Нажмите меня, чтобы увидеть образец решения
15. Напишите программу на языке Python, которая принимает в качестве входных данных последовательность слов, разделенных дефисами, и печатает слова в последовательности, разделенной дефисами, после сортировки по алфавиту. Перейти к редактору
Образцы элементов : зеленый-красный-желтый-черный-белый
Ожидаемый результат : черный-зеленый-красный-бело-желтый
Нажмите меня, чтобы увидеть образец решения
16. Напишите функцию Python, чтобы создать и распечатать список, значения которого представляют собой квадрат чисел от 1 до 30 (оба включены). Перейти к редактору
Нажмите меня, чтобы увидеть образец решения
17. Напишите программу на Python, чтобы создать в Python цепочку декораторов функций (полужирный, курсив, подчеркивание и т. Д.). Перейти к редактору
Нажмите меня, чтобы увидеть образец решения
18. Напишите программу на Python для выполнения строки, содержащей код Python. Перейти к редактору
Нажмите меня, чтобы увидеть образец решения
19. Напишите программу на Python для доступа к функции внутри функции. Перейти к редактору
Нажмите меня, чтобы увидеть образец решения
20. Напишите программу на Python для определения количества локальных переменных, объявленных в функции. Перейти к редактору
Нажмите меня, чтобы увидеть образец решения
Редактор кода Python:
Еще не все !
Не отправляйте решение вышеупомянутых упражнений здесь, если вы хотите внести вклад, перейдите на соответствующую страницу упражнения.
Источник: www.kodesource.top
Уроки на Python (часть 2, для начинающих, «Ветвление»)
учебно-методический материал по информатике и икт (6, 7, 8 класс)
Ветвление – это алгоритм, в котором в зависимости от условия выполняется одна из последовательности действий.
Как организовать ветвление на Python?
В Python, в отличие от других языков, сдвиги операторов относительно левой границы (отступы) влияют на работу программы.
Полное и неполное ветвление
Пример 1: Рассмотрим запись ветвления на примере нахождения максимального значения из 2-х чисел.
m = a if a > b else b
Вариант 1 и 2 используют полную форму ветвления, а можно обойтись неполной формой.
Кроме всего в Python есть функция max (и min) и можно обойтись вовсе без ветвления:
Аналогично можно найти max (min) из 3, 4-х и т.д чисел.
Часто при выполнении какого-то условия нужно выполнить сразу несколько действий.
Пример 1: Обмен значений двух переменных (ячеек памяти):
Пример 2 : Определение максимума и минимума
Заметим , что в Python, в отличие от многих других языков программирования, есть множественное присваивание, которое позволяет выполнить такой обмен значительно проще (пример 1): a, b = b, a
Аналогично можно производить более сложные перестановки, например:
Вложенные условные операторы
Условный оператор находящийся внутри блока «иначе» ( else ) называется вложенным условным оператором . Использование вложенных условных операторов позволяет выбрать один из нескольких (а не только из двух) вариантов.
Пример 1: A возраст Александра, B возраст Владимира. Нужно определить,
кто из них старше или оба одного возраста.
print( «Александр старше» )
print( «Одного возраста» )
print( «Владимир старше» )
Обратите внимание на отступы: слова if , elif и else находятся на одном уровне.
Пример 2:Скидка при 1500 рублей.
В цепочке операторов if-elif-elif- … срабатывает первое истинное условие.
print( «Скидок нет.» )
print( «Скидка 10%.» )
Выводит «Скидка 2%.», хотя условие cost
В сложных условиях используется одна из логических операций: «И» ( and ), «ИЛИ» (or), «НЕ» (not) .
Пример 1: Прием на работу
if age >= 21 and age
print( «не подходит» )
В программе на языке Python можно сразу проверить выполнение двойного неравенства:
Пример 2: Сложное условие с операцией «И»
Предположим, что нам надо убедиться, что значение целой переменной a – двухзначное число, которое делится на 5. Для этого нужно, чтобы одновременно выполнились три условия:
1) число не меньше 10;
2) число меньше 100;
3) число делится на 5, то есть остаток от его деления на 5 равен нулю.
В условном операторе эти три простых условия должны быть
связаны с помощью двух операций «И»:
Пример 3: Сложное условие с операцией «ИЛИ»
Узнать, полетит ли самолет в этот день недели. Самолеты летают по вторникам и пятницам
if day == 2 or day == 5:
print( «Нет рейса.» )
Пример 4: Сложное условие с операцией «НЕ»
Узнать, есть ли уроки физической культуры в этот день недели. Урок физической культуры есть во вторник, четверг и субботу.
if not( day == 2 or day == 4 or day==6 ):
print( «Есть урок» )
print( «Урока нет» )
Если в сложном условии встречается несколько разных операций, они выполняются в следующем порядке:
1) операции в скобках;
В языке Python можно использовать переменные, которые принимают только логические значения – True («истина») или False («ложь»):
В логической переменной можно хранить значение какого-то условия и затем использовать его в условном операторе:
fly = (d = 2) or (d = 5)
if not fly: print( «Нет рейса.» )
else: print( «Полетит!» )
Практическое занятие №1 «Ветвляющие алгоритмы»
По примерам, которые приведены во введении, решите следующие задания.
1. Напишите программу, которая получает с клавиатуры три целых числа и находит наибольшее и наименьшее из них.
2. Напишите программу, которая получает четыре числа – рост 4-х школьников, и выводит сообщение «По росту.», если числа введены по возрастанию (неубыванию), или сообщение «Не по росту!», если они введены в другом порядке..
3. *Напишите программу, которая получает с клавиатуры номер месяца и выводит название соответствующего ему времени года или сообщение об ошибке.
Практическое занятие №2 «Ветвляющие алгоритмы»
1. Напишите программу, которая получает с клавиатуры целое число и выводит ответ на вопрос: «Верно ли, что было получено трёхзначное число?».
2. Напишите программу, которая определяет, принадлежит ли число x отрезку [ a ; b ]. Все числа вещественные, значения x , a и b вводятся с клавиатуры. Разработайте два варианта программы: с использованием вложенных условных операторов и со сложным условием.
3. *Напишите программу, которая получает трёхзначное число и определяет, верно ли, что все его цифры разные (программа должна вывести ответ «да» или «нет»).
Практическое занятие №3 «Ветвляющие алгоритмы»
Случайные числа – это последовательность чисел, в которой невозможно предсказать следующее число, даже зная все предыдущие.
Функции для работы с псевдослучайными числами в языке Python собраны в модуле random . В библиотеке Python используется один из наиболее совершенных алгоритмов для генерации псевдослучайных чисел – «вихрь Мерсенна», разработанный в 1997 году.
Для получения псевдослучайных чисел в заданном диапазоне мы будем использовать функции из модуля random :
• randint(a,b) – случайное целое число на отрезке [ a ; b ];
• uniform(a,b) – случайное вещественное число на отрезке [ a ; b ].
Для того чтобы записать в переменную n случайное число на отрезке [1; 6] (результат бросания игрального кубика), можно использовать такие команды:
from random import randint
В первой строке из модуля random импортируется (загружается) функция randint , во второй она вызывается для получения случайного числа.
Вещественное случайное число на отрезке [5; 12] получается так:
from random import uniform
x = uniform( 5, 12 )
1. Напишите программу «Спортлото», которая выводит 5 чисел из 36 случайным образом.
2.Напишите программу, которая получает с клавиатуры номер месяца и определяет, сколько дней в этом месяце. При вводе неверного номера месяца должно быть выведено сообщение об ошибке (ввод месяца можно осуществить случайным образом).
3. *Напишите программу, которая размещает случайным образом две ладьи на шахматной доске и определяет, бьют ли эти ладьи друг друга.
Практическое занятие №4 «Ветвляющие алгоритмы»
В языке Python работы со строками используется специальный тип данных str (от английского слова string ), который позволяет
• работать с целой символьной строкой как с единым объектом;
• использовать строки переменной длины.
Символьная строка – это последовательность символов.
Для ввода значения строковой переменной с клавиатуры используется функция input :
Обратите внимание по умолчанию ввод – это ввод символьной переменной!
Чтобы перевести из символьного типа строку из цифр в целочисленный тип достаточно написать n = int(s).
ЭТО УПРОЩАЕТ РЕШЕНИЕ МНОГИХ ЗАДАЧ!
Встроенная функция len определяет длину строки – количество символов в ней. Вот так в переменную n записывается длина строки s :
Строки можно сравнивать между собой так же, как числа.
Например, можно проверить равенство двух строк, определить, какая из двух строк больше, какая – меньше. Если строки состоят только из русских или только из латинских букв, то меньше будет та строка, которая идет раньше в алфавитном списке. Например, слово « паровоз » будет «меньше», чем слово « пароход »: они отличаются в пятой букве и « в » х ».
Сложение и умножение
Оператор «+» используется для «сложения» (объединения, сцепления) строк. Эта операция иногда называется конкатенация . Например:
В язык Python введена операция умножения строки на число: она заменяет многократное сложение. Например,
s = «Уа! Уа! Уа! Уа! Уа! Уа! Уа! Уа!
Уа! Уа! «
можно заменить на
Обращение к символам
В Python каждый символ строки имеет свой номер (индекс), причём нумерация, как и во многих других языках программирования (С, C++, Java), всегда начинается с нуля.
hello = » П р и в е т ! «
К любому символу можно обратиться по индексу, записав индекс в квадратных скобках после имени строки:
print( hello[1] ) # р
print( hello[5] + hello[2] + «к» ) # тик
В языке Python можно указывать отрицательные индексы.
Это значит, что отсчёт ведётся от конца строки, так что символ
hello[-1] – это последний символ строки hello :
индексы –7 –6 –5 –4 –3 –2 –1
hello = » П р и в е т ! «
Чтобы рассчитать «обычную» позицию символа в строке, к отрицательному индексу нужно добавить длину строки. Например,
hello[-1] = hello[len(hello)-1] = hello[6]
Предыдущую программу можно было переписать, используя отрицательные индексы:
print( hello[-6] ) # р
print( hello[-2] + hello[-5] + «к» ) # тик
Для того, чтобы выделить часть строки ( подстроку ), в языке Python применяется операция получения среза (англ. slicing ).
Например, s[3:8] означает «символы строки s с 3-го по 7-й» (то есть до 8-го, не включая его). Следующий фрагмент копирует в строку s1 символы строки s с 3-го по 7-й (всего 5 символов):
Подробнее читайте в учебниках и сайтах по Python.
1. Напишите программу, определяющую, какое из двух введенных слов с клавиатуры больше.
2. Напишите программу, которая получает с клавиатуры 5-ое число и определяет какая цифра в числе больше (2-ая или 4-ая). Решить, используя обращение к символам.
3*. « Кто старше». Петя и Ваня записали свою дату рождения (день, месяц, год), но забыли поставить разделительную точку. Определите, кто из мальчиков старше по году рождения, либо они родились в один год.
Источник: nsportal.ru