Главная страница

книга заданий пайтон. книга практических заданий, pyton. Сборник упражнений Введение в язык Python с задачами и решениями Бен Стивенсон Москва, 2021 удк 004. 438Python


Скачать 2.24 Mb.
НазваниеСборник упражнений Введение в язык Python с задачами и решениями Бен Стивенсон Москва, 2021 удк 004. 438Python
Анкоркнига заданий пайтон
Дата02.10.2022
Размер2.24 Mb.
Формат файлаdocx
Имя файлакнига практических заданий, pyton.docx
ТипСборник упражнений
#709959
страница49 из 69
1   ...   45   46   47   48   49   50   51   52   ...   69

Упражнение 185. Декодирование на основе длин серий


(33 строки) Кодирование на основе длин серий представляет собой простую технику сжатия информации, которая демонстрирует свою эффективность при наличии множества соседствующих друг с другом повторяющихся значений. Сжатие достигается за счет замены целой группы повторяющихся значений на однократное его упоминание с отдельно хранящимся счетчиком повторов. Например, список ["A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "B", "B", "B", "B", "A", "A", "A", "A", "A", "A", "B"] может быть закодирован в следующем виде: ["A", 12, "B", 4, "A", 6, "B", 1]. Процесс декодирования заключается в размножении каждого элемента в соответствии со счетчиком.

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

Упражнение 186. Кодирование на основе длин серий


(Решено. 38 строк) Напишите рекурсивную функцию, реализующую алгоритм кодирования на основе длин серий, описанный в упражнении 185. На вход функции должен поступать список или строка, а на выходе будет закодированный список. В основной программе запросите у пользователя строку, сожмите ее при помощи своей функции и отобразите на экране кодированный список.

Подсказка. Возможно, вам придется поместить цикл внутрь тела своей рекурсивной функции.


Часть II РЕШЕНИЯ



Глава 9 Введение в программирование

Упражнение 1. Почтовый адрес


##

# Отобразить почтовый адрес пользователя # print("Бен Стивенсон") print("Департамент теории вычислительных систем") print("Университет Калгари") print("2500 Университетское шоссе NW") print("Калгари, Альберта T2N 1N4") print("Канада")

Упражнение 3. Площадь комнаты


##

Функция float используется для преобразования пользовательского ввода в нужный тип данных.

# Вычислить площадь комнаты

#

# Считываем ввод пользователя length = float(input("Введите длину комнаты (м): ")) width = float(input("Введите ширину комнаты (м): "))

В Python умножение выполняется при помощи оператора *.

# Вычислим площадь комнаты area = length * width

# Отобразим результат

print("Площадь комнаты равна", area, "кв.м.")

Упражнение 4. Площадь садового участка


##

# Вычисляем площадь садового участка в акрах

#

SQFT_PER_ACRE = 43560

# Запрашиваем информацию у пользователя length = float(input("Введите длину участка (футы): ")) width = float(input("Введите ширину участка (футы): "))

# Вычислим площадь в акрах acres = length * width / SQFT_PER_ACRE

# Отобразим результат

print("Площадь садового участка равна", acres, "акров")

Упражнение 5. Сдаем бутылки


##

# Вычисляем доход от сданной тары

#

LESS_DEPOSIT = 0.10

MORE_DEPOSIT = 0.25

# Запрашиваем у пользователя количество бутылок каждого вида less = int(input("Сколько у вас бутылок объемом 1 литр и меньше? ")) more = int(input("Сколько у вас бутылок объемом больше 1 литра? "))

# Вычисляем сумму refund = less * LESS_DEPOSIT + more * MORE_DEPOSIT

# Отобразим результат

print("Ваша выручка составит $%.2f." % refund)

Спецификатор формата %.2f указывает Python на то, что необходимо форматировать значение в виде числа с плавающей запятой с двумя десятичными знаками.

Упражнение 6. Налоги и чаевые


##

# Вычисляем налог и сумму чаевых в ресторане

#

TAX_RATE = 0.05

TIP_RATE = 0.18

В моем регионе налог составляет 5 %. В языке Python 5 % и 18 % представляются как 0.05 и 0.18 соответственно.

# Запрашиваем сумму счета у пользователя cost = float(input("Введите сумму счета: "))

# Вычисляем сумму налога и чаевых tax = cost * TAX_RATE tip = cost * TIP_RATE total = cost + tax + tip

# Отобразим результат print("Налог составил %.2f, чаевые – %.2f, общая сумма", \ "заказа: %.2f" % (tax, tip, total))

Знак обратной косой черты (\) называется символом продолжения строки. Он сообщает Python о том, что инструкция будет продолжена на следующей строке. Не вводите пробелы и иные символы, включая символ табуляции, после косой черты.
1   ...   45   46   47   48   49   50   51   52   ...   69


написать администратору сайта