Доброго времени суток, читатели, зрители моего канала programmer's notes.
Это такой не большой задачник по базовому курсу Python. И я решил не ждать, пока я его весь заполню. Буду заполнять постепенно у вас на глазах :). Содержимое будет меняться практически каждый день.
Базовый курс я уже давно завершил, но вот задач в нём почти нет. Данная статья предназначена для восполнения этого пробела.
Кстати предлагайте свои задачи. Это интересно.
Статья продолжает заполняться задачами
Несколько важных ссылок для вас.
Задачи по основному курсу языка Python
Темы, на которые разбит данный раздел, не всегда соответствуют одному уроку моего курса. Некоторые охватывают несколько уроков. На мой взгляд это закономерно, так как я в процессе создания уроков часто делил тему на несколько мелких тем.
Все мои текстовые и видео уроки по Python можно найти здесь
Ввод и вывод данных с консоли и целые числа
- В отдельной строке вводятся: Фамилия, Имя, Отчество, Возраст. Выводится строка: Фамилия: <Фамилия>, Имя:<Имя>, Отчество:<Отчество>, Возраст:<Возраст> лет.
Например вводится
Иванов
Иван
Иванович
120
Выводится
Фамилия:Иванов, Имя:Иван, Отчество:Иванович, Возраст:120 - Вводятся три целых числа каждое в отдельной строке, выводится строка:
Сумма чисел: <a>, <b>, <c> равна <сумма>.
Например вводится
15
7
50
Выводится строка
Сумма чисел: 15, 7, 50 равна 72. - Вводятся последовательно четыре целых числа, каждое в своей строке: длина, ширина и высота ящика и длина ребра кубика. Требуется найти максимальное количество кубиков, которые могут поместиться в ящике.
- Вводится целое число N. Число больше 5.
Необходимо вывести
Остаток от деления числа 'N' на 2 равен 'a'
Остаток от деления числа 'N' на 3 равен 'b'
Остаток от деления числа 'N' на 4 равен 'c'
Остаток от деления числа 'N' на 5 равен 'd'
Например вводится число 10. Результат:
Остаток от деления числа '10' на 2 равен '0'
Остаток от деления числа '10' на 3 равен '1'
Остаток от деления числа '10' на 4 равен '2'
Остаток от деления числа '10' на 5 равен '0' - используя функцию int() получить дробную часть вводимого вещественного числа.
Например вводится число 10.347. Выводится: 0.347
Условные конструкции
- Один за другим вводятся три числа. Найти наибольшее числа: а) используя только не полные условные конструкции; б) используя вложенные полные условные конструкции (без elif); в) используя вариант условной конструкции с elif.
Например вводятся
3
4
1
Выводится:
Минимальное число из 3, 4, 1: 4 - Используя if — elif — else реализуйте получение знака числа (1, 0, -1).
Например, вводится число
-247
Выводится
-1 - Водится строка. Если введено Здравствуйте — программа отвечает Добрый день, если введено Спасибо — программа отвечает Пожалуйста, в остальных случаях программа пишет Извините.
- Вводятся последовательно пять целых числа, каждое в своей строке: длина, ширина и высота ящика, длина ребра кубика и количество кубиков. Вывести Да, если кубики войдут в ящик и Нет, если не войду.
- Вводит год, если год високосный выводится слово Да, если не високосный слово Нет. Является ли год високосный можно определить по следующему алгоритму: год високосный, если он делится на 400 или делится на 4, но не делится на 100.
Циклы for и while в Python
- Заданы два целых числа a и b. Получить все числа в данном промежутке, которые делятся или на 3 или на 7, но не делятся на 3 и 7 одновременно. При этом a не обязательно больше b. Числа выводятся в строку через пробел. Решить задачу с использованием цикла for и с использованием цикла while.
- В строке вводится целое числа в десятичном формате. Вывести сумму всех цифр числа, не используя строковый тип данных.
Например, вводится число
1001
Выводится число
2 - В строке вводится целое число в десятичном формате. Вывести это же число в двоичном формате не используя тип данных строка.
- Вводится целое число. Вывести все делители этого числа. Решить задачу с помощью циклов for и while.
- Вводится целое число n. Вывести факториал этого числа.
Вложенные цикла в Python
- Вводится два целых числа a и b. Вывести все простые числа в промежутке между этими числами включительно. Какое из этих двух чисел максимальное неизвестно. Написать четыре варианта программы: только циклы for, только циклы while, два смешанных варианта.
- Вводится целое число N > 0. Вывести сумму факториалов от 1 до N: 1! + 2! +...+(N - 1)! + N!.
- Вводится N целых положительных чисел. Найти максимальное количество заданных цифр, которые встречаются в одном числе.
На входе вводится число N (количество чисел), в следующей строке искомая цифра, и далее N целых положительных чисел, каждое в своей строке. На выходе максимальное количество цифр.
Например
3
7
708
1234
7897
На выходе
2 - Программа получает последовательность целых положительных чисел, пока не встретится 0. Для каждого числа нужно вывести список его делителей.
Строковый тип переменных в Python
- Вводится строка. Вывести в строку через пробел Unicode-коды каждого символа строки.
- Вводится строки s1 и s2. Найти все вхождения строки s2 в строку s1. Вывести все номера символов, с которых начинается вхождение.
- Дана строка. Вывести длину самой длинной подстроки, состоящих из одинаковых символов.
Например
На входе
sssdfghggggguiuttttttttttg
На входе
10 - Вводятся две строки s1 и s2. Вставить строку s2 в строку s1, начиная с символа с номером i. Вводится в начале s1, потом s2, потом i. Решить задачу с помощью срезов и не используя срезы.
Например
На входе
qwerty
zzz
1
На выходе
qzzzwerty - Вводится строка символов и два числа — индексы символов. Удалить в ней подстроку используя срезы и не используя срезы.
Например
На входе
qwertyu
2
5
На выходе
qwu
Функции в Python
- Написать функцию division(), которая в качестве параметров получает числа n и m и возвращает либо строку 'Число n делится на m' или строку 'Число n не делится на m'.
Например
print(division(10, 3))
Получаем
Число 10 не делится на 3 - Написать функцию. На входе целое положительное число. Функция возвращает или строку: Простое число или строку Составное число.
- Написать функцию, получающая на входе два числа a и b и возвращающая наибольший общий делитель этих чисел. Воспользоваться одним из известным вам алгоритмом. Например, искать делитель начиная с min(a, b) , каждый раз уменьшая значение для возможного делителя на 1, пока делитель не будет найден. Или же взять за основу алгоритм Эвклида.
Например
print(nod(3, 9))
3 - Написать функцию, которая получает на входе целое число N и возвращает N! - факториал.
Списки в Python
- Удалите часть строки переведя её в начале в список, удалив из него нужный фрагмент и преобразовав его обратно в строку.
На входе строка символов, два числа (индексы начала и конца удаляемой подстроки), каждые в своей строке, на выходе полученная строка. - Напишите функцию, которая принимает неограниченное количество параметров и возвращает список, состоящий из этих параметров в порядке обратном их поступлению.
- Написать функцию, которая принимает произвольное количество параметров, являющихся списками. Функция возвращает список, являющийся объединением всех введённых списков.
- Дан список, состоящий из целых чисел, вещественных чисел, строк, которые также являются или целыми числами или вещественными числами. Получить сумму всех элементов списка.
Множества в Python
- На входе программы дан список элементов произвольной природы. Необходимо получить список элементов, которые встречаются в списке один раз. Решить задачу с использованием множества и без его использования.
- Текст содержит информацию о работника и причисляемых им суммах. Каждая строка представляет собой ФИО (Фамилию, Имя, Отчество через пробел) и число (сумма выплат). Один и тот же человек может встречаться в тексте многократно. Получить получить сумму по каждому человеку. Полученные строки следует упорядочить по ФИО.
Например, на входе
Петров Иван Иванович 100
Иванов Петр Петрович 200
Петров Иван Иванович 100
Куликов Виктор Петрович 300
На выходе
Куликов Виктор Петрович 300
Иванов Петр Петрович 200
Петров Иван Иванович 200 - Дан список строк, которые могут содержать email-адреса. Признаком адреса будет наличие в подстроке знака '@' и ограничение подстроки пробелами, либо концом или началом строки. Получить упорядоченный по алфавиту список полученных адресов без повторения. Не использовать при решении дополнительные библиотеки.
- Даны три строки, состоящие из слов, отделённых друг от друга знаками препинания и/или пробелами. Нужно найти:
1. все слова, которые встречаются во всех трех строках;
2. слова, которые встречаются только в двух (любых) строка;
3. слова, которые встречаются только в одной строке.
Словари в Python
- Написать функцию, которая входе получает список, состоящий из русских слов, а возвращает словарь. Ключами словаря являются слова списка, а значениями кортежи, состоящие из двух чисел: (n, m), где n - количество гласных букв в соответствующем слове, m - количество согласных букв в соответствующем слове.
- На входе программы русский текст. Программа возвращает список букв русского алфавита и процент встречаемости этой буквы в тексте. Например
а — 15%
б — 14.1%
и т.д.
Список упорядочен по алфавиту.
Решить двумя способами: с использованием словаря и без использования. - На входе последовательность строк. В строках могут встречаться адреса электронной почты. Адреса электронной почты являются подстроками, ограниченными пробелами, концом или/и началом строки. Признаком электронной почты является наличие в нём одного и только одного знака '@'. Получить словарик, ключами которого являются адреса электронной почты, а значением список, состоящий из строк, где этот адрес встречается.
- Задано целое положительное число N > 1. Функция получает это число в качестве параметра. На выходе функции словарь. В качестве ключей числа в промежутке [2, 9]. Значениями для ключей являются списки, состоящие из чисел в промежутке [2, N], делителями которых является соответствующий ключ. Элементы с пустыми списками в словаре отсутствуют. Например для числа 5 имеем словарь {2: [2, 4], 3: [3], 4:[4], 5: [5]}.
Двумерные списки (массивы)
- Дан двумерный массив (список), элементами которого являются целые числа, с одинаковым значением строк и столбцов. Необходимо получить максимальное значение одной и второй диагонали. Ввод массива осуществляется следующим образом: в первой строки стоит число N - размерность массива. Далее идёт N строк. Каждая строка состоит из N чисел, отделённых друг от друга пробелами. Например
3
1 2 5
3 8 9
9 8 10
Результат выполнения программы
10 9 - Дан двумерный числовой список. Необходимо найти максимальное и минимальное значение списка, составленного из сумм строк и сумм столбцов исходного двумерного списка.
- Дан двумерный числовой массив. Необходимо упорядочить его по суммам элементов столбцов.
- Дан двумерный числовой массив. Необходимо упорядочить его по суммам элементов строк.
Функции высшего порядка
Всего наилучшего. Оставляйте свои комментарии, не забывайте про лайки и подписывайтесь на мой канал programmer's notes.