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

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


Скачать 2.24 Mb.
НазваниеСборник упражнений Введение в язык Python с задачами и решениями Бен Стивенсон Москва, 2021 удк 004. 438Python
Анкоркнига заданий пайтон
Дата02.10.2022
Размер2.24 Mb.
Формат файлаdocx
Имя файлакнига практических заданий, pyton.docx
ТипСборник упражнений
#709959
страница20 из 69
1   ...   16   17   18   19   20   21   22   23   ...   69

Упражнение 83. Максимальное число в последовательности


(Решено. 34 строки) Это упражнение преследует цель идентификации количества смен максимального значения в коллекции случайных чисел. Ряд должен быть заполнен числами от 1 до 100. При этом последовательность может содержать дубликаты, а некоторых чисел из диапазона от 1 до 100 в ней может не быть.

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

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

После вывода всех значений на экран вы должны также оповестить пользователя о максимальном числе в ряду и количестве его обновлений. Частичный вывод программы приведен ниже. Запустите свою программу несколько раз. Оправдались ли ваши ожидания относительно количества смен максимального значения?

30

74 <== Обновление

58

17

40

37

13

34

46

52

80 <== Обновление

37

97 <== Обновление

45

55

73



Максимальное значение в ряду: 100

Количество смен максимального значения: 5

Упражнение 84. Подбрасываем монетку


(47 строк) Какое минимальное количество раз вы должны подбросить монетку, чтобы три раза подряд выпал либо орел, либо решка? А какое максимальное количество попыток может для этого понадобиться? А в среднем? В данном упражнении мы выясним это, создав симулятор подбрасывания виртуальной монетки.

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

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

О Р Р Р (попыток: 4)

О О Р Р О Р О Р Р О О Р О Р Р О Р Р Р (попыток: 19)

Р Р Р (попыток: 3)

Р О О О (попыток: 4)

О О О (попыток: 3)

Р О Р Р О Р О О Р Р О О Р О Р О О О (попыток: 18)

О Р Р О О О (попыток: 6)

Р О Р Р Р (попыток: 5)

Р Р О Р Р О Р О Р О О О (попыток: 12)

Р О Р Р Р (попыток: 5) Среднее количество попыток: 7,9.


Глава 4 Функции


С ростом программ, которые мы пишем, возрастает необходимость в их максимальном упрощении и облегчении их поддержки и сопровождения. Одним из способов добиться этого является дробление программ на отдельные блоки, именуемые функциями (function).

Функции в программах служат сразу нескольким целям. Они позволяют написать код лишь раз и впоследствии обращаться к нему из разных мест. Кроме того, с их помощью можно легко тестировать различные решения. Также функции помогают скрыть (или, по крайней мере, отложить в сторону) детали реализации программного кода после окончания разработки части программного комплекса. С помощью функций программист имеет возможность написать необходимое количество строк кода, запрятать их в единый блок, именуемый функцией, и отложить для использования в будущем. К этому коду в дальнейшем можно будет обращаться из других блоков и программ. При этом сам блок функции со всеми входящими в него инструкциями именуется определением (defining), а обращение к нему извне – вызовом (calling) функции. После вызова и выполнения функции управление возвращается в основную программу, и она продолжается с первой после вызова функции инструкции.

Программы, которые вы писали до этого, изобиловали вызовами функций вроде print, input, int и float. Все эти функции были заранее написаны разработчиками языка Python и могут быть вызваны в любой программе на этом языке. В данной главе вы научитесь объявлять и вызывать собственные функции в дополнение к уже написанным и помещенным в стандартные библиотеки Python.

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

def drawBox():

print("**********") print("* *") print("* *") print("**********")

Сами по себе эти строки кода, появившись в программе, не ведут к рисованию прямоугольника из звездочек на экране, поскольку мы не вызывали функцию, а только объявили ее. Объявление функции откладывает на будущее заключенные в ней строки кода, ассоциируя их с выбранным именем функции – в нашем случае это drawBox, – но не выполняет их немедленно. Программа на языке Python, состоящая исключительно из объявлений функций, имеет право на существование, но при запуске не будет генерировать никакого выхода.

Функцию drawBox можно вызвать в программе, обратившись к ней по имени со скобками. Добавление следующей строки к коду (без отступов) позволит осуществить вызов функции drawBox и вывести на экран прямоугольник.

drawBox()

Если следом вставить еще одну такую строку кода, на экран будет выведено два прямоугольника, а если три, то три. Функции могут быть вызваны в программе столько раз, сколько необходимо для решения той или иной задачи, и из самых разных мест. При каждом очередном вызове функции выполняется ее тело. По окончании выполнения функции программа продолжается с инструкции, следующей за строкой вызова функции.
1   ...   16   17   18   19   20   21   22   23   ...   69


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