Найти тему
Заметки по Python

Основы Python. Часть 3

Оглавление

Задача 1. Гласные буквы

Команде лингвистов понравилось качество ваших программ, и они решили заказать у вас функцию для анализатора текста, которая создавала бы список гласных букв текста, а заодно считала бы их количество.

Напишите программу, которая запрашивает у пользователя текст и генерирует список из гласных букв этого текста (сама строка вводится на русском языке). Выведите в консоль сам список и его длину.

Задача 2. Генерация

Пользователь вводит целое число N. Напишите программу, которая генерирует список из N чисел, на чётных местах в нём стоят единицы, а на нечётных — числа, равные остатку от деления своего номера на 5.

-2

Задача 3. Случайные соревнования

Мы хотим протестировать работу электронной таблицы для участников некоторых соревнований. Есть два списка (то есть две команды) по 20 участников в каждом. В этих списках хранятся очки каждого участника (это вещественные числа с двумя знаками после точки, например 4.03). Участник одной команды соревнуется с участником другой команды под таким же номером. То есть первый соревнуется с первым, второй — со вторым и так далее.

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

-3

Задача 4. Тренируемся со срезами

Дана строка, в которой хранятся первые семь букв английского алфавита.

alphabet = 'abcdefg'

Напишите программу, которая выводит на экран десять вот таких результатов:

  1. Копию строки.
  2. Элементы строки в обратном порядке.
  3. Каждый второй элемент строки (включая самый первый).
  4. Каждый второй элемент строки после первого.
  5. Все элементы до второго.
  6. Все элементы начиная с конца до предпоследнего.
  7. Все элементы в диапазоне индексов от 3 до 4 (не включая 4).
  8. Последние три элемента строки.
  9. Все элементы в диапазоне индексов от 3 до 4.
  10. То же, что и в предыдущем пункте, но в обратном порядке.

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

-4

Задача 5. Разворот

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

-5

Задача 6. Сжатие списка

Дан список из N целых случайных чисел (число от 0 до 2). Напишите программу, которая выполняет «сжатие списка» — переставляет все нулевые элементы в конец массива. При этом все ненулевые элементы располагаются в начале массива в том же порядке. Затем все нули из списка удаляются.

-6

Задача 7. Двумерный список

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

[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]

Напишите программу, которая генерирует такой список и выводит его на экран. Используйте только list comprehensions.

-7

Задача 8. Развлечение

N палочек выставили в один ряд, пронумеровав их слева направо числами от 1 до N. Затем по этому ряду бросили K камней, при этом i-й камень сбил все палки с номерами от L_i до R_i включительно. Определите, какие палки остались стоять на месте.

Напишите программу, которая получает на вход количество палок N и количество бросков K. Далее идёт K пар чисел Left_i, Right_i, при этом 1 ≤ Left_i ≤ Right_i ≤ N.

Программа должна вывести последовательность из N символов, где j-й символ есть “I”, если j-я палка осталась стоять, или “.”, если j-я палка была сбита.

-8

Задача 9. Список списков

Дан вот такой (уже многомерный!) список:

nice_list = [[[1, 2, 3], [4, 5, 6], [7, 8, 9]], [[10, 11, 12], [13, 14, 15], [16, 17, 18]]]

Напишите код, который «раскрывает» все вложенные списки, то есть оставляет только внешний список. Для решения используйте только list comprehensions.

Ответ: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
-9

Задача 10. Шифр Цезаря

Юлий Цезарь использовал свой способ шифрования текста. Каждая буква заменялась на следующую по алфавиту через K позиций по кругу. Если взять русский алфавит и K = 3, то в слове, которое мы хотим зашифровать, буква А станет буквой Г, Б станет Д и так далее.

Пользователь вводит сообщение, а также значение сдвига. Напишите программу, которая зашифрует это сообщение при помощи шифра Цезаря.

-10

Наука
7 млн интересуются