УПРАЖНЕНИЯ
4-14 . Просмотрите исходное руководство по стилю PEP 8 по адресу https://python .org/dev/
peps/pep-0008/ . Пока вы будете пользоваться им относительно редко, но просмотреть его
будет интересно .
4-15 . Анализ кода: выберите три программы, написанные в этой главе, и измените каждую
в соответствии с рекомендациями PEP 8 .
• Используйте четыре пробела для каждого уровня отступов . Настройте текстовый
редактор так, чтобы он вставлял четыре пробела при каждом нажатии клавиши
табуляции, если это не было сделано ранее (за инструкциями обращайтесь к при-
ложению Б) .
• Используйте менее 80 символов в каждой строке . Настройте редактор так, чтобы он
отображал вертикальную черту в позиции 80-го символа .
• Не злоупотребляйте пустыми строками в файлах программ .
82 Глава 4 • Работа со списками
Итоги
В этой главе вы научились эффективно работать с элементами списка. Вы узнали,
как работать со списком в цикле
for
, как Python использует отступы для опреде-
ления структуры программы и как избежать некоторых типичных ошибок при
использовании отступов. Вы научились создавать простые числовые списки, а так-
же изучили некоторые операции с числовыми списками. Вы узнали, как создать
срез списка для работы с подмножеством элементов и как правильно копировать
списки с использованием среза. Глава завершается описанием кортежей, до опре-
деленной степени защищающих наборы значений, которые не должны изменяться,
и рекомендациями по стилевому оформлению вашего кода (сложность которого со
временем только возрастает) для упрощения его чтения.
В главе 5 мы займемся обработкой различных условий с использованием команд
if
.
Вы научитесь группировать относительно сложные наборы проверок для обработ-
ки именно той ситуации или информации, которая вам нужна. Также в этой главе
будет рассматриваться использование команд
if
при переборе элементов списка
для выполнения действий с элементами, выбранными по некоторому условию.
5
Команды if
Программисту часто приходится проверять наборы условий и принимать решения
в зависимости от этих условий. Команда
if
в языке Python позволяет проверить
текущее состояние программы и выбрать дальнейшие действия в зависимости
от результатов проверки.
В этой главе вы научитесь писать условные проверки для любых интересующих
вас условий. Мы начнем с простых команд
if
, а затем перейдем к более сложным
сериям команд
if
для проверки комбинированных условий. Затем эта концепция
будет применена к спискам; вы узнаете, как написать цикл, который выполняет
с большинством элементов списка одну операцию, и о том, что для некоторых
элементов с конкретными значениями применяется особая обработка.
Простой пример
Следующий короткий пример показывает, как правильно организовать обработ-
ку специальных ситуаций с использованием
if
. Допустим, у вас имеется список
машин, и вы хотите вывести название каждой машины. Названия большинства
машин должны записываться с капитализацией (первая буква в верхнем регистре,
остальные в нижнем). С другой стороны, значение
'bmw'
должно записываться
в верхнем регистре. Следующий код перебирает список названий машин и ищет
в нем значение
'bmw'
. Для всех элементов, содержащих значение
'bmw'
, значение
выводится в верхнем регистре:
cars.py
cars = ['audi', 'bmw', 'subaru', 'toyota']
for car in cars:
if car == 'bmw':
print(car.upper())
else:
print(car.title())
Цикл в этом примере сначала проверяет, содержит ли
car
значение
'bmw'
. Если
проверка дает положительный результат, то значение выводится в верхнем ре-
гистре. Если
car
содержит все что угодно, кроме
'bmw'
, то при выводе значения
применяется капитализация:
Audi
BMW
84 Глава 5 • Команды if
Subaru
Toyota
В этом примере объединяются несколько концепций, о которых вы узнаете в этой
главе. Для начала рассмотрим основные конструкции, применяемые для проверки
условий в программах.
Проверка условий
В каждой команде
if
центральное место занимает выражение, результатом которо-
го является логическая истина (
True
) или логическая ложь (False); это выражение
называется условием. В зависимости от результата проверки Python решает, должен
ли выполняться код в команде
if
. Если результат условия равен
True
, то Python
выполняет код, следующий за командой
if
.
Проверка равенства
Во многих условиях текущее значение переменной сравнивается с конкретным
значением, интересующим вас. Простейшее условие проверяет, равно ли значение
переменной конкретной величине:
>>> car = 'bmw'
>>> car == 'bmw'
True
В строке переменной
car
присваивается значение
'bmw'
; операция выполняется
одним знаком
=
, как вы уже неоднократно видели. Строка проверяет, равно ли
значение
car
строке
'bmw'
; для проверки используется двойной знак равенства (
==
).
Этот оператор возвращает
True
, если значения слева и справа от оператора равны;
если же значения не совпадают, оператор возвращает
False
. В нашем примере
значения совпадают, поэтому Python возвращает
True
.
Если
car
принимает любое другое значение вместо
'bmw'
, проверка возвращает
False
:
>>> car = 'audi'
>>> car == 'bmw'
False
Одиночный знак равенства выполняет операцию; код можно прочитать в форме
«Присвоить
car
значение
'audi'
». С другой стороны, двойной знак равенства, как
в строке , задает вопрос: «Значение
car
равно
'bmw'
?» Такое применение знаков
равенства встречается во многих языках программирования.
Проверка равенства без учета регистра
В языке Python проверка равенства выполняется с учетом регистра. Например, два
значения с разным регистром символов равными не считаются:
Проверка условий 85
>>> car = 'Audi'
>>> car == 'audi'
False
Если регистр символов важен, такое поведение приносит пользу. Но если проверка
должна выполняться на уровне символов без учета регистра, преобразуйте значение
переменной к нижнему регистру перед выполнением сравнения:
>>> car = 'Audi'
>>> car.lower() == 'audi'
True
Условие возвращает
True
независимо от регистра символов
'Audi'
, потому что
проверка теперь выполняется без учета регистра. Функция
lower()
не изменяет
значения, которое изначально хранилось в
car
, так что сравнение не отражается
на исходной переменной:
>>> car = 'Audi'
>>> car.lower() == 'audi'
True
>>> car
'Audi'
В точке строка
'Audi'
сохраняется в переменной
car
. В точке значение
car
приводится к нижнему регистру и сравнивается со значением строки
'audi'
, также
записанным в нижнем регистре. Две строки совпадают, поэтому Python возвращает
True
. Вывод в точке показывает, что значение, хранящееся в
car
, не изменилось
в результате проверки.
Веб-сайты устанавливают определенные правила для данных, вводимых пользова-
телями подобным образом. Например, сайт может использовать проверку условия,
чтобы убедиться в том, что имя каждого пользователя уникально (а не совпадает
с именем другого пользователя, отличаясь от него только регистром символов).
Когда кто-то указывает новое имя пользователя, это имя преобразуется к нижнему
регистру и сравнивается с версиями всех существующих имен в нижнем регистре.
Во время такой проверки имя
'John'
будет отклонено, если в системе уже исполь-
зуется любая разновидность
'john'
.
Проверка неравенства
Если вы хотите проверить, что два значения различны, используйте комбинацию
из восклицательного знака и знака равенства (
!=
). Восклицательный знак пред-
ставляет отрицание, как и во многих языках программирования.
Для знакомства с оператором неравенства мы воспользуемся другой командой
if
.
В переменной хранится заказанное дополнение к пицце; если клиент не заказал
анчоусы (anchovies), программа выводит сообщение:
Достарыңызбен бөлісу: |