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

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


Скачать 2.24 Mb.
НазваниеСборник упражнений Введение в язык Python с задачами и решениями Бен Стивенсон Москва, 2021 удк 004. 438Python
Анкоркнига заданий пайтон
Дата02.10.2022
Размер2.24 Mb.
Формат файлаdocx
Имя файлакнига практических заданий, pyton.docx
ТипСборник упражнений
#709959
страница6 из 69
1   2   3   4   5   6   7   8   9   ...   69

Глава 2 Принятие решений


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

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

2.1. выражения if


В программах, написанных на языке Python, ветвление осуществляется при помощи ключевого слова if. Выражение if включает в себя одно или несколько условий, а также тело выражения. При выполнении условного выражения происходит оценка заданного условия, на основании чего принимается решение, будут ли выполняться инструкции в теле выражения. Если результатом условного выражения будет True (Истина), то тело выполнится, после чего программа продолжится. Если же в результате проверки условия получится False (Ложь), тело будет пропущено, а выполнение программы продолжится с первой строки после тела.

Условия в выражении if могут быть достаточно сложными, а результат может принимать значение True или False. Такие выражения называются булевыми в честь Джорджа Буля (George Boole) (1815–1864) – пионера в области формальной логики.

Выражения if часто включают в себя операторы отношения (relational operator), сравнивающие значения, переменные или целые сложные вы-

ражения. Операторы отношения, присутствующие в языке Python, перечислены в табл. 2.1.

Таблица 2.1. Операторы отношения в языке Python


Оператор отношения

Значение

<

Меньше

<=

Меньше или равно

>

Больше

>=

Больше или равно

==

Равно

!=

Не равно

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

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

# Запрашиваем значение у пользователя num = float(input("Введите число: ")) # Сохраняем подходящее значение в переменной result if num == 0:

result = "Введен ноль" if num != 0:

result = "Введен не ноль" # Отобразим результат print(result)

2.2. выражения if-else


В предыдущей программе в переменную result записывалось одно строковое значение, если пользователь ввел ноль, и другое, если ввел число, отличное от нуля. Чаще всего условные выражения строятся таким образом, что всегда будет выполняться какое-то одно условие из перечисленных. В таких конструкциях два условия одновременно выполняться не могут, но при этом одно из них всегда будет выполнено. Подобные условия называются взаимоисключающими (mutually exclusive).

Выражение if-else состоит из части if и соответствующего ему тела, а также части else – без условия, но со своим телом. Во время запуска программы происходит проверка условия. Если его результат будет True, выполнится тело условного выражения if, а тело else будет пропущено. В противном случае все будет наоборот: тело выражения if будет пропущено, а тело else выполнится. Тела обоих выражений одновременно не могут быть выполнены, как и не могут быть пропущены. В таких случаях, когда условия являются взаимоисключающими, можно использовать выражение if–else вместо двух последовательных if. Применение конструкции if–else более предпочтительно, поскольку в этом случае необходимо будет написать только одно условие, при выполнении программы будет выполняться только оно, и к тому же в случае возникновения ошибки или изменения логики программы исправлять вам придется лишь одно условие. Наша предыдущая программа, переписанная под использование выражения if–else, будет выглядеть следующим образом:

# Запрашивает значение у пользователя num = float(input("Введите число: ")) # Сохраняем подходящее значение в переменной result if num == 0:

result = "Введен ноль" else:

result = "Введен не ноль" # Отобразим результат print(result)

При вводе пользователем нуля условное выражение выдаст результат True, и в переменную result будет записано нужное выражение. В этом случае выражение else полностью пропускается. В обратной ситуации, когда пользователь ввел число, отличное от нуля, результатом условного выражения будет False, так что пропущено будет тело выражения if, а выполнится тело выражения else, и в переменную попадет строка о том, что пользователь ввел ненулевое значение. В обоих случаях Python продолжит выполнение с инструкции print, в результате чего ответ будет выведен на

экран.
1   2   3   4   5   6   7   8   9   ...   69


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