"Укус питона" 🐍
159 subscribers
45 photos
1 file
19 links
A Byte of Python (Russian), Версия 2.02

Официальная страница этой книги находится по адресу https://python.swaroopch.com , где
вы можете прочитать саму книгу, скачать её последнюю версию, купить её печатный вариант и оставить свои отзывы.
Download Telegram
Оператор break

Оператор break служит для прерывания[7] цикла, т.е. остановки выполнения команд даже если условие выполнения цикла ещё не приняло значения False или последовательность элементов не закончилась.

Важно отметить, что если циклы for или while прервать оператором break, соответствующие им блоки else выполняться не будут.

Пример: (сохраните как break.py)

while True:
s = input('Введите что-нибудь : ')
if s == 'выход':
break
print('Длина строки:', len(s))
print('Завершение')

Вывод:

$ python break.py
Введите что-нибудь : Программировать весело.
Длина строки: 23
Введите что-нибудь : Если работа скучна,
Длина строки: 19
Введите что-нибудь : Чтобы придать ей весёлый тон -
Длина строки: 30
Введите что-нибудь : используй Python!
Длина строки: 23
Введите что-нибудь : выход
Завершение

Как это работает:

В этой программе мы многократно считываем пользовательский ввод и выводим на экран длину каждой введённой строки. Для остановки программы мы вводим специальное условие, проверяющее, совпадает ли пользовательский ввод со строкой 'выход'. Мы останавливаем программу прерыванием цикла оператором break и достигаем её конца.

Длина введённой строки может быть найдена при помощи встроенной функции len.

Помните также, что оператор break может применяться и в цикле for.
Оператор continue

Оператор 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 – англ. “продолжать” (прим.перев.)
ГЛАВА IV
ФУНКЦИИ
🕐
Функции – это многократно используемые фрагменты программы. Они позволяют дать имя определённому блоку команд с тем, чтобы впоследствии запускать этот блок по указанному имени в любом месте программы и сколь угодно много раз. Это называется вызовом функции. Мы уже использовали много встроенных функций, как то 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)

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 значение 2. Имя x локально для нашей функции. Поэтому когда мы заменяем значение x в функции, x, объявленный в основном блоке, остаётся незатронутым.

Последним вызовом функции print мы выводим значение x, указанное в основном блоке, подтверждая таким образом, что оно не изменилось при локальном присваивании значения в ранее вызванной функции.
Зарезервированное слово “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