Кратко о Python — 2

В этой части речь пойдет об операторах, создающих структурные элементы программ: ветвления, циклы, функции...
python-title

<< Кратко о Python — 1

В этой части речь пойдет об операторах, создающих структурные элементы программ.

Условный оператор в Python

В.М. Васнецов. «Витязь на распутье»

Ветвление — одна из трех базовых конструкций структурного программирования. Используется в тех случаях, когда выполнение или невыполнение того или иного набора команд зависит от результата проверки некоторого условия. В большинстве языков программирования ветвление реализуется как условный оператор (условная инструкция) if и как оператор множественного выбора case (switch).

В Python отдельного оператора множественного выбора нет. Все варианты выбора строятся с использованием трех ключевых слов: ifelif и else. 

if

if (если) — единственный обязательный элемент условного оператора. Он начинает запись ветвления и определяет условие, при котором будет выполняться первая (или единственная) последовательность команд.

else

Ключевое слово else (иначе) начинает последний блок ветвления — команды, которые будут выполнены, когда условие (все условия) ложны (имеют значение False).

elif

Когда вариантов действий больше двух, между блоками if и else ставят нужное количество блоков, начинающихся ключевым словом elif (сокращение от else if — иначе если). Команды блока будут выполнены, если все предыдущие условия ложны, а это – истинно.

if условие :
      операторы # если выполнено первое условие
elif условие:
      операторы # если первое условие не выполнено,
                # а второе — выполнено
else:
      операторы # когда не выполнено ни одно из условий

Отступы в Python

Обратите внимание: в Python для выделения блоков операторов используются отступы (пробелы в начале строки), а не специальные символы (например, фигурные скобки в C, Java, PHP) или слова (begin и end в Pascal). Важно, чтобы отступ у всех строк блока был одинаковым (принято сдвигать операторы вложенного блока на 4 пробела).

if x > 0 :
    print('положительное')
elif x < 0 :
    print('отрицательное')
else :
    print('ноль')

Тернарная условная операция

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

выражение_1 if условие else выражение_2

Ее можно прочесть как «выражение 1, если выполнено условие, а иначе — выражение 2».

max = a if a > b else b

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

Циклы в Python

Лунный цикл

Цикл — третья базовая структура в программировании. Эта управляющая конструкция предназначена для многократного повторения некоторой последовательности команд.

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

Цикл while

Оператор цикла while предназначен для организации цикла с предусловием (цикла «пока»). Тело этого цикла повторяется, пока истинно условие повторения. Проверка условия происходит перед выполнением команд тела цикла. Оператор выглядит так:

while условие_повторения :
      операторы

Например:

n = 1
while n < 50 : # пока n меньше 50
    print(n)   # вывести n
    n *= 2     # увеличить n в два раза

В результате будет выведено:

1
2
4
8
16
32

Для изменения «нормального» выполнения цикла в Python есть два оператора — continue и break. Первый служит для того, чтобы прервать текущую итерацию и перейти к началу следующей:

n = 1
while n < 100 :
    if n < 10 :   # если n < 10,
        continue  # перейти к следующей итерации
    print(n)
    n *= 2

Оператор break прерывает выполнение всего цикла. Это можно, в частности, использовать, чтобы организовать аналог отсутствующего в Python цикла с постусловием (цикла «до»). Например:

while True :
    pass = input('Введите пароль:')
    if pass == secret :
        break

Цикл for

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

days = ['понедельник','вторник','среда', 'четверг', 'пятница', 'суббота', 'воскресенье'] 
for day in days:
        print(day)

Для более «традиционного» применения цикла for — когда параметр отсчитывает количество повторений — используют функцию range. Например:

for i in range(5):
      print('Python')

В результате слово Python будет напечатало пять раз.  

Range

Функция range создает список, содержащий последовательность целых чисел. Она может быть вызвана с одним, двумя или тремя аргументами. В случае одного аргумента результатом будет заданное количество чисел, начиная с нуля.

numbers = list(range(10)) 
print(numbers)

В результате будет выведено [0, 1, 2, 3, 4, 5, 6, 7, 8, 9].

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

numbers = list(range(5, 10)) 
print(numbers)

Теперь на экране будет [5, 6, 7, 8, 9].

Третий аргумент, если он указан, является шагом, т.е. величиной, на сколько следующее число должно быть больше предыдущего. Например:

numbers = list(range(5,10,2)) 
print(numbers)

В этом случае результатом станет  [5,7,9].  

Функции в Python

Функция — это именованный блок кода, выполняющий некоторую задачу, который можно использовать в нескольких местах программы. Внешне вызов функции выглядит как слово, после которого есть круглые скобки. В скобках могут быть записаны какие-либо выражения — параметры функции. Например, функциями являются уже неоднократно использованные print и input:

print(2 * 2) # параметром является выражение, результат 
             # которого выводится на экран

Наряду со встроенными функциями, можно создавать свои, используя оператор def. Например:

def pythagoras(a, b) :
    c = (a ** 2 + b ** 2) ** 0.5
    print(c)

Описав такую функцию, ее можно будет вызывать по имени. Например, написав

pythagoras(3, 4)

мы увидим на экране результат вычисления — 5.0.

Важно: описание функции в программе должно стоять до ее первого вызова.

Если необходимо, чтобы функция возвращала результат, используют оператор return:

def pythagoras(a, b) :
    c = (a ** 2 + b ** 2) ** 0.5
    return c

Теперь функция сама ничего на экран не выводит. Зато ее можно использовать в выражении:

print(pythagoras(3, 4) * pythagoras(5,7) / 2)

Заметьте: оператор return завершает выполнение функции, даже если после него есть еще какие-либо операторы.

Интересно, что в Python функция может возвращать сразу несколько значений:

def default_user() :
    name = 'Вася'
    age = 12
    return name, age
user_name, user_age = default_user()
print(user_name, user_age, sep='\t')

Модули в Python

Модуль в языке Python представляет отдельный файл с кодом, который можно повторно использовать в других программах. В каждом модуле определяется одна или несколько функций (или методов), предназначенных для решения определенного типа задач.

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

Для доступа к функциям модуля его сначала нужно импортировать, написав в начале программы import имя_модуля. Например, чтобы смоделировать бросание игральных костей, подключим модуль random:

import random 
for i in range(5):
      value = random.randint(1, 6)
      print(value)

При каждом запуске будет печататься различный набор из 5 чисел в диапазоне от 1 до 6. Например, 2 3 1 3 5

Обратите внимание: в данном случае для вызова функции нужно перед ее именем указывать имя модуля. Однако, можно импортировать отдельные функции так, что имя модуля при вызове уже не потребуется. Для этого используется такой формат: from имя_модуля import имя_функции. Например:

from math import sqrt, pi

Функцию можно импортировать под другим именем, используя слово as. Например:

from math import sqrt as square_root

Теперь функцию нужно будет вызывать примерно вот так: square_root(5).

Кратко о Python — 3 >>

Добавить комментарий