Модуль 19. Задача 2. География

Модуль 19. Задача 2. География

Антон помимо программирования также увлекается и географией, поэтому он решил связать эти две области и написать для своего проекта небольшую программу-навигатор.

Пользователь вводит количество стран N, а затем N раз вводит страну и города, которые в этой стране находятся, в одну строку. Затем пользователь вводит 3 названия городов. Реализуйте такую программу и для каждого из трёх городов укажите, в какой стране он находится. Если такого города нет, то вывести соответствующее сообщение.

Пример:

Кол-во стран: 2
1 страна: Россия Москва Петербург Новгород
2 страна: Германия Берлин Лейпциг Мюнхен

1 город: Москва
Город Москва расположен в стране Россия.

2 город: Мюнхен
Город Мюнхен расположен в стране Германия.

3 город: Рим
По городу Рим данных нет.
ЧИТАТЬ ДАЛЕЕ …
Модуль 19. Задача 1. Песни 2

Модуль 19. Задача 1. Песни 2

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

violator_songs = {
    'World in My Eyes': 4.86,
    'Sweetest Perfection': 4.43,
    'Personal Jesus': 4.56,
    'Halo': 4.9,
    'Waiting for the Night': 6.07,
    'Enjoy the Silence': 4.20,
    'Policy of Truth': 4.76,
    'Blue Dress': 4.29,
    'Clean': 5.83
}

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

Пример:

Сколько песен выбрать? 3
Название 1 песни: Halo
Название 2 песни: Enjoy the Silence
Название 3 песни: Clean

Общее время звучания песен: 14.93 минут
ЧИТАТЬ ДАЛЕЕ …
Немного про сессии в Oracle

Немного про сессии в Oracle

Как определить текущую сессию?

Иногда бывает нужно узнать SID текущей сессии для Oracle. Это можно сделать так:

SELECT sys_context('USERENV','SESSIONID') FROM DUAL;

или в самом скрипте:

DECLARE
  SID VARCHAR(255);
BEGIN
  SID := SYS_CONTEXT('USERENV','SESSIONID');
END;

Как определить зависшую сессию?

Определите «нашкодившую» сессию, используя представления [G]V$SESSION и [G]V$PROCESS следующим образом:

ЧИТАТЬ ДАЛЕЕ …
Модуль 18. Задача 10. Истина

Модуль 18. Задача 10. Истина

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

vujgvmCfb tj ufscfu ouib z/vhm jdjuFyqm jt fscfuu uibo jdju/jnqm fTjnqm tj scfuuf ibou fy/dpnqm yDpnqmf jt cfuufs boui dbufe/dpnqmj uGmb tj fuufsc ouib oftufe/ bstfTq jt uufscf uibo otf/ef uzSfbebcjmj vout/dp djbmTqf dbtft (ubsfo djbmtqf hifopv up csfbl ifu t/svmf ipvhiBmu zqsbdujdbmju fbutc uz/qvsj Fsspst tipvme wfsof qbtt foumz/tjm omfttV mjdjumzfyq odfe/tjmf Jo fui dfgb pg hvjuz-bncj gvtfsf fui ubujpoufnq up ftt/hv Uifsf vmetip fc pof.. boe sbcmzqsfgf zpom pof pvt..pcwj xbz pu pe ju/ Bmuipvhi uibu bzx bzn puo cf wjpvtpc bu jstug ttvomf sfzpv( i/Evud xOp tj scfuuf ibou /ofwfs uipvhiBm fsofw jt fopgu cfuufs boui iu++sjh x/op gJ ifu nfoubujpojnqmf tj eibs pu mbjo-fyq tju( b bec /jefb Jg fui foubujpojnqmfn jt fbtz up bjo-fyqm ju znb cf b hppe jefb/ bnftqbdftO bsf pof ipoljoh sfbuh efbj .. fu(tm pe psfn gp tf"uip

Подсказка: в задаче говорится об истине питона import this, а текст зашифрован шифром Цезаря.

ЧИТАТЬ ДАЛЕЕ …
Модуль 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]
ЧИТАТЬ ДАЛЕЕ …