Модуль 18. Задача 9. Сообщение

Модуль 18. Задача 9. Сообщение

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

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

Пример 1:

Сообщение: Это задание очень! простое.

Новое сообщение: отЭ еинадаз ьнечо! еотсорп.

Пример 2:

Сообщение: Хотя ,. возм:ожно и нет.

Новое сообщение: ятоХ ,. мзов:онжо и тен.

ЧИТАТЬ ДАЛЕЕ …
Модуль 18. Задача 8. Бегущая строка

Модуль 18. Задача 8. Бегущая строка

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

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

Опционально: если получить можно, то вывести значение этого сдвига.

Пример 1:

Первая строка: abcd
Вторая строка: cdab

Первая строка получается из второй со сдвигом 2.

Пример 2:

Первая строка: abcd
Вторая строка: cdba

Первую строку нельзя получить из второй с помощью циклического сдвига.
ЧИТАТЬ ДАЛЕЕ …
Модуль 18. Задача 7. IP - адрес 2

Модуль 18. Задача 7. IP — адрес 2

При написании клиент-серверного приложения часто приходится работать с теми самыми IP-адресами. Как мы уже знаем, IP-адрес состоит из четырех целых чисел в диапазоне от 0 до 255, разделенных точками.

Пользователь вводит строку. Напишите программу, которая определяет, является ли заданная строка правильным IP-адресом. Обеспечьте контроль ввода, где предусматривается ввод целых чисел от 0 до 255, а также точки между ними

Пример 1:

Введите IP: 128.16.35.a4
a4- не целое число

Пример 2:

Введите IP: 240.127.56.340
340 превышает 255
ЧИТАТЬ ДАЛЕЕ …
Модуль 18. Задача 6. Сжатие

Модуль 18. Задача 6. Сжатие

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

s = ‘aaaabbсaa’ преобразуется в ‘a4b2с1a2’, то есть группы одинаковых символов исходной строки заменяются на этот символ и количество его повторений в этой позиции строки.

Напишите программу, которая считывает строку, кодирует её предложенным алгоритмом и выводит закодированную последовательность на экран. Кодирование должно учитывать регистр символов.

Пример:

Введите строку: aaAAbbсaaaA

Закодированная строка: a2A2b2с1a3A1
ЧИТАТЬ ДАЛЕЕ …
Модуль 18. Задача 5. Пароль

Модуль 18. Задача 5. Пароль

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

Пример:

Придумайте пароль: qwerty
Пароль ненадёжный. Попробуйте ещё раз.
Придумайте пароль: qwerty12
Пароль ненадёжный. Попробуйте ещё раз.
Придумайте пароль: qwerty123
Пароль ненадёжный. Попробуйте ещё раз.
Придумайте пароль: qWErty123
Это надёжный пароль!
ЧИТАТЬ ДАЛЕЕ …
Модуль 18. Задача 4. Заглавные буквы

Модуль 18. Задача 4. Заглавные буквы

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

Пример:

Введите строку: Кажется, я забыл выключить утюг

Результат: Кажется, Я Забыл Выключить Утюг
ЧИТАТЬ ДАЛЕЕ …
Модуль 18. Задача 3. Файлы

Модуль 18. Задача 3. Файлы

В одной IT-компании существует негласный закон об именовании текстовых документов:

  1. Название файла не должно начинаться на один из специальных символов: @№$%^&*()
  2. Файл заканчивается расширением “.txt” или “.docx”

Напишите программу, которая получает на вход полное название файла и проверяет его по этим правилам.

Пример 1:

Название файла: @example.txt

Ошибка: название начинается на один из специальных символов

Пример 2:

Название файла: example.ttx

Ошибка: неверное расширение файла. Ожидалось .txt или .docx
ЧИТАТЬ ДАЛЕЕ …
Модуль 18. Задача 2. Самое длинное слово

Модуль 18. Задача 2. Самое длинное слово

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

Пример 1:

Введите строку: я есть строка
Самое длинное слово: строка
Длина этого слова: 6

Пример 2:

Введите строку: а б
Самое длинное слово: а
Длина этого слова: 1
ЧИТАТЬ ДАЛЕЕ …
Модуль 18. Задача 1. Меню ресторана

Модуль 18. Задача 1. Меню ресторана

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

Напишите программу, которая выводит это меню на экран. На вход подаётся строка из названий блюд, разделённые символом “;”, а на выходе эти названия перечисляются через запятую и пробел.

Пример:

Доступное меню: утиное филе;фланк-стейк;банановый пирог;плов

На данный момент в меню есть: утиное филе, фланк-стейк, банановый пирог, плов
ЧИТАТЬ ДАЛЕЕ …

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

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

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

Пример:

Введите сообщение: это питон
Введите сдвиг: 3
Зашифрованное сообщение: ахс тлхср
ЧИТАТЬ ДАЛЕЕ …

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

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

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]
ЧИТАТЬ ДАЛЕЕ …

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

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

Напишите программу, которая получает на вход количество палок N и количество бросков K. Далее идет K пар чисел L_i, R_i, при этом 1≤ L_i≤ R_i≤ N.
Программа должна вывести последовательность из N символов, где j-й символ есть “I”, если j-я палка осталась стоять, или “.”, если j-я палка была сбита.

Пример:

Кол-во палок: 10 
Кол-во бросков: 3
Бросок 1. Сбиты палки с номера 8 
по номер 10
Бросок 2. Сбиты палки с номера 2 
по номер 5
Бросок 3. Сбиты палки с номера 3 
по номер 6

Результат: I.....I...

ЧИТАТЬ ДАЛЕЕ …

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

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

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

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

ЧИТАТЬ ДАЛЕЕ …

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

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

Пример:

Кол-во чисел в списке: 10
Список до сжатия: [0, 2, 1, 0, 0, 0, 1, 0, 2, 0]
Список после сжатия: [2, 1, 1, 2]
ЧИТАТЬ ДАЛЕЕ …

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

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

Пример 1:

Введите строку: hqwehrty
Развернутая последовательность между первым и последним h: ewq

Пример 2:

Введите строку: hh
Развернутая последовательность между первым и последним h: 
ЧИТАТЬ ДАЛЕЕ …