Оператор continue
Оператор continue используется для указания Python, что необходимо пропустить все оставшиеся команды в текущем блоке цикла и продолжить[9] со следующей итерации цикла.
Пример: (сохраните как continue.py)
В этой программе мы запрашиваем ввод со стороны пользователя, но обрабатываем введённую строку только если она имеет длину хотя бы в 3 символа. Итак, мы используем встроенную функцию len для получения длины строки, и если длина менее 3, мы пропускаем остальные действия в блоке при помощи оператора continue. В противном случае все остальные команды в цикле выполняются, производя любые манипуляции, которые нам нужны.
Заметьте, что оператор continue также работает и с циклом for.
Оператор continue используется для указания Python, что необходимо пропустить все оставшиеся команды в текущем блоке цикла и продолжить[9] со следующей итерации цикла.
Пример: (сохраните как continue.py)
while True:Вывод:
s = input('Введите что-нибудь : ')
if s == 'выход':
break
if len(s) < 3:
print('Слишком мало')
continue
print('Введённая строка достаточной длины')
# Разные другие действия здесь...
$ python continue.pyКак это работает:
Введите что-нибудь : a
Слишком мало
Введите что-нибудь : 12
Слишком мало
Введите что-нибудь : абв
Введённая строка достаточной длины
Введите что-нибудь : выход
В этой программе мы запрашиваем ввод со стороны пользователя, но обрабатываем введённую строку только если она имеет длину хотя бы в 3 символа. Итак, мы используем встроенную функцию len для получения длины строки, и если длина менее 3, мы пропускаем остальные действия в блоке при помощи оператора continue. В противном случае все остальные команды в цикле выполняются, производя любые манипуляции, которые нам нужны.
Заметьте, что оператор continue также работает и с циклом for.
Резюме
Мы увидели, как использовать три оператора для управления потоком команд: if, while и for, а также связанные с ними операторы break и continue. Это наиболее часто используемые конструкции Python, поэтому овладеть ими очень важно.
Далее мы увидим, как создавать и использовать функции.
Примечания
[1] if – англ. “если” (прим.перев.)
[2] Соответствует булевому значению True (прим.перев.)
[3] else – англ. “иначе”, “в противном случае” (прим.перев.)
[4] nested – англ. “вложенный” (прим.перев.)
[5] range – англ. “диапазон”, “интервал” (прим.перев.)
[6] list – англ. “список” (прим.перев.)
[7] break – англ. “разбивать”, “разрывать” (прим.перев.)
[8] Swaroop’s Poetic Python:
Programming is fun.
When the work is done,
if you wanna make your work also fun:
use Python!
[9] continue – англ. “продолжать” (прим.перев.)
Мы увидели, как использовать три оператора для управления потоком команд: if, while и for, а также связанные с ними операторы break и continue. Это наиболее часто используемые конструкции Python, поэтому овладеть ими очень важно.
Далее мы увидим, как создавать и использовать функции.
Примечания
[1] if – англ. “если” (прим.перев.)
[2] Соответствует булевому значению True (прим.перев.)
[3] else – англ. “иначе”, “в противном случае” (прим.перев.)
[4] nested – англ. “вложенный” (прим.перев.)
[5] range – англ. “диапазон”, “интервал” (прим.перев.)
[6] list – англ. “список” (прим.перев.)
[7] break – англ. “разбивать”, “разрывать” (прим.перев.)
[8] Swaroop’s Poetic Python:
Programming is fun.
When the work is done,
if you wanna make your work also fun:
use Python!
[9] continue – англ. “продолжать” (прим.перев.)
Функции – это многократно используемые фрагменты программы. Они позволяют дать имя определённому блоку команд с тем, чтобы впоследствии запускать этот блок по указанному имени в любом месте программы и сколь угодно много раз. Это называется вызовом функции. Мы уже использовали много встроенных функций, как то
Функция – это, пожалуй, наиболее важный строительный блок любой нетривиальной программы (на любом языке программирования), поэтому в этой главе мы рассмотрим различные аспекты функций.
Функции определяются при помощи зарезервированного слова
len и range.Функция – это, пожалуй, наиболее важный строительный блок любой нетривиальной программы (на любом языке программирования), поэтому в этой главе мы рассмотрим различные аспекты функций.
Функции определяются при помощи зарезервированного слова
def. После этого слова указывается имя функции, за которым следует пара скобок, в которых можно указать имена некоторых переменных, и заключительное двоеточие в конце строки. Далее следует блок команд, составляющих функцию. На примере можно видеть, что на самом деле это очень просто:Пример: (сохраните как function1.py)
def sayHello():
print('Привет, Мир!') # блок, принадлежащий функции
# Конец функции
sayHello() # вызов функции
sayHello() # ещё один вызов функции
Вывод:$ python function1.py
Привет, Мир!
Привет, Мир!Как это работает:
Мы определили функцию с именем
Обратите внимание, что мы можем вызывать одну и ту же функцию много раз, а значит нет необходимости писать один и тот же код снова и снова.
Мы определили функцию с именем
sayHello, используя описанный выше синтаксис. Эта функция не принимает параметров, поэтому в скобках не объявлены какие-либо переменные. Параметры функции – это некие входные данные, которые мы можем передать функции, чтобы получить соответствующий им результат.Обратите внимание, что мы можем вызывать одну и ту же функцию много раз, а значит нет необходимости писать один и тот же код снова и снова.
Параметры функций
Функции могут принимать параметры, т.е. некоторые значения, передаваемые функции для того, чтобы она что-либо сделала с ними. Эти параметры похожи на переменные, за исключением того, что значение этих переменных указывается при вызове функции, и во время работы функции им уже присвоены их значения.
Параметры указываются в скобках при объявлении функции и разделяются запятыми. Аналогично мы передаём значения, когда вызываем функцию. Обратите внимание на терминологию: имена, указанные в объявлении функции, называются параметрами, тогда как значения, которые вы передаёте в функцию при её вызове, – аргументами.
Функции могут принимать параметры, т.е. некоторые значения, передаваемые функции для того, чтобы она что-либо сделала с ними. Эти параметры похожи на переменные, за исключением того, что значение этих переменных указывается при вызове функции, и во время работы функции им уже присвоены их значения.
Параметры указываются в скобках при объявлении функции и разделяются запятыми. Аналогично мы передаём значения, когда вызываем функцию. Обратите внимание на терминологию: имена, указанные в объявлении функции, называются параметрами, тогда как значения, которые вы передаёте в функцию при её вызове, – аргументами.
Пример: (сохраните как func_param.py)
def printMax(a, b):
if a > b:
print(a, 'максимально')
elif a == b:
print(a, 'равно', b)
else:
print(b, 'максимально')
printMax(3, 4) # прямая передача значений
x = 5
y = 7
printMax(x, y) # передача переменных в качестве аргументов
Вывод:$ python func_param.py
4 максимально
7 максимальноКак это работает:
Здесь мы определили функцию с именем
При первом вызове функции
Здесь мы определили функцию с именем
printMax, которая использует два параметра с именами a и b. Мы находим наибольшее число с применением простого оператора if..else и выводим это число.При первом вызове функции
printMax мы напрямую передаём числа в качестве аргументов. Во втором случае мы вызываем функцию с переменными в качестве аргументов. printMax(x, y) назначает значение аргумента x параметру a, а значение аргумента y – параметру b. В обоих случаях функция printMax работает одинаково.Локальные переменные
При объявлении переменных внутри определения функции, они никоим образом не связаны с другими переменными с таким же именем за пределами функции – т.е. имена переменных являются локальными в функции. Это называется областью видимости переменной. Область видимости всех переменных ограничена блоком, в котором они объявлены, начиная с точки объявления имени.
Пример: (сохраните как func_local.py)
При объявлении переменных внутри определения функции, они никоим образом не связаны с другими переменными с таким же именем за пределами функции – т.е. имена переменных являются локальными в функции. Это называется областью видимости переменной. Область видимости всех переменных ограничена блоком, в котором они объявлены, начиная с точки объявления имени.
Пример: (сохраните как func_local.py)
x = 50Вывод:
def func(x):
print('x равен', x)
x = 2
print('Замена локального x на', x)
func(x)
print('x по-прежнему', x)
$ python func_local.py
x равен 50
Замена локального x на 2
x по-прежнему 50Как это работает:
При первом выводе значения, присвоенного имени x, в первой строке функции Python использует значение параметра, объявленного в основном блоке, выше определения функции.
Далее мы назначаем
Последним вызовом функции
При первом выводе значения, присвоенного имени x, в первой строке функции Python использует значение параметра, объявленного в основном блоке, выше определения функции.
Далее мы назначаем
x значение 2. Имя x локально для нашей функции. Поэтому когда мы заменяем значение x в функции, x, объявленный в основном блоке, остаётся незатронутым.Последним вызовом функции
print мы выводим значение x, указанное в основном блоке, подтверждая таким образом, что оно не изменилось при локальном присваивании значения в ранее вызванной функции.Зарезервированное слово “global”
Чтобы присвоить некоторое значение переменной, определённой на высшем уровне программы (т.е. не в какой-либо области видимости, как то функции или классы), необходимо указать Python, что её имя не локально, а глобально (global). Сделаем это при помощи зарезервированного слова
Можно использовать уже существующие значения переменных, определённых за пределами функции (при условии, что внутри функции не было объявлено переменной с таким же именем). Однако, это не приветствуется, и его следует избегать, поскольку человеку, читающему текст программы, будет непонятно, где находится объявление переменной. Использование зарезервированного слова
Чтобы присвоить некоторое значение переменной, определённой на высшем уровне программы (т.е. не в какой-либо области видимости, как то функции или классы), необходимо указать Python, что её имя не локально, а глобально (global). Сделаем это при помощи зарезервированного слова
global. Без применения зарезервированного слова global невозможно присвоить значение переменной, определённой за пределами функции.Можно использовать уже существующие значения переменных, определённых за пределами функции (при условии, что внутри функции не было объявлено переменной с таким же именем). Однако, это не приветствуется, и его следует избегать, поскольку человеку, читающему текст программы, будет непонятно, где находится объявление переменной. Использование зарезервированного слова
global достаточно ясно показывает, что переменная объявлена в самом внешнем блоке.👍1
Пример: (сохраните как func_global.py)
x = 50
def func():
global x
print('x равно', x)
x = 2
print('Заменяем глобальное значение x на', x)
func()
print('Значение x составляет', x)
Вывод:$ python func_global.py
x равно 50
Заменяем глобальное значение x на 2
Значение x составляет 2Как это работает:
Зарезервированное слово global используется для того, чтобы объявить, что x – это глобальная переменная, а значит, когда мы присваиваем значение имени x внутри функции, это изменение отразится на значении переменной x в основном блоке программы.
Используя одно зарезервированное слово global, можно объявить сразу несколько переменных: global x, y, z.
Зарезервированное слово global используется для того, чтобы объявить, что x – это глобальная переменная, а значит, когда мы присваиваем значение имени x внутри функции, это изменение отразится на значении переменной x в основном блоке программы.
Используя одно зарезервированное слово global, можно объявить сразу несколько переменных: global x, y, z.
Зарезервированное слово “nonlocal”
Мы увидели, как получать доступ к переменным в локальной и глобальной области видимости. Есть ещё один тип области видимости, называемый “нелокальной” (nonlocal) областью видимости, который представляет собой нечто среднее между первыми двумя. Нелокальные области видимости встречаются, когда вы определяете функции внутри функций.
Поскольку в Python всё является выполнимым кодом, вы можете определять функции где угодно.
Мы увидели, как получать доступ к переменным в локальной и глобальной области видимости. Есть ещё один тип области видимости, называемый “нелокальной” (nonlocal) областью видимости, который представляет собой нечто среднее между первыми двумя. Нелокальные области видимости встречаются, когда вы определяете функции внутри функций.
Поскольку в Python всё является выполнимым кодом, вы можете определять функции где угодно.