Управление потоком выполнения. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Управление потоком выполнения.



Оператор if.

Возможно наиболее хорошо известным типом оператора является if.

>>> x = int(input("Пожалуйста, введите число: "))Пожалуйста, введите число: 42>>> if x < 0:...     x = 0...     print('Отрицательное изменяется на 0')... elif x == 0:...     print('Ноль ')... elif x == 1:...     print('Один ')... else:...     print('Больше ')...Больше

Частей elif быть больше или не быть вообще, часть else также необязательна. Ключевое слово 'elif' есть сокращение от 'else if' и полезно для избежания излишних отступов. Последовательность if... elif... elif... есть замена для операторов switch или case, встречающихся в других языках

Оператор While.

Цикл while (“пока”) позволяет выполнить одну и ту же последовательность действий, пока проверяемое условие истинно. Условие записывается до тела цикла и проверяется до выполнения тела цикла. Как правило, цикл while используется, когда невозможно определить точное значение количества проходов исполнения цикла.

 

i = 0

while i < 10:

print(i)

i = i + 1

 

 

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

 

Оператор for.

В Python оператор for немного отличается от того, что вы могли использовать в C или Pascal. Вместо того, чтобы всегда выполнять итерацию по арифметической прогрессии чисел (как в Pascal), или давая пользователю возможность определить как шаг итерации, так и условие остановки (как в C), в Python оператор for перебирает элементы любой последовательности (список или строку) в том порядке, в котором они появляются в последовательности. Например:

>>> # Измерить несколько слов:... words = [ 'cat', 'window', 'defenestrate' ]>>> for w in words:...     print(w, len(w))...cat 3window 6defenestrate 12

Если вам надо изменить последовательность, вы перебираете внутри цикла (например, для дублирования выбранных элементов), рекомендуется сначала сделать копию. Выполнение итерации над последовательностью безоговорочно не создает ее копию. Взятие среза делает это особенно удобным:

>>> for w in words[:]: # Цикл по срезу-копии целого списка....      if len(w) > 6:...         words.insert(0, w)...>>> words[ 'defenestrate', 'cat', 'window', 'defenestrate' ]

С for w in words: пример попытался бы создать бесконечный список, вставляя defenestrate опять и опять.

Функция range().

Если вам надо перебрать последовательность чисел, пригодится встроенная функция range(). Она генерирует арифметические прогрессии:

>>> for i in range(5):...     print(i)...01234

Заданная конечная точка никогда не входит в генерируемую последовательность; range(10) генерирует 10 значений, индексируемые как обычная последовательность длинной 10. Возможно установить другое число в качестве начала диапазона или указать другое приращение (даже отрицательное; иногда приращение называют "шагом"):

range(5, 10) от 5 по 9 range(0, 10, 3) 0, 3, 6, 9 range(-10, -100, -30) -10, -40, -70

Для перебора по индексам последовательности, вы можете сочетать range() и len() как в следующем примере:

>>> a = [ 'Mary', 'had', 'a', 'little', 'lamb' ]>>> for i in range(len(a)):...     print(i, a[i])...0 Mary1 had2 a3 little4 lamb

В большинстве подобных случаев, однако, удобно использовать функцию enumerate().

Странная вещь случится, если вы просто напечатаете диапазон:

>>> print(range(10))range(0, 10)

Во многих отношениях объект, возвращаемый range(), ведет себя так, как будто это список, но на самом деле это не так. Это объект, который возвращает последовательные элементы желаемой последовательности, когда вы перебираете его, но это на самом деле не список, тем самым экономится пространство.

Мы говорим, что объект является iterable, то есть подходит в качестве цели для функций и конструкций, которые ожидают что-то, из чего они могут получить последовательные элементы, пока они не исчерпаны. Мы видели, что оператор for именно такой iterator. Функций list() есть другой; она создает списки из итерируемых (перечисляемых) объектов:

>>> list(range(5))[0, 1, 2, 3, 4]

 



Поделиться:


Последнее изменение этой страницы: 2021-07-18; просмотров: 78; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 13.58.121.131 (0.006 с.)