Интерактивный учебник языка Python. Операторы и выражения на языке Python

  • Перевод

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

4. Выбор значений

4.1. Правильный путь
Начиная с версии 2.5, Python поддерживает синтаксис «value_if_true if test else value_if_false». Таким образом, вы можете выбрать одно из двух значений, не прибегая к странному синтаксису и подробным пояснениям:
test = True # test = False result = "Test is True" if test else "Test is False" # result = "Test is True"
Увы, это всё еще немного некрасиво. Вы также можете использовать несколько таких конструкций в одной строке:
test1 = False test2 = True result = "Test1 is True" if test1 else "Test1 is False, test2 is True" if test2 else "Test1 and Test2 are both False"
Сначала выполняется первый if/else, а если test1 = false, выполняется второй if/else. Вы можете делать и более сложные вещи, особенно если воспользуетесь скобками.

Этот способ весьма новый, и я испытываю к нему смешанные чувства. Это правильная, понятная конструкция, она мне нравится… но она всё еще уродлива, особенно при использовании нескольких вложенных конструкций. Конечно, синтаксис всех уловок для выбора значений некрасив. У меня слабость к описанному ниже способу с and/or, сейчас я нахожу его интуитивным, сейчас я понимаю, как он работает. К тому же он ничуть не менее эффективен, чем «правильный» способ.

Хотя инлайновый if/else - новый, более правильный способ, вам всё же стоит ознакомиться со следующими пунктами. Даже если вы планируете использовать Python 2.5, вы встретите эти способы в старом коде. Разумеется, если вам нужна обратная совместимость, будет действительно лучше просмотреть их.

4.2. Уловка and/or
«and» и «or» в Python - сложные создания. Применение and к нескольким выражениям не просто возвращает True или False. Оно возвращает первое false-выражение, либо последнее из выражений, если все они true. Результат ожидаем: если все выражения верны, возвращается последнее, являющееся true; если одно из них false, оно и возвращается и преобразуется к False при проверке логического значения.

Аналогично, операция or возвращает первое true-значение, либо последнее, если ни одно из них не true.

Это вам не поможет, если вы просто проверяете логическое значение выражения. Но можно использовать and и or в других целях. Мой любимый способ - выбор значения в стиле, аналогичном тернарному оператору языка C «test? value_if_true: value_if_false»:
test = True # test = False result = test and "Test is True" or "Test is False" # теперь result = "Test is True"
Как это работает? Если test=true, оператор and пропускает его и возвращает второе (последнее) из данных ему значений: "Test is True" or "Test is False" . Далее, or вернет первое true выражение, т. е. "Test is True".

Если test=false, and вернет test, останется test or "Test is False" . Т. к. test=false, or его пропустит и вернет второе выражение, "Test is False".

Внимание, будьте осторожны со средним значением («if_true»). Если оно окажется false, выражение с or будет всегда пропускать его и возвращать последнее значение («if_false»), независимо от значения test.

После использования этого метода правильный способ (п. 4.1) кажется мне менее интуитивным. Если вам не нужна обратная совместимость, попробуйте оба способа и посмотрите, какой вам больше нравится. Если не можете определиться, используйте правильный.

Конечно, если вам нужна совместимость с предыдущими версиями Python, «правильный» способ не будет работать. В этом случае and/or - лучший выбор в большинстве ситуаций.

4.3. True/False в качестве индексов
Другой способ выбора из двух значений - использование True и False как индексов списка с учетом того факта, что False == 0 и True == 1:
test = True # test = False result = ["Test is False","Test is True"] # теперь result = "Test is True"
Этот способ более честный, и value_if_true не обязано быть true. Однако у него есть существенный недостаток: оба элемента списка вычисляются перед проверкой. Для строк и других простых элементов это не проблема. Но если каждый из них требует больших вычислений или операций ввода-вывода, вычисление обоих выражений недопустимо. Поэтому я предпочитаю обычную конструкцию или and/or.

Также заметьте, что этот способ работает только тогда, когда вы уверены, что test - булево значение, а не какой-то объект. Иначе придется писать bool(test) вместо test, чтобы он работал правильно.

5. Функции

5.1. Значения по умолчанию для аргументов вычисляются только один раз
Начнем этот раздел с предупреждения. Эта проблема много раз смущала многих программистов, включая меня, даже после того, как я разобрался в проблеме. Легко ошибиться, используя значения по умолчанию:
def function(item, stuff = ): stuff.append(item) print stuff function(1) # выводит "" function(2) # выводит "" !!!
Значения по умолчанию для аргументов вычисляются только один раз, в момент определения функции. Python просто присваивает это значение нужной переменной при каждом вызове функции. При этом он не проверяет, изменилось ли это значение. Поэтому, если вы изменили его, изменение будет в силе при следующих вызовах функции. В предыдущем примере, когда мы добавили значение к списку stuff, мы изменили его значение по умолчанию навсегда. Когда мы вызываем функцию снова, ожидая дефолтное значение, мы получаем измененное.

Решение проблемы: не используйте изменяемые объекты в качестве значений по умолчанию. Вы можете оставить всё как есть, если не изменяете их, но это плохая идея. Вот как следовало написать предыдущий пример:
def function(item, stuff = None): if stuff is None: stuff = stuff.append(item) print stuff function(1) # выводит "" function(2) # выводит "", как и ожидалось
None неизменяем (в любом случае, мы не пытаемся его изменить), так что мы обезопасили себя от внезапного изменения дефолтного значения.

С другой стороны, умный программист, возможно, превратит это в уловку для использования статических переменных, как в языке C.

5.1.1. Заставляем дефолтные значения вычисляться каждый раз
Если вы не хотите вносить в код функции лишний беспорядок, можно заставить интерпретатор заново вычислять значения аргументов перед каждым вызовом. Следующий декоратор делает это:
from copy import deepcopy def resetDefaults(f): defaults = f.func_defaults def resetter(*args, **kwds): f.func_defaults = deepcopy(defaults) return f(*args, **kwds) resetter.__name__ = f.__name__ return resetter
Просто примените этот декоратор к функции, чтобы получить ожидаемые результаты:
@resetDefaults # так мы применяем декоратор def function(item, stuff = ): stuff.append(item) print stuff function(1) # выводит "" function(2) # выводит "", как и ожидалось
5.2. Переменное число аргументов
Python позволяет использовать произвольное число аргументов в функциях. Сначала определяются обязательные аргументы (если они есть), затем нужно указать переменную со звездочкой. Python присвоит ей значение списка остальных (не именованных) аргументов:
def do_something(a, b, c, *args): print a, b, c, args do_something(1,2,3,4,5,6,7,8,9) # выводит "1, 2, 3, (4, 5, 6, 7, 8, 9)"
Зачем это нужно? Например, функция должна принимать несколько элементов и делать с ними одно и то же (например, складывать). Можно заставить пользователя передавать функции список: sum_all(). А можно позволить передавать произвольное число аргументов, тогда получится более чистый код: sum_all(1,2,3).

Функция также может иметь переменное число именованных аргументов. После определения всех остальных аргументов укажите переменную с "**" в начале. Python присвоит этой переменной словарь полученных именованных аргументов, кроме обязательных:
def do_something_else(a, b, c, *args, **kwargs): print a, b, c, args, kwargs do_something_else(1,2,3,4,5,6,7,8,9, timeout=1.5) # выводит "1, 2, 3, (4, 5, 6, 7, 8, 9), {"timeout": 1.5}"
Зачем так делать? Я считаю, самая распространенная причина - функция является оберткой другой функции (или функций), и неиспользуемые именованные аргументы могут быть переданы другой функции (см. п. 5.3).

5.2.1. Уточнение
Использование именованных аргументов и произвольного числа обычных аргументов после них, по-видимому, невозможно, потому что именованные аргументы должны быть определены до "*"-параметра. Например, представим функцию:
def do_something(a, b, c, actually_print = True, *args): if actually_print: print a, b, c, args
У нас проблема: не получится передать actually_print как именованный аргумент, если при этом нужно передать несколько неименованных. Оба следующих варианта вызовут ошибку:
do_something(1, 2, 3, 4, 5, actually_print = True) # actually_print сначала приравнивается к 4 (понятно, почему?), а затем # переопределяется, вызывая TypeError ("got multiple values for keyword argument") do_something(1, 2, 3, actually_print = True, 4, 5, 6) # Именованные аргументы не могут предшествовать обычным. Происходит SyntaxError. Единственный способ задать actually_print в этой ситуации - передать его как обычный аргумент: do_something(1, 2, 3, True, 4, 5, 6) # результат: "1, 2, 3, (4, 5, 6)"
Единственный способ задать actually_print в этой ситуации - передать его как обычный аргумент:
do_something(1, 2, 3, True, 4, 5, 6) # результат: "1, 2, 3, (4, 5, 6)"
5.3. Передача списка или словаря в качестве нескольких аргументов
Поскольку можно получить переданные аргументы в виде списка или словаря, нет ничего удивительного в том, что передавать аргументы функции тоже можно из списка или словаря. Синтаксис совершенно такой же, как в предыдущем пункте, нужно поставить перед списком звездочку:
args = pow(*args) # возвращает pow(5,2), т. е. 25
А для словаря (что используется чаще) нужно поставить две звездочки:
def do_something(actually_do_something=True, print_a_bunch_of_numbers=False): if actually_do_something: print "Something has been done" # if print_a_bunch_of_numbers: print range(10) kwargs = {"actually_do_something": True, "print_a_bunch_of_numbers": True} do_something(**kwargs) # печатает "Something has been done", затем ""
Историческая справка: в Python до версии 2.3 для этих целей использовалась встроенная функция apply (function, arg_list, keyword_arg_dict)".

О ператоры являются конструкциями, которые могут манипулировать значением операндов. Рассмотрим выражение 4 + 5 = 9. Здесь, 4 и 5 называются операндами и + называется оператором.

Типы операторов

Язык Python поддерживает следующие типы операторов:

  • Арифметические операторы
  • Сравнение (реляционные) операторы
  • Операторы присваивания
  • Логические операторы
  • Битовые операторы
  • Членские операторы
  • Операторы идентификации

Давайте рассмотрим все операторы один за другим.

Арифметические операторы в Python

а значение 10, а переменная б содержит значение 21, то:

оператор Описание пример
+ Сложение Добавление значений по обе стороны от оператора. а + b = 31
– Вычитание Вычитание правого операнда из левого операнда. а – b = -11
* Умножение Умножение значения по обе стороны от оператора a * b = 210
/ Деление Делит левый операнд на правый операнд б / а = 2,1
% Модуль Делит левый операнд на правый операнд и возвращает остаток б % а = 1
** Экспонента Выполняет экспоненциальный расчет на операторах а ** b = 10 в степени 20
// деление с округлением Отдел пола – Разделение операндов, где результат является фактором, в котором цифра после десятичной запятой удаляется. Но если один из операндов отрицателен, то результат округляется, т.е. округляется от нуля (по отношению к отрицательной бесконечности): 9 // 2 = 4 и 9,0 // 2,0 = 4,0, -11 // 3 = -4, -11,0 // 3 = -4,0

Операторы сравнения в Python

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

Предположим, переменная а содержит значение 10, а переменная б имеет значение 20, то:

оператор Описание пример
== Если значения двух операндов равны, то условие становится истинным. (а == б) не верно.
!= Если значения двух операндов не равны, то условие становится истинным. (а! = б) истинно.
> Если значение левого операнда больше значения правого операнда, то условие становится истинным. (а > б) не верно.
< Если значение левого операнда меньше значения правого операнда, то условие становится истинным. (а < б) истинно.
> = Если значение левого операнда больше или равно значению правого операнда, то условие становится истинным. (а >= б) не верно.
<= Если значение левого операнда меньше или равно значению правого операнда, то условие становится истинным. (а <= б) истинно.

Операторы присваивания в Python

Предположим, переменная содержит а значение 10, а переменная б имеет значение 20, то:

оператор Описание пример
= Назначает значения с правой стороной операндов левой стороне операнда с = а + b присваивает значение a + b в c
+ = Добавить и Добавляет правый операнд к левому операнду и присвоить результат левого операнда с + = а эквивалентно c = c + a
– = вычесть и Вычитает правый операнд из левого операнда и присваивает результат левого операнда с – = а эквивалентно c = c – a
* = умножить и Умножает правый операнд на левый операнд и присваивает результат левого операнда с * = а эквивалентно c = c * a
/ = разделить и Делит левый операнд на правый операнд и присваивает результат левого операнда с / = а эквивалентно c = c / ac /= a эквивалентно с = с / а
% = Модуль и Принимает модуль с помощью двух операндов и присваивает результат левого операнда c% = а эквивалентно c = c % a
** = Экспонент и Выполняет вычисление экспоненту от операторов и присваивает значение левого операнда с ** = а эквивалентно c = c ** a
// = Floor Division Выполняет деление операторов с округлением и присваивает значение левого операнда с // = а эквивалентно c = c // a

Битовые операторы в Python

Побитовые операторы работают над битами и выполняют операции бит за битом. Допустим, если а = 60; и б = 13; В настоящее время в двоичном формате они будут выглядить следующим образом:

—————–

а&б = 0000 1100

а|б = 0011 1101

а^б = 0011 0001

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

Следующие Битовые операторы поддерживаются языком Python:

Оператор Описание Пример
& бинарный И копии оператора бита, в результате, если они существует в обоих операндах (а & б) (0000 означает 1100)
| бинарный ИЛИ копирует бит, если он существует в любом из операндов. (а | б) = 61 (означает 0011 1101)
^ бинарный Исключающий или копирует бит, если он установлен в одном операнде, но не в обоих. (а ^ б) = 49 (означает 0011 0001)
~ Бинарным комплемент Это унарное и имеет эффект бит «листать». (~ а) = -61 (в форме означает двойной комплемент 1100 0011 из-за подписанного двоичного числа.
<< Двоичный сдвиг влево Значение левого операнда перемещается влево на число битов, заданное правым операндом. а << = 240 (1111 означает 0000)
>> Двоичный сдвиг вправо Значение левого операнда перемещается вправо на число битов, заданное правым операндом. а >> = 15 (0000 означает 1111)

Логические операторы в Python

Следующие логические операторы поддерживаются языком Python. Предположим, переменная справедлива и переменная б имеет значение False, то:

Членские Операторы в Python

Статус операторов тестирования на членство в последовательности, такие как строки, списки или кортежи. Есть два членских операторов, как объяснено ниже:

Операторы идентификации в Python

Операторы идентификации сравнивают ячейки памяти двух объектов. Есть два оператора идентификации как объяснено ниже:

Операторы приоритетов в Python

В следующей таблице перечислены все операторы от наивысшего приоритета к самому низкому.

Порядковый номер Оператор & Описание
1 **

Возведение в степень (повышение мощности)

2 ~ + –

Дополнение, унарный плюс и минус (имена методов для двух последних являются + @ и – @)

3 * / % //

Умножение, деление по модулю и остаток от деления

4 + –

Сложение и вычитание

5 >> <<

Правый и левый побитовый сдвиг

6 &

Побитовое «И»

7 ^ |

Побитовое исключающее “ИЛИ и регулярное ИЛИ”

8 <= <>> =

операторы сравнения

9 <> ==! =

операторы равенства

10 = %= /= //= -= += *= **=

операторы присваивания

11 is not

операторы идентификации

12 in not in

операторы членства

13 not или and

Логические операторы

Логический тип данных (или Boolean) – это примитивный тип, который принимает одно из двух возможных значений: истину (True) или ложь (False). Этот тип используется во многих языках программирования для построения алгоритмов и управления поведением программ.

Примечание : Название этого типа данных (Boolean) всегда пишется с заглавной буквы, поскольку он назван в честь математика Джорджа Буля, который занимался исследованиями математической логики. Значения True и False тоже пишутся с большой буквы – в Python они являются специальными значениями.

Данное руководство ознакомит вас с основами булевой логики в Python: операторами сравнения, логическими операторами, таблицами истинности и т.п.

Операторы сравнения

В программировании операторы сравнения используются при оценке и сравнении значений для последующего сведения их к одному логическому значению (True или False).

Операторы сравнения Python 3 представлены в этой таблице:

Оператор Значение
== Проверяет равенство между компонентами; условие истинно, если компоненты равны.
!= Проверяет равенство между компонентами; условие истинно, если компоненты НЕ равны.
< Оценивает значение левого компонента; условие истинно, если он меньше, чем правый.
> Оценивает значение левого компонента; условие истинно, если он больше, чем правый.
<= Оценивает значение левого компонента; условие истинно, если он меньше или равен правому компоненту.
>= Оценивает значение левого компонента; условие истинно, если он больше или равен правому компоненту.

Попробуйте поработать с этими операторами, чтобы понять, как они действуют. Для начала создайте пару переменных:

Теперь сравните значения переменных с помощью вышеперечисленных операторов.

x = 5
y = 8
print("x == y:", x == y)
print("x != y:", x != y)
print("x < y:", x < y)
print("x > y:", x > y)
print("x <= y:", x <= y)
print("x >= y:", x >= y)
x == y: False
x != y: True
x < y: True
x > y: False
x <= y: True
x >= y: False

Следуя математической логике, Python оценивает соотношения между значениями переменных так:

  • 5 равно 8? Ложь
  • 5 не равно 8? Истина
  • 5 меньше 8? Истина
  • 5 больше 8? Ложь
  • 5 меньше или равно 8? Истина
  • 5 больше или равно 8? Ложь

Также операторы сравнения можно применять к числам с плавающей точкой и строкам.

Примечание : Строки чувствительны к регистру; чтобы отключить такое поведение, нужно использовать специальный метод.

Попробуйте сравнить две строки:

Hello = "Hello"
hello = "hello"

Hello == hello: False

Строки Hello и hello содержат одинаковый набор символов, однако они не равны, поскольку одна из них содержит символы верхнего регистра. Попробуйте добавить ещё одну переменную, которая также будет содержать символы верхнего регистра, а затем сравните их.

Hello = "Hello"
hello = "hello"
Hello_there = "Hello"
print("Hello == hello: ", Hello == hello)
print("Hello == Hello_there", Hello == Hello_there)
Hello == hello: False
Hello == Hello_there: True

Также для сравнения строк можно использовать операторы > и <. Python выполнит лексикографическое сравнение строк на основе значений символов ASCII.

Операторы сравнения можно применять к логическим значениям True и False:

t = True
f = False
print("t != f: ", t != f)
t != f: True

Обратите внимание на разницу между операторами = и ==.

x = y # Оператор присваивания. Устанавливает равенство между x и y (то есть присваивает x значение y).
x == y # Оператор сравнения. Проверяет равенство между x и y и оценивает выражение как истинное или ложное. Выражение истинно, если x и y равны.

Логические операторы

Для сравнения значений используется три логических оператора, которые сводят результат к логическому значению True или False.

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

  • сдал ли студент экзамен
  • и зарегистрирован ли он.

Если оба значения истинны, студент будет переведён на следующий курс.

Другой пример: программа с логическими операторами может проверять активность пользователя в онлайн-магазине:

  • использовал ли он кредит магазина
  • или заказывал ли он товары в течение последних 6 месяцев.

Для примера попробуйте сравнить три выражения:

print((9 > 7) and (2 < 4)) # Оба выражения истинны (True)
print((8 == 8) or (6 != 6)) # Одно из выражений истинно (True)
print(not(3 <= 1)) # Выражение ложно (False)
True
True
True

В первом случае оба выражения истинны, потому оператор and возвращает True.

Во втором случае истинно только значение 8 == 8. Поскольку хотя бы одно из предложенных условий истинно, оператор or возвращает True. Оператор and в таком случае выдал бы False.

В третьем случае выражение 3 <= 1 ложно. Оператор not изменяет полученное логическое значение на противоположное: not False = True.

Теперь попробуйте сравнить числа с плавающей точкой.

print((-0.2 > 1.4) and (0.8 < 3.1)) # Одно из выражений ложно (False)
print((7.5 == 8.9) or (9.2 != 9.2)) # Оба выражения ложны (False)
print(not(-5.7 <= 0.3)) # Выражение истинно (True)

  • Поскольку в первом примере одно из выражений ложно, and вернёт False. Оператор and оценивает выражение как истинное только тогда, когда оба компонента истинны.
  • Поскольку оба выражения ложны, оператор or выдаст False.
  • Поскольку выражение истинно, оператор not вернёт False (not True = False).

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

Логические операторы можно объединять в составные выражения:

not((-0.2 > 1.4) and ((0.8 < 3.1) or (0.1 == 0.1)))

Выражение (0.8 < 3.1) or (0.1 == 0.1) истинно, поскольку оба математических выражения, из которых оно состоит, истинны. Оператор or вернёт True.

Полученное значение True становится компонентом следующего выражения: (-0.2 > 1.4) and (True). Оператор and выдаст False, потому что выражение -0.2 > 1.4 ложно. (False) and (True) = False.

Таблицы истинности

Математическая логика – очень полезная в программировании область знаний. В данном руководстве мы ознакомимся с основными её аспектами.

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

Таблица истинности оператора ==

Таблица истинности оператора AND

Таблица истинности оператора OR

Таблица истинности оператора NOT

Таблицы истинности – общие математические таблицы, которые используются в логике. Их полезно выучить наизусть, чтобы затем применять при построении алгоритмов и написании программ.

Использование логических операторов для управления потоком

Для управления результатом и потоками данных программы можно использовать условные операторы (condition) с выражениями (clause).

Условные операторы оценивают значение как истинное или ложное.

Выражение – это блок кода, который идёт после условного оператора и определяет результат программы.

Ниже приведён блок кода, который показывает, как объединить условные операторы для управления потоком программы Python.

if grade >= 65: # условие
print("Passing grade") # выражение
else:
print("Failing grade")

Эта программа оценивает результат каждого студента и определяет, сдал он экзамен или нет. К примеру, если студент набрал 83, первое условие будет иметь значение True, и программа выведет на экран строку:

Если же студент набрал 59 баллов, первое условие будет ложно, потому программа выдаст.

Operator

Описание

Примеры

Логический оператор "И". Условие будет истинным если оба операнда истина.

True and True равно True. True and False равно False. False and True равно False. False and False равно False.

Логический оператор "ИЛИ". Если хотя бы один из операндов истинный, то и все выражение будет истинным.

True or True равно True. True or False равно True. False or True равно True. False or False равно False.

Логический оператор "НЕ". Изменяет логическое значение операнда на противоположное.

not True равно False. not False равно True.

    Python. Операторы ветвления. Условный оператор. Оператор множественного выбора. Структуры организации циклов.

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

Оператора ветвления if....else

Условный оператор реализует выполнение определённых команд при условии, что некоторое логическое выражение (условие) принимает значение «истина» true. В большинстве языков программирования условный оператор начинается с ключевого слова if

Оператор множественного выбора

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

Циклы while и for

Инструкция while, обеспечивает способ организации универсальных циклов;

Инструкция for, предназначена для обхода элементов в последовательностях и выполнения

блока программного кода для каждого из них.

14. Python. Кортежи, словари, списки. Срезы

Кортеж, по сути - неизменяемый список.

Зачем нужны кортежи, если есть списки?

Защита от дурака. То есть кортеж защищен от изменений, как намеренных (что плохо), так и случайных (что хорошо).

Ну и создать кортеж из итерируемого объекта можно с помощью все той же пресловутой функции tuple()

>>> a = tuple("hello, world!")

("h", "e", "l", "l", "o", ",", " ", "w", "o", "r", "l", "d", "!")

Словари в Python - неупорядоченные коллекции произвольных объектов с доступом по ключу. Их иногда ещё называют ассоциативными массивами или хеш-таблицами.

Методы словарей

dict.clear () - очищает словарь.

dict.copy () - возвращает копию словаря.

classmethod dict.fromkeys (seq[, value]) - создает словарь с ключами из seq и значением value (по умолчанию None).

dict.get (key[, default]) - возвращает значение ключа, но если его нет, не бросает исключение, а возвращает default (по умолчанию None).

dict.items () - возвращает пары (ключ, значение).

dict.keys () - возвращает ключи в словаре.

dict.pop (key[, default]) - удаляет ключ и возвращает значение. Если ключа нет, возвращает default (по умолчанию бросает исключение).

dict.popitem () - удаляет и возвращает пару (ключ, значение). Если словарь пуст, бросает исключение KeyError. Помните, что словари неупорядочены.

dict.setdefault (key[, default]) - возвращает значение ключа, но если его нет, не бросает исключение, а создает ключ с значением default (по умолчанию None).

dict.update () - обновляет словарь, добавляя пары (ключ, значение) из other. Существующие ключи перезаписываются. Возвращает None (не новый словарь!).

dict.values () - возвращает значения в словаре.

Что такое списки?

Списки в Python - упорядоченные изменяемые коллекции объектов произвольных типов (почти как массив, но типы могут отличаться).

Чтобы использовать списки, их нужно создать. Создать список можно несколькими способами. Например, можно обработать любой итерируемый объект (например, строку) встроенной функцией list:.

Таблица "методы списков"

Метод Что делает

list.append(x) Добавляет элемент в конец списка

list.extend(L) Расширяет список list, добавляя в конец все элементы списка L

list.insert(i, x) Вставляет на i-ый элемент значение x

list.remove(x) Удаляет первый элемент в списке, имеющий значение x

list.pop([i]) Удаляет i-ый элемент и возвращает его. Если индекс не указан, удаляется последний элемент

list.index(x, ]) Возвращает положение первого элемента от start до end со значением x

list.count(x) Возвращает количество элементов со значением x

list.sort() Сортирует список на основе функции

list.reverse() Разворачивает список

list.copy() Поверхностная копия списка (новое в python 3.3)

list.clear() Очищает список (новое в python 3.3)

Срезы

В Python, кроме индексов, существуют ещё и срезы.

item - берёт срез от номера START, до STOP (не включая его), с шагом STEP. По умолчанию START = 0, STOP = длине объекта, STEP = 1. Соответственно, какие-нибудь (а возможно, и все) параметры могут быть опущены.

>>> a =

Также все эти параметры могут быть и отрицательными:

>>> a =

>>> a[::-1]

>>> a[-2::-1]

>>> a

В последнем примере получился пустой список, так как START < STOP, а STEP отрицательный. То же самое произойдёт, если диапазон значений окажется за пределами объекта:

>>> a =

>>> a

Также с помощью срезов можно не только извлекать элементы, но и добавлять и удалять элементы (разумеется, только для изменяемых последовательностей).

>>> a =

>>> a =



 

Пожалуйста, поделитесь этим материалом в социальных сетях, если он оказался полезен!