100% нашли этот документ полезным (1 голос)
41 просмотров

Handbook Python

Документ содержит описание арифметических, логических и присваивающих операторов Python, а также приоритетов операторов и встроенных функций, таких как abs().

Загружено:

oleksiy.byelov
Авторское право
© © All Rights Reserved
Доступные форматы
Скачать в формате DOCX, PDF, TXT или читать онлайн в Scribd
100% нашли этот документ полезным (1 голос)
41 просмотров

Handbook Python

Документ содержит описание арифметических, логических и присваивающих операторов Python, а также приоритетов операторов и встроенных функций, таких как abs().

Загружено:

oleksiy.byelov
Авторское право
© © All Rights Reserved
Доступные форматы
Скачать в формате DOCX, PDF, TXT или читать онлайн в Scribd
Вы находитесь на странице: 1/ 112

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

Python
Что такое оператор и операнды? Это можно объяснить простым
примером: 10 + 5 = 15. В этом выражении 10 и 5 — операнды. Знак + —
оператор.

Пусть переменная a = 10 , а переменная b = 5

Оператор Описание Пример

+ Добавление — добавляет левый операнд к правому a + b = 15

- Вычитание — вычитает правый операнд из левого a - b = 5

* Умножение — умножает левый операнд на правый a * b = 50

/ Деление — делит левый операнд на правый a / b = 2

% Деление по модулю — делит левый операнд a % b = 0


на правый и возвращает остаток. С помощью него,
например, можно проверять числа на четность
и нечетность. Если левый операнд меньше правого,
Оператор Описание Пример

то результатом будет левый операнд

** Возведение в степень a ** b = 100000

Целочисленное деление — деление в котором


возвращается только целая часть результата. Часть 9 // 2 = 4 9.0 // 2.0 =
// после запятой отбрасывается. 4.0

Ключевые слова Python


Ключевые слова — это часть языка. Их нельзя использовать для названия
переменных, функций или классов.

Ключевое
слово Описание

False Ложь

True Истина
Ключевое
слово Описание

None «Пустой» объект

and Логическое И

with / as Менеджер контекста

assert условие Возбуждает исключение, если условие ложно

break Выход из цикла

class Пользовательский тип, состоящий из методов и атрибутов

continue Переход на следующую итерацию цикла

def Определение функции


Ключевое
слово Описание

del Удаление объекта

elif В противном случае, если

else Иначе

except Перехватить исключение

Вместе с инструкцией try, выполняет инструкции независимо от того, было ли исклю


finally или нет

for Цикл for

from Импорт нескольких функций из модуля

global Позволяет сделать значение переменной, присвоенное ей внутри функции, доступны


Ключевое
слово Описание

и за пределами этой функции

if Если

import Импорт модуля

in Проверка на вхождение

is Проверка на идентичность

lambda Определение анонимной функции

Позволяет сделать значение переменной, присвоенное ей внутри функции, доступны


nonlocal в объемлющей инструкции

not Логическое НЕ
Ключевое
слово Описание

or Логическое ИЛИ

pass Ничего не делающая конструкция

raise Возбудить исключение

return Вернуть результат

try Выполнить инструкции, перехватывая исключения

while Цикл while

yield Определение функции-генератора


Операторы сравнения
Python
Что такое оператор и операнды? Это можно объяснить простым
примером: 10 > 5. В этом выражении 10 и 5 — левый и правый операнды.
Знак > — оператор.

Пусть переменная a = 10 , а переменная b = 5

Оператор Описание Пример Результат

Проверяет, равны ли значение


операндов. Если равны,
== то условие является истиной a == b False

Проверяет, равны ли значение


операндов. Если НЕ равны,
!= то условие является истиной a != b True

Проверяет значение левого


операнда. Если оно больше,
чем значение правого,
> то условие является истиной a > b True

< Проверяет значение левого a < b False


операнда. Если оно меньше,
чем значение правого,
Оператор Описание Пример Результат

то условие является истиной

Проверяет значение левого


операнда. Если оно больше,
либо равно значению правого,
>= то условие является истиной a >= b True

Проверяет значение левого


операнда. Если оно меньше,
либо равно значению правого,
<= то условие является истиной

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

c = 23 присвоит перем
= Присваивает значение правого операнда левому значение 23
Оператор Описание Пример

Прибавит значение правого операнда к левому и присвоит эту


+= сумму левому операнду c += 1 равносильно c

Отнимает значение правого операнда от левого и присваивает


-= результат левому операнду c -= 5 равносильно c

Умножает правый операнд на левый и присваивает результат


*= левому операнду c *= 2 равносильно c

Делит левый операнд на правый и присваивает результат


/= левому операнду c /= 3 равносильно c

%= Делит по модулю операнды и присваивает результат левому c %= 4 равносильно c

Возводит левый операнд в степень правого и присваивает c **= 10 равносильно


**= результат левому операнду ** 10

Производит целочисленное деление левого операнда


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

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


операторов ** сначала выполнится правый, а потом левый.

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

() Скобки

** Возведение в степень

+x, -x, ~x Унарные плюс, минус и битовое отрицание

*, /, //, % Умножение, деление, целочисленное деление, остаток от дел


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

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

<<, >> Битовые сдвиги

& Битовое И

^ Битовое исключающее ИЛИ (XOR)

| Битовое ИЛИ

==, !=, >, >=, <, <=, is, is not , in, not in Сравнение, проверка идентичности, проверка вхождения

not Логическое НЕ

and Логическое И
Операторы Описание

or Логическое ИЛИ

Встроенные функции Python


abs(x)

Возвращает абсолютное значение числа. Аргумент может быть целым


числом, числом с плавающей запятой или объектом, реализующим abs().
Если аргумент представляет собой комплексное число, возвращается его
величина.

Параметры
Функция abs() принимает один аргумент: num — число, абсолютное
значение которого должно быть возвращено.

Число может быть:

 целое число
 число с плавающей запятой
 комплексное число

Возвращаемое значение
Метод abs() возвращает абсолютное значение заданного числа.

 Для целых чисел — возвращается целочисленное абсолютное


значение
 Для чисел с плавающей запятой — возвращается абсолютное
значение с плавающей запятой
 Для комплексных чисел — возвращается величина числа

Примеры
number = -10

absolute = abs(number)

print(absolute)

# Результат: 10

Получить абсолютное значение числа

# случайное целое число

integer = -40

print('Абсолютное значение -40:', abs(integer))

#случайное число с плавающей запятой

floating = -56.21

print('Абсолютное значение -56.21:', abs(floating))

# Результат:

# Модуль числа -40: 40

# Модуль числа -56.21: 56.21

Получить модуль комплексного числа

# случайное комплексное число

complex_ = (3 - 4j)

print('Абсолютное значение 3 - 4j:', abs(complex_))


# Результат:

# Абсолютное значение 3 - 4j is: 5.0

all(iterable)
Проверяет, все ли элементы объекта iterable, поддерживающего
итерирование, принимают истинное значение. Вернёт True, если все
элементы представляются истиной. Также вернет True, если объект пуст.

Подробнее

any(iterable)
Проверяет, есть ли среди элементов объекта iterable, поддерживающего
итерирование, хотя бы один, принимающий истинное значение.

Подробнее

ascii(object)
Метод ascii() заменяет непечатаемый символ соответствующим
значением ascii и возвращает его.

Подробнее

bin(x)
Преобразует целое число x в двоичную строку. Если x не является
объектом int, следует определить для него метод index(), возвращающий
целое.

Подробнее

bool(x=False)
Преобразование к типу bool через стандартную процедуру проверки
истинности.
Подробнее

class bytearray(source=b'')
class bytearray(source, encoding)
class bytearray(source, encoding, errors)
Метод bytearray() возвращает объект bytearray , который представляет
собой массив заданных байтов.

Подробнее

bytes([source[, encoding[, errors]]])


Возвращает массив байт. Тип bytes — это неизменяемая
последовательность целых чисел в диапазоне 0 ≤ X < 256.
Параметр source можно использовать для начальной инициализации
массива:

Подробнее

callable(obj)
Возвращает True если объект obj поддерживает вызов, иначе — False.

Подробнее

chr(i)
Возвращает символ по его числовому представлению. i— целое
положительное число.

Подробнее

classmethod(function)
Представляет функцию function методом класса. В метод класса первым
аргументом неявным образом передаётся класс. Аналогично метод
экземпляра получает в первом аргументе сам экземпляр.
Подробнее

compile(source, filename, mode, flags=0,


dont_inherit=False, optimize=- 1)
Компилирует исходный код в объект кода, либо объект АСД (абстрактное
синтаксическое дерево). Объект кода может быть выполнен с помощью
функций eval или exec.

Подробнее

complex([real[, imag]])
Возвращает комплексное число со значением real + imag * 1j или
конвертирует строку в комплексное число, если первым аргументом
передана строка.

Подробнее

delattr(object, name)
Удаляет из объекта obj атрибут name. Атрибут (свойство, метод, элемент)
объекта будет удалён в случае, если объект разрешает/поддерживает это
действие.

Подробнее

dir()
dir(object)
Возвращает атрибуты объекта obj в алфавитном порядке. При вызове без
аргумента, возвращает имена переменных, доступные в локальной
области.

Подробнее
dict(**kwargs)
dict(mapping, **kwargs)
dict(iterable, **kwargs)
Конструктор dict() создает словарь в Python.

Подробнее

divmod(a, b)
Функция divmod() принимает два числа в качестве аргументов
и возвращает их частное и остаток в виде кортежа.

Подробнее

enumerate(sequence, start=0)
Возвращает генератор, отдающий пары счётчик-элемент для элементов
последовательности sequence. Начальное значение счетчика можно задать
с помощью start.

Подробнее

eval(expression, globals=None, locals=None)


Метод eval() анализирует выражение, переданное этому методу,
и запускает выражение (code) Python в программе.

Подробнее

exec(object, globals=None, locals=None, /, *,


closure=None)
Динамически исполняет код object .

Подробнее
filter(function, iterable)
При помощи указанной функции фильтрует элементы переданного
объекта.

Подробнее

format(value, format_spec='')
Форматирует указанное значение.

Подробнее

frozenset([iterable])
Возвращает неизменяемое множество.

Подробнее

getattr(object, name)

getattr(object, name, default)


Функция getattr() возвращает значение именованного атрибута объекта.
Если он не найден, он возвращает значение по умолчанию,
предоставленное функции.

Подробнее

globals()
Возвращает словарь с глобальной таблицей символов, определённых
в модуле.

Подробнее
hasattr(object, name)
Функция hasattr() возвращает значение true, если объект имеет заданный
именованный атрибут, и значение false, если нет.

Подробнее

hash(object)
Возвращает хеш указанного объекта.

Подробнее

hex(x)
Функция hex() преобразует целое число в соответствующую
шестнадцатеричную строку.

Подробнее

id(object)
Возвращает идентификатор указанного объекта.

Подробнее

input()

input(prompt)
Считывает и возвращает строку входных данных.

Подробнее
int(x=0)

int(x, base=10)
Преобразует x к целому числу в десятичной системе счисления. Вместо
десятичной системы можно указать любое основание от 2 до 36
включительно.

Подробнее

__import__(name, globals=None, locals=None,


fromlist=(), level=0)
__import__() — это функция, вызываемая оператором импорта.

Подробнее

iter(object)

iter(object, sentinel)
Возвращает объект итератора.

Подробнее

isinstance(object, classinfo)
Функция isinstance() проверяет, является ли объект (первый аргумент)
экземпляром или подклассом класса classinfo (второй аргумент).

Подробнее

issubclass(class, classinfo)
Возвращает флаг, указывающий на то, является ли указанный класс
подклассом указанного класса (классов).

Подробнее
len(s)
Возвращает число элементов в указанном объекте-контейнере.

Подробнее

list

list(iterable)
Создает список.

Подробнее

locals()
Возвращает словарь, представляющий текущую локальную таблицу
символов.

Подробнее

map(function, iterable, *iterables)


Применяет указанную функцию к каждому элементу указанной
последовательности/последовательностей.

Подробнее

max(iterable, *, key=None)

max(iterable, *, default, key=None)

max(arg1, arg2, *args, key=None)


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

Подробнее
memoryview(object)
Функция memoryview() возвращает объект представления памяти для
данного аргумента.

Подробнее

min(iterable, *, key=None)

min(iterable, *, default, key=None)

min(arg1, arg2, *args, key=None)


Возвращает элемент с наименьшим значением из переданных в функцию.

Подробнее

next(iterator)

next(iterator, default)
Возвращает следующий элемент итератора.

Подробнее

object()
Возвращает безликий объект, являющийся базовым для всех объектов.

Подробнее

open(file, mode='r', buffering=- 1,


encoding=None, errors=None, newline=None,
closefd=True, opener=None)
Открывает файл и возвращает представляющий его объект.

Подробнее
ord(c)
Возвращает числовое представление для указанного символа.

Подробнее

pow(base, exp, mod=None)


Возвращает результат возведения числа в степень, с опциональным
делением по модулю.

Подробнее

print(*objects, sep=' ', end='\n', file=None,


flush=False)
Выводит заданные объекты на экран или отправляет их текстовым
потоком в файл.

Подробнее

property(fget=None, fset=None, fdel=None,


doc=None)
Функция property() возвращает атрибут свойства.

Подробнее

range(stop)

range(start, stop, step=1)


Арифметическая прогрессия от start до stop с шагом step.

Подробнее

repr(object)
Возвращает формальное строковое представление указанного объекта.
Подробнее

reversed(seq)
Возвращает обратный итератор по указанной последовательности seq

Подробнее

round(number, ndigits=None)
Возвращает число с плавающей запятой, округлённое до указанного
количества цифр после запятой.

Подробнее

set

set(iterable)
Создает множество.

Подробнее

setattr(object, name, value)


Добавляет объекту указанный атрибут.

Подробнее

sorted(iterable, *, key=None, reverse=False)


Возвращает новый отсортированный список, составленный из элементов
итерирующегося объекта.

Подробнее
str(object='')

str(object=b'', encoding='utf-8',
errors='strict')
Строковое представление объекта.

Подробнее

vars()

vars(object)
Возвращает словарь из атрибута dict указанного объекта.

Подробнее

zip(*iterables, strict=False)
Возвращает итератор по кортежам, где i-тый кортеж содержит i-тый
элемент каждой из указанных последовательностей.

Методы строк Python


Строки в Python

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

'нАЧАТЬ С ЗАГЛАВНОЙ '.capitalize() # Начать с заглавной

str.casefold()
Возвращает копию строки в сложенном регистре.
Преобразование в сложенный регистр похоже на преобразование
к нижнему регистру, однако более агрессивно. Например: буква «ß»
в нижнем регистре в немецком языке соответствует сочетанию «ss»,
однако, ввиду того, что символ «ß» уже имеет нижний регистр,
метод .lower() ни к чему не приведёт, в то время как casefold() приведёт
символ к «ss».

'ß'.lower() # 'ß'

'ß'.casefold() # 'ss'

'groß'.casefold() == 'gross' # True

str.center(width, fillchar)
Позиционирует по центру указанную строку, дополняя её справа и слева
до указанной длины указанным символом.

 width: Желаемая минимальная длина результирующей строки.

 fillchar: Символ, которым следует расширять строку.


По умолчанию — пробел.

Изначальная строка не обрезается, даже если в ней меньше символов,


чем указано в параметре желаемой длины.

''.center(3, 'w') # www

'1'.center(2, 'w') # 1w

'1'.center(4, 'w') # w1ww

'1'.center(0, 'w') # 1

'1'.center(4) # ' 1 '

Символ добавляется к строке циклично сначала справа, затем слева.

Чтобы позиционировать строку вправо используйте str.rjust(). Чтобы


позиционировать строку влево используйте str.ljust().
str.count(sub, start, end)
Для строки возвращает количество непересекающихся вхождений в неё
указанной подстроки.

 sub: Подстрока, количество вхождений которой следует вычислить.

 start=0: Позиция в строке, с которой следует начать вычислять


количество вхождений подстроки.
 `end=None: Позиция в строке, на которой следует завершить
вычислять количество вхождений подстроки.

my_str = 'подстрока из строк'

my_str.count('строка') # 1

my_str.count('стр') # 2

my_str.count('стр', 0, -1) # 2

my_str.count('стр', 8) # 1

my_str.count('стр', 1, 5) # 0

my_str.count('стр', 1, 6) # 1

Позиции начала и конца трактуются также как в срезах.

str.encode(encoding=»utf-8», errors=»strict»)
Кодирует строку в байты/байтстроку, используя зарегистрированный
кодек.

 encoding: Название кодировки. По умолчанию — системная


кодировка, доступная из sys.getdefaultencoding() .
 errors=strict : Наименование схемы обработки ошибок.
По умолчанию — strict.
Имена доступных кодировок лучше всего узнавать из документации
к модулю codecs.

from sys import getdefaultencoding

getdefaultencoding() # utf-8

my_string = 'кот cat'

type(my_string) # str

my_string.encode()

# b'\xd0\xba\xd0\xbe\xd1\x82 cat'

my_string.encode('ascii')

# UnicodeDecodeError

my_string.encode('ascii', errors='ignore')

# b' cat'

my_string.encode('ascii', errors='replace')

# b'??? cat'

my_string.encode('ascii', errors='xmlcharrefreplace')

# b'кот cat'

my_string.encode('ascii', errors='backslashreplace')

# b'\\u043a\\u043e\\u0442 cat'

my_string.encode('ascii', errors='namereplace')

# b'\\N{CYRILLIC SMALL LETTER KA}\\N{CYRILLIC SMALL LETTER O}\\N{CYRILLIC SMALL LETTER TE}
cat'
surrogated = '\udcd0\udcba\udcd0\udcbe\udcd1\udc82 cat'

surrogated.encode()

# UnicodeEncodeError

surrogated.encode(errors='surrogateescape')

# b'\xd0\xba\xd0\xbe\xd1\x82 cat'

surrogated.encode(errors='surrogatepass')

# b'\xed\xb3\x90\xed\xb2\xba\xed\xb3\x90\xed\xb2\xbe\xed\xb3\x91\xed\xb2\x82 cat'

Зарегистрировать новую схему можно при помощи codecs.register_error() .

str.endswith(suffix, start, end)


Возвращает флаг, указывающий на то, заканчивается ли строка указанным
постфиксом.

 suffix: Строка-постфикс, в наличии которой требуется


удостовериться.
 start: Позиция (индекс символа), с которой следует начать поиск.
Поддерживает отрицательные значения.
 end: Позиция (индекс символа), на которой следует завершить
поиск. Поддерживает отрицательные значения.

my_str = 'Discworld'

my_str.endswith('jockey') # False

my_str.endswith('world') # True

my_str.endswith('jockey', 2) # False

my_str.endswith('Disc', 0, 4) # True
str.expandtabs(tabsize=8)
Возвращает копию строки, в которой символы табуляций заменены
пробелами.

 tabsize=8 : Максимальное количество пробелов на которое может


быть заменена табуляция.

В возвращаемой копии строки все табуляции заменяются одним или


несколькими пробелами, в зависимости от текущего номера столбца
и указанного максимального размера табуляции.

my_str = '\t1\t10\t100\t1000\t10000'

my_str.expandtabs()

#' 1 10 100 1000 10000'

my_str.expandtabs(4)

#' 1 10 100 1000 10000'

Для замены табуляций изначально номер столбца задаётся равным нулю


и начинается посимвольный проход по строке.

Если очередной символ является табуляцией (\t), то на его место


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

Если очередной символ является переносом строки (\n) или возвратом


каретки (\r), он копируется, а текущий номер столбца задаётся равным
нулю.

Другие символы копируются в неизменном виде, а текущий номер


столбца увеличивается на единицу (вне зависимости от того, как символ
будет представлен при выводе).
str.find(sub, start, end)
Возвращает наименьший индекс, по которому обнаруживается начало
указанной подстроки в исходной.

 sub: Подстрока, начальный индекс размещения которой требуется


определить.
 мstart=0: Индекс начала среза в исходной строке, в котором
требуется отыскать подстроку.
 end=None: Индекс конца среза в исходной строке, в котором
требуется отыскать подстроку.

Если подстрока не найдена, возвращает −1.

my_str = 'barbarian'

my_str.find('bar') # 0

my_str.find('bar', 1) # 3

my_str

.find('bar', 1, 2) # -1

Необязательные параметры start и end могут принимать любые значения,


поддерживаемые механизмом срезов, а значит и отрицательные.

Метод должен использоваться только в случае необходимости найти


индекс начала подстроки. Для обычного определения вхождения
подстроки используйте оператор in:

my_str = 'barbarian'

'bar' in my_str # True

str.format(args, *kwargs)
Возвращает копию строки, отформатированную указанным образом.
 args: Позиционные аргументы.

 kwargs: Именованные аргументы.

Строка, для которой вызывается данный метод может содержать как


обычный текст, так и маркеры в фигурных скобках {}, которые следует
заменить. Обычный текст, вне скобок будет выведен как есть без
именений. Метод возвращает копию строки, в которой маркеры
заменены текстовыми значениями из соответствующих аргументов.
Наименование состоит из имени аргумента (либо его индекса). Числовой
индекс при этом указывает на позиционный аргумент; имя указывает
на именованный аргумент.

Если используются числа, и они составляют последовательность (0, 1, 2…),


то они могут быть опущены разом (но не выборочно). Например, {}-{}-{}
и {0}-{1}-{2} эквивалентны.

'{}-{}-{}'.format(1, 2, 3) # Результат: '1-2-3'

'{}-{}-{}'.format(*[1, 2, 3]) # Результат: '1-2-3'

'{one}-{two}-{three}'.format(two=2, one=1, three=3) # Результат: '1-2-3'

'{one}-{two}-{three}'.format(**{'two': 2, 'one': 1, 'three': 3}) # Результат: '1-2-3'

После наименования может следовать любое количество выражений


доступа к атрибуту или адресации по индексу.

Атрибут объекта адресуется при помощи . (точки).

Доступ к элементу при помощи [] (квадратных скобок).

import datetime

obj = {'one': {'sub': 1}, 'two': [10, 2, 30], 'three': datetime.datetime.now()}

'{one[sub]}-{two[1]}-{three.year}'.format(**obj)

Приведение используется для приведения типов перед


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

Поддерживаются три флага приведения: * !s Вызывает str() * !


r Вызывает repr() * !a Вызывает ascii() .

import datetime

demo = datetime.date.today()

result = '{!s}, {!r}, {!a}, {}'.format(demo, demo ,demo, demo)

print(result)

Формат содержит определение того как должно быть представлено


значение, включая информацию о длине, выравнивании, дополнении
строки, точности для чисел и тому подобное.

Можно задавать ширину поля и выравнивание

right = 'Начало{0:20}Конец'.format(7)

left = 'Начало{0:<20}Конец'.format(8)

center = 'Начало{0:^20}Конец'.format(9)

print(right)

print(left)

print(center)

Результат
Начало 7Конец

Начало8 Конец
Начало 9Конец

Вывод вещественных чисел


print('{0}'.format(4/3))

print('{0:f}'.format(4/3))

print('{0:.2f}'.format(4/3))

print('{0:10.3f}'.format(4/3))

Результат
1.3333333333333333

1.333333

1.33

1.333

str.index(sub, start, end)


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

 sub: Подстрока, начальный индекс размещения которой требуется


определить.
 start=0: Индекс начала среза в исходной строке, в котором
требуется отыскать подстроку.
 end=None: Индекс конца среза исходной строке, в котором требуется
отыскать подстроку.

Работа данного метода аналогична работе str.find(), однако, если


подстрока не найдена, возбуждается исключение

my_str = 'barbarian'
my_str.index('bar') # 0

my_str.index('bar', 1) # 3

my_str.index('bar', 1, 2) # ValueError

Необязательные параметры start и end могут принимать любые значения,


поддерживаемые механизмом срезов, а значит и отрицательные.

Метод должен использоваться только в случае необходимости найти


индекс начала подстроки. Для обычного определения вхождения
подстроки используйте оператор `in:

my_str = 'barbarian'

'bar' in my_str # True

str.isalnum()
Возвращает флаг, указывающий на то, содержит ли строка только цифры
и/или буквы.

Вернёт True, если в строке хотя бы один символ и все символы строки
являются цифрами и/или буквами, иначе — False.

''.isalnum() # False

' '.isalnum() # False

'!@#'.isalnum() # False

'abc'.isalnum() # True

'123'.isalnum() # True

'abc123'.isalnum() # True
str.isalpha()
Возвращает флаг, указывающий на то, содержит ли строка только буквы.

Вернёт True, если в строке есть хотя бы один символ, и все символы
строки являются буквами, иначе — False.

''.isalpha() # False

' '.isalpha() # False

'!@#'.isalpha() # False

'abc'.isalpha() # True

'123'.isalpha() # False

'abc123'.isalpha() # False

str.isascii()
Возвращает флаг, указывающий на то, содержит ли строка только ASCII-
символы.

Вернет True, если в строке содержаться только ASCII-символы или строка


пустая, иначе вернет False.

str.isdigit()
Возвращает флаг, указывающий на то, содержит ли строка только цифры.
Вернёт True, если в строке хотя бы один символ и все символы строки
являются цифрами, иначе — False.

''.isdigit() # False

' '.isdigit() # False

'!@#'.isdigit() # False
'abc'.isdigit() # False

'123'.isdigit() # True

'abc123'.isdigit() # False

str.isidentifier()
Возвращает флаг, указывающий на то, является ли строка
идентификатором.

Речь идёт об идентификаторах языка. Более подробная информация


об идентификаторах и ключевых словах Питона содержится в разделе
оригинальной документации Identifiers and keywords.

'continue'.isidentifier() # True

'cat'.isidentifier() # True

'function_name'.isidentifier() # True

'ClassName'.isidentifier() # True

'_'.isidentifier() # True

'number1'.isidentifier() # True

'1st'.isidentifier() # False

'*'.isidentifier() # False

Для проверки на то является ли строка зарезервированным


идентификатором (например: def, class), используйте keyword.iskeyword() .

str.islower()
Возвращает флаг, указывающий на то, содержит ли строка символы
только нижнего регистра. Вернёт True, если все символы строки
поддерживающие приведение к регистру приведены к нижнему,
иначе — False.

'нижний lower'.islower() # True

Внимание
может возвращать False, например, если строка содержит
str.islower()
только символы не поддерживающие приведение к регистру:

'12'.islower() # False

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


метод lower().

str.isnumeric()
Возвращает флаг, указывающий на то, содержит ли строка только числа.

Вернёт True, если в строке есть символы и все они присущи числам.

''.isnumeric() # False

'a'.isnumeric() # False

'0'.isnumeric() # True

'10'.isnumeric() # True

'⅓'.isnumeric() # True

'Ⅻ'.isnumeric() # True

К символам чисел относятся цифры, а также все символы, имеющие


признак числа в Unicode, например: U+2155 (VULGAR FRACTION ONE
FIFTH)— это любые символы, у которых признак Numeric_Type установлен
равным Digit, или Decimal, или Numeric.
str.isprintable()
Возвращает флаг, указывающий на то, все ли символы строки являются
печатаемыми. Вернёт True, если строка пустая, либо если все её символы
могут быть выведены на печать.

''.isprintable() # True

' '.isprintable() # True

'1'.isprintable() # True

'a'.isprintable() # True

''.isprintable() # False (Group Separator)

''.isprintable() # False (Escape)

Непечатаемыми символами являются символы Юникод


из категории Other или Separator, исключая символ пробела из ASCII,
который считается печатаемым. Печатаемые символы не требуется
экранировать в случае применения repr() к строке. Они не влияют
на обработку строк, отправляемых в sys.stdout или sys.stderr.

str.isspace()
Возвращает флаг, указывающий на то, содержит ли строка только
пробельные символы. Вернёт True, если в строке есть символы и все они
являются пробельными, иначе — False.

' '.isspace() # True

'\n'.isspace() # True

'\t'.isspace() # True

' '.isspace() # True (OGHAM SPACE MARK)


''.isspace() # False

'!@#'.isspace() # False

'abc'.isspace() # False

'123'.isspace() # False

'abc123'.isspace() # False

Пробельными символами являются символы Юникод изкатегории Other


или Separator, а также те, у которых свойство бинаправленности
принимает значение WS, B, или S.

str.istitle()
Возвращает флаг, указывающий на то, начинается ли каждое из «слов»
строки с заглавной буквы.

Вернёт True, если в строке хотя бы один символ или все «слова» в строке
начинаются с заглавных букв, иначе — False.

'S'.istitle() # True

'Some Text'.istitle() # True

'Some text'.istitle() # False

'S1 T2%'.istitle() # True

str.isupper()
Возвращает флаг, указывающий на то, содержит ли строка символы
только верхнего регистра. Вернёт True, если все символы строки
поддерживающие приведение к регистру приведены к верхнему,
иначе — False.
str.join(iterable)
Возвращает строку, собранную изэлементов указанного объекта,
поддерживающего итерирование.

 iterable: Объект со строками, поддерживающий итерирование.

В качестве соединительного элемента между указанными используется


объект строки, предоставляющий данный метод.

dots = '..'

my_str = dots.join(['1', '2']) # '1..2'

my_str = dots.join('ab') # 'a..b'

Ожидается, что итерируемый объект выдаёт строки. Для массового


приведения к строке можно воспользоваться функцией map():
dots.join(map(str, 100, 200)) # '100…200'

str.ljust(width, fillchar)
Позиционирует влево указанную строку, дополняя её справа
до указанной длины указанным символом.

 width: Желаемая минимальная длина результирующей строки.


 fillchar: Символ, которым следует расширять строку.
По умолчанию — пробел.

Изначальная строка не обрезается, даже если в ней меньше символов,


чем указано в параметре желаемой длины.

''.ljust(3, 'w') # www

'1'.ljust(4, 'w') # 1www

'1'.ljust(0, 'w') # 1
'1'.ljust(4) # '1 '

Антонимом функции, позиционирующим строку вправо,


является str.rjust(). Для расширения строки в обоих направлениях
используйте str.center().

str.lower()
Возвращает копию исходной строки с символами приведёнными
к нижнему регистру. Алгоритм приведения к нижнему регистру описан
в параграфе 3.13 стандарта Unicode.

'SoMe СлОнов'.lower() # some слонов'

Для приведения символов строки к верхнему регистру используйте


метод upper(). Для проверки того, содержит ли строка только символы
в нижнем регистре используйте islower().

может возвращать False, если строка содержит только


str.lower().islower()
символы не поддерживающие приведение к регистру:

'12'.lower().islower()` # False

str.lstrip(chars)
Возвращает копию указанной строки, с начала (слева l — left) которой
устранены указанные символы.

 chars=None : Строка с символами, которые требуется устранить. Если


не указана, будут устранены пробельные символы. Это не префикс
и не суффикс, это перечисление нужных символов.

'abca'.lstrip('ac') # 'bca'
str.maketrans(x, y, z)
Возвращает таблицу переводов, которую можно использовать
в методе translate. В примере ниже букве «а» будет соответствовать «1»,
«b» — «2», а «с» — «3»

intab = "abc"

outtab = "123"

trantab = str.maketrans(intab, outtab)

str.partition(sep)
Разбивает строку на три составляющие (начало, разделитель, конец)
и возвращает в виде кортежа. Направление разбиения: слева направо.

 sep: Строка-разделитель, при помощи которой требуется разбить


исходную строку. Может содержать как один, так и несколько
символов.

Возвращает кортеж из трёх элементов.

my_str = ''

my_str.partition('.') # ('', '', '')

my_str = '12'

my_str.partition('.') # ('12', '', '')

my_str = '.1.2'

my_str.partition('.') # ('', '.', '1.2')

В случаях, когда требуется, чтобы разбиение строки происходило справа


налево, используйте str.rpartition.
str.replace(old, new, count)
Возвращает копию строки, в которой заменены все вхождения указанной
строки указанным значением.

 old: Искомая подстрока, которую следует заменить.


 new: Подстрока, на которую следует заменить искомую.
 maxcount=None: Максимальное требуемое количество замен. Если
не указано, будут заменены все вхождения искомой строки.

my_str = 'barbarian'

my_str = my_str.replace('bar', 'mur') # 'murmurian'

my_str = my_str.replace('mur', 'bur', 1) # 'burmurian'

str.rfind(sub, start, end)


Возвращают индексы последнего вхождения искомой подстроки. Если же
подстрока не найдена, то метод возвращает значение −1.

str.rindex(sub, start, end)


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

 sub: Подстрока, начальный индекс размещения которой требуется


определить.
 start=0: Индекс начала среза в исходной строке, в котором
требуется отыскать подстроку.
 end=None: Индекс конца среза в исходной строке, в котором
требуется отыскать подстроку.

Работа данного метода аналогична работе str.rfind(), однако, если


подстрока не найдена, возбуждается исключение
my_str = 'barbarian'

my_str.rindex('bar') # 3

my_str.rindex('bar', 1) # 3

my_str.rindex('bar', 1, 2) # ValueError

Необязательные параметры start и end могут принимать любые значения,


поддерживаемые механизмом срезов, а значит и отрицательные.

str.rjust(width, fillchar)
Позиционирует вправо указанную строку, дополняя её слева
до указанной длины указанным символом.

 width: Желаемая минимальная длина результирующей строки.

 fillchar: Символ, которым следует расширять строку.


По умолчанию — пробел.

Изначальная строка не обрезается, даже если в ней меньше символов,


чем указано в параметре желаемой длины.

''.rjust(3, 'w') # www

'1'.rjust(4, 'w') # www1

'1'.rjust(0, 'w') # 1

'1'.rjust(4) # ' 1'

Антонимом функции, позиционирующим строку влево,


является str.ljust(). Для расширения строки в обоих направлениях
используйте str.center(). Когда требуется дополнить строку нулями слева,
используйте str.zfill().
str.rpartition(sep)
Разбивает строку на три составляющие (начало, разделитель, конец)
и возвращает в виде кортежа. Направление разбиения: справа налево.

 sep: Строка-разделитель, при помощи которой требуется разбить


исходную строку. Может содержать как один, так и несколько
символов. Возвращает кортеж из трёх элементов.

Поведение метода аналогично поведению str.partition за исключением


направления разбиения строки.

my_str = ''

my_str.rpartition('.') # ('', '', '')

my_str = '12'

my_str.rpartition('.') # ('', '', '12')

my_str = '.1.2'

my_str.rpartition('.') # ('.1', '.', '2')

str.rsplit(sep=None, maxsplit=-1)
Разбивает строку на части, используя разделитель, и возвращает эти части
списком. Направление разбиения: справа налево.

 sep=None: Строка-разделитель, при помощи которой требуется


разбить исходную строку. Может содержать как один, так
и несколько символов. Если не указан, то используется специальный
алгоритм разбиения, для которого разделителем считается
последовательность пробельных символов.
 maxsplit=-1 : Максимальное количество разбиений, которое
требуется выполнить. Если −1, то количество разбиений
не ограничено.
Поведение метода аналогично поведению str.split за исключением
направления разбиения строки.

str.rstrip(chars)
Возвращает копию указанной строки, с конца (справа r — right) которой
устранены указанные символы.

 chars=None : Строка с символами, которые требуется устранить. Если


не указана, будут устранены пробельные символы. Это не префикс
и не суффикс, это перечисление нужных символов.

'abca'.rstrip('ac') # 'ab'

Когда требуется разбить строку на три составляющие (начало,


разделитель, конец), используйте str.rpartition.

str.split(sep=None, maxsplit=-1)
Разбивает строку на части, используя разделитель, и возвращает эти части
списком. Направление разбиения: слева направо.

 sep=None: Строка-разделитель, при помощи которой требуется


разбить исходную строку. Может содержать как один, так
и несколько символов. Если не указан, то используется специальный
алгоритм разбиения, для которого разделителем считается
последовательность пробельных символов.
 maxsplit=-1 : Максимальное количество разбиений, которое
требуется выполнить. Если −1, то количество разбиений
не ограничено.

Если указан разделитель, разбиение пустой строки вернёт список


с единственным элементом — пустой строкой: ''.

'1,2,3'.split(',') # ['1', '2', '3']

'1,2,3'.split(',', maxsplit=1) # ['1', '2,3']


'1,2,,3,'.split(',') # ['1', '2', '', '3', '']

'1 2 3'.split(' ') # ['1', '', '', '2', '', '', '3']

Если разделитель не указан, разбиение пустой строки вернёт пустой


список:.

'1 2 3'.split() # ['1', '2', '3']

'1 2 3'.split(maxsplit=1) # ['1', '2 3']

'1 2 3'.split() # ['1', '2', '3']

В случаях, когда требуется, чтобы разбиение строки происходило справа


налево, используйте str.rsplit. Когда требуется разбить строку на три
составляющие (начало, разделитель, конец), используйте str.partition.

str.splitlines(keepends)
Разбивает строку на множество строк, возвращая их списком.

 keepends=False — Флаг, указывающий на то следует ли оставлять


в результирующем списке символы переноса строк. По умолчанию
символы удаляются.

Разбиение строки на подстроки производится в местах, где встречаются


символы переноса строк.

my_str = 'ab c\n\nde fg\rkl\r\n'

my_str.splitlines() # ['ab c', '', 'de fg', 'kl']

my_str.splitlines(True) # ['ab c\n', '\n', 'de fg\r', 'kl\r\n']

В отличие от split(), которому можно передать символ-разделитель,


данный метод для пустой строки вернёт пустой список, а символ
переноса строки в конце не добавит в список дополнительного элемента.
''.splitlines() # []

''.split('\n') # ['']

my_str = 'ab\n cd\n'

my_str.splitlines() # ['ab', 'cd']

my_str.split('\n') # ['ab', 'cd', '']

str.startswith(prefix, start, end)


Возвращает флаг, указывающий на то, начинается ли строка с указанного
префикса.

 prefix: Строка-префикс, в наличии которой требуется


удостовериться.
 start: Позиция (индекс символа), с которой следует начать поиск.
Поддерживает отрицательные значения.
 end: Позиция (индекс символа), на которой следует завершить
поиск. Поддерживает отрицательные значения.

my_str = 'Discworld'

my_str.startswith('Mad') # False

my_str.startswith('Disc') # True

my_str.startswith('Disc', 1) # False

my_str.startswith('world', 4, 9) # True

Для определения наличия постфикса в строке используйте str.endswith() .


str.strip(chars)
Возвращает копию указанной строки, с обоих концов которой устранены
указанные символы.

 chars=None : Строка с символами, которые требуется устранить. Если


не указана, будут устранены пробельные символы. Это не префикс
и не суффикс, это перечисление нужных символов.

'abca'.strip('ac') # 'b'

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

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


в верхний, а буквы в верхнем преобразуются в нижний.

'Кот ОбОрмот!'.swapcase() # кОТ оБоРМОТ!

Внимание
Для 8-битных строк (Юникод) результат метода зависит от локали.
Следующее выражение не обязано быть
истинным: str`.swapcase().swapcase() == `str .

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

'кот ОбОрмот!'.title() # Кот Обормот!


"they're bill's friends from the UK".title()

# They'Re Bill'S Friends From The Uk

Алгоритм использует простое, независящее от языка определение


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

Для 8-битных строк (Юникод) результат метода зависит от текущей


локали.

str.translate(table)
Возвращает строку, преобразованную с помощью таблицы переводов,
которую в свою очередь можно получить с помощью str.maketrans.
В примере ниже все буквы «а» будут заменены на «1», а «b» — на «2».

trantab = str.maketrans("ab", "12")

print('abc test'.translate(trantab))

##str.upper()

Возвращает копию исходной строки с символами приведёнными


к верхнему регистру. Алгоритм приведения к верхнему регистру описан
в параграфе 3.13 стандарта Unicode.

'SoMe СлОнов'.upper() # SOME СЛОНОВ

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


метод lower(). Для проверки того, содержит ли строка только символы
в верхнем регистре используйте isupper().
str.zfill(width)
Дополняет указанную строку нулями слева до указанной минимальной
длины.

 width: Желаемая минимальная длина результирующей строки.


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

''.zfill(3) # 000

'1'.zfill(4) # 0001

'1'.zfill(0) # 1

'-1'.zfill(4) # -001

'a'.zfill(4) # 000a

'-a'.zfill(4) # -00a

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


метода str.rjust(), передав 0 в качестве второго аргумента. Условным
антонимом функции, добавляющим нули справа можно
считать str.ljust(), передав 0 в качестве второго аргумента.

Методы списков Python


list.append(x)
x: Элемент, который требуется добавить в список.

my_list = []
my_list.append(1)

my_list # [1]

my_list.append(3)

my_list # [1, 3]

Для добавления множества элементов используйте extend(). Внимание:


Данный метод модифицирует исходный объект на месте, возвращая при
этом None.

list.clear(i)
Удаляет из списка все имеющиеся в нём значения.

my_list = [1, 2, 3]

my_list.clear() # None

my_list # []

Действие метода эквивалентно выражению del my_list[:] .

list.copy()
Возвращает копию списка. Внимание: Возвращаемая копия является
поверхностной (без рекурсивного копирования вложенных элементов).

my_list = [1, 2, 3]

my_list_copy = my_list.copy() # [1, 2, 3]

my_list # []

Действие метода эквивалентно выражению my_list[:].


list.count(x)
random_list = [4, 1, 5, 4, 10, 4]

random_list.count(4) # 3

Метод count считает количество значений x в списке.

list.extend(iterable)
Дополняет список элементами из указанного объекта.

 it: Объект, поддерживающий итерирование, элементами которого


требуется дополнить список.

my_list = []

my_list.extend([1, 2, 3]) # None

my_list # [1, 2, 3]

my_list.extend('add') # None

my_list # [1, 2, 3, 'a', 'd', 'd']

Для добавления единственного элемента используйте append().

Внимание: Данный метод модифицирует исходный объект на месте,


возвращая при этом None.

list.index(x, start, end)


Метод возвращает положение первого индекса, со значением х. Также
можно указать границы поиска start и end.
list.insert(i, x)
Вставляет указанный элемент перед указанным индексом

 i: Позиция (индекс), перед которой требуется поместить элемент.


Нумерация ведётся с нуля. Поддерживается отрицательная
индексация.
 x: Элемент, который требуется поместить в список.

Метод модифицирует

my_list = [1, 3]

my_list.insert(1, 2)

my_list # [1, 2, 3]

my_list.insert(-1, 4)

my_list # [1, 2, 4, 3]

Внимание: Данный метод модифицирует исходный объект на месте,


возвращая при этом None.

list.pop(i)
Возвращает элемент на указанной позиции, удаляя его из списка.

 i=None: Позиция искомого элемента в списке (целое число). Если


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

my_list = [1, 2, 3, 4, 5]

last = my_list.pop() # 5

my_list # [1, 2, 3, 4]
second = my_list.pop(-3) # 2

my_list # [1, 3, 4]

first = my_list.pop(0) # 1

my_list # [3, 4]

Чтобы удалить элемент из списка не возвращая его,


воспользуйтесь list.remove() .

list.remove(x)
Удаляет из списка указанный элемент.

 x: Элемент, который требуется удалить из списка. Если элемент


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

my_list = [1, 3]

my_list.remove(1)

my_list # [3]

my_list.remove(4) # ValueError

Внимание: Данный метод модифицирует исходный объект на месте,


возвращая при этом None.

list.reverse()
Перестраивает элементы списка в обратном порядке.

my_list = [1, 'two', 'a', 4]


my_list.reverse() # None

my_list # [4, 'a', 'two', 1]

Внимание: Данный метод модифицирует исходный объект на месте,


возвращая при этом None.

list.sort(key=None, reverse=False)
Сортирует элементы списка на месте.

 key=None: Функция, принимающая аргументом элемент,


используемая для получения из этого элемента значения для
сравнения его с другими.
 reverse=False : Флаг, указывающий следует ли производить
сортировку в обратном порядке.

my_list = [1, 'two', 'a', 4, 'a']

# Попытка упорядочить/сравнить несравнимые типы вызовет исключение

my_list.sort() # TypeError: unorderable types: str() <= int()

# Отсортируем «вручную», так чтобы 'а' были в конце.

my_list.sort(key=lambda val: val == 'a') # None

# Фактически мы отсортировали в соответствии

# с маской [False, False, False, True, True]

my_list # ['two', 4, 1, 'a', 'a']

Внимание: Данный метод модифицирует исходный объект на месте,


возвращая при этом None.
Методы словарей 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)
обновляет словарь, добавляя пары (ключ, значение) из other.
Существующие ключи перезаписываются. Возвращает None (не новый
словарь!).

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

Исключения (Exceptions)
Python
— ещё один тип данных в python. Исключения
Исключения (exceptions)
необходимы для того, чтобы сообщать программисту об ошибках. Самый
простой пример исключения — деление на ноль. Если попробовать
запустить такую программу

z = 100 / 0

она завершится с ошибкой

Traceback (most recent call last):


File "", line 1, in

ZeroDivisionError: division by zero

— это название исключения, а division by zero — его


ZeroDivisionError
краткое описание. Также Python сообщит номер строки, где это
исключение возникло.

Разумеется, возможны и другие исключения. Например, при попытке


сложить строку и число

z = 2 + '1'

произойдет исключение TypeError

Traceback (most recent call last):

File "", line 1, in

TypeError: unsupported operand type(s) for +: 'int' and 'str'

В этом примере генерируется исключение TypeError. Подсказки дают нам


полную информацию о том, где порождено исключение, и с чем оно
связано.

Рассмотрим иерархию встроенных в python исключений, хотя иногда вам


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

 BaseException — базовое исключение, от которого берут начало все


остальные.
 — исключение, порождаемое функцией
SystemExit sys.exit при
выходе из программы.
 — порождается при прерывании программы
KeyboardInterrupt
пользователем (обычно сочетанием клавиш Ctrl+C).
 GeneratorExit — порождается при вызове метода close объекта
generator.
 — а вот тут уже заканчиваются полностью системные
Exception
исключения (их лучше не трогать) и начинаются обыкновенные,
с которыми можно работать.
 — порождается встроенной функцией
StopIteration next, если
в итераторе больше нет элементов.
 ArithmeticError — арифметическая ошибка.
 — порождается при неудачном выполнении
FloatingPointError
операции с плавающей запятой. На практике встречается нечасто.
 — возникает, когда результат арифметической
OverflowError
операции слишком велик для представления. Не появляется при
обычной работе с целыми числами (так как python поддерживает
длинные числа), но может возникать в некоторых других случаях.
 ZeroDivisionError — деление на ноль.
 AssertionError — выражение в функции assert ложно.
 AttributeError — объект не имеет данного атрибута (значения или
метода).
 — операция, связанная с буфером, не может быть
BufferError
выполнена.
 — функция наткнулась на конец файла и не смогла
EOFError
прочитать то, что хотела.
 ImportErrorс — не удалось импортирование модуля или его атрибута.
 LookupError — некорректный индекс или ключ.
 IndexError — индекс не входит в диапазон элементов.
 — несуществующий ключ (в словаре, множестве или другом
KeyError
объекте).
 MemoryError — недостаточно памяти.
 NameError — не найдено переменной с таким именем.
 — сделана ссылка на локальную переменную
UnboundLocalError
в функции, но переменная не определена ранее.
 OSError — ошибка, связанная с системой.
 BlockingIOError

 ChildProcessError — неудача при операции с дочерним процессом.


 — базовый класс для исключений, связанных
ConnectionError
с подключениями.
 BrokenPipeError

 ConnectionAbortedError

 ConnectionRefusedError

 ConnectionResetError

 — попытка создания файла или директории, которая


FileExistsError
уже существует.
 FileNotFoundError — файл или директория не существует.
 InterruptedError — системный вызов прерван входящим сигналом.
 IsADirectoryError — ожидался файл, но это директория.
 NotADirectoryError — ожидалась директория, но это файл.
 PermissionError — не хватает прав доступа.
 ProcessLookupError — указанного процесса не существует.
 TimeoutError — закончилось время ожидания.
 ReferenceError — попытка доступа к атрибуту со слабой ссылкой.
 — возникает, когда исключение не попадает ни под одну
RuntimeError
из других категорий.
 — возникает, когда абстрактные методы класса
NotImplementedError
требуют переопределения в дочерних классах.
 SyntaxError — синтаксическая ошибка.
 IndentationError — неправильные отступы.
 TabError — смешивание в отступах табуляции и пробелов.
 SystemError — внутренняя ошибка.
 TypeError — операция применена к объекту несоответствующего
типа.
 — функция получает аргумент правильного типа,
ValueError
но некорректного значения.
 — ошибка, связанная с кодированием /
UnicodeError
раскодированием unicode в строках.
 UnicodeEncodeError — исключение, связанное с кодированием unicode.
 — исключение, связанное
UnicodeDecodeError
с декодированием unicode.
 UnicodeTranslateError — исключение, связанное с переводом unicode.
 — Базовый класс для исключений-предупреждений. Данное
Warning
семейство исключений представляет собой различные категории
предупреждений.
 — Предупреждения, связанные с возможными
BYTESWARNING
проблемами при работе с байтами. Данная категория
предупреждений используется в случаях возможных ошибок при
работе с бйтами (bytes и bytearray).
 — Категория предупреждений о функциональности
DeprecationWarning
нежелательной к использованию. Эту категорию обычно
используют для указания на то, что некая часть функциональности
морально устарела (возможно ей на смену пришла более
совершенная) и не рекомендуется к использованию.
 — Категория, описывающая предупреждения
FUTUREWARNING
об изменениях в будущем. Предупреждения данной категории
призваны оповещать о грядущих семантических изменениях.
Пример предупреждения о грядущих изменениях
из numpy: FutureWarning: comparison to 'None' will result in an
elementwise object comparison in the future.
 — предупреждение о вероятной ошибке при импорте
IMPORTWARNING
модуля. Предупреждения данной категории могут использоваться,
например, в случаях внесения изменений в систему импорта при
помощи перехватчиков (хуков).
 — Категория предупреждений
PendingDeprecationWarning
о функциональности, которая вскоре должна стать нежелательной
к использованию.
 — Предупреждения, связанные с возможными
ResourceWarning
проблемами при работе с ресурсами. Примером использования
данной категории предупреждений можут служить указание
на необходимость закрытия сокета, что необходимо для
высвобождения ресурсов.
 — Предупреждение о сомнительном поведении
RuntimeWarning
во время исполнения. Категория может быть использована для
обозначения сомнительного поведения приложения, например,
если код выявил вероятные погрешности в вычислениях.
 — Предупреждение об использовании сомнительных
SyntaxWarning
синтаксических конструкций. Категория используется в случаях,
когда замечены вероятные синтаксические ошибки.
 — Предупреждения, связанные с возможными
UnicodeWarning
проблемами при работе с Юникод.
 USERWARNING —
Класс для пользовательских предупреждений. Может
использоваться пользователями в качестве базового класса для
создания собственных иерархий предупреждений.

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


исключения, мы можем их обрабатывать. Для обработки исключений
используется конструкция try — except.

Первый пример применения этой конструкции:

try:

k=1/0

except ZeroDivisionError:

k=0

print(k)

В блоке try мы выполняем инструкцию, которая может породить


исключение, а в блоке except мы перехватываем их. При этом
перехватываются как само исключение, так и его потомки. Например,
перехватывая ArithmeticError, мы также
перехватываем FloatingPointError , OverflowError и ZeroDivisionError .

try:

k=1/0
except ArithmeticError:

k=0

print(k)

Также возможна инструкция except без аргументов, которая


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

Ещё две инструкции, относящиеся к нашей проблеме,


это finally и else. Finally выполняет блок инструкций в любом случае,
было ли исключение, или нет (применима, когда нужно непременно
что-то сделать, к примеру, закрыть файл). Инструкция else выполняется
в том случае, если исключения не было.

f = open('1.txt')

ints = []

try:

for line in f:

ints.append(int(line))

except ValueError:

print('Это не число. Выходим.')

except Exception:

print('Это что ещё такое?')


else:

print('Всё хорошо.')

finally:

f.close()

print('Я закрыл файл.')

# Именно в таком порядке: try, группа except, затем else, и только потом finally.

Это не число. Выходим.

Я закрыл файл.

Работа с файлами в Python


Для того, чтобы начать работать с файлом, его нужно открыть. Для этого
есть специальна встроенная функция

open(с, mode='r', buffering=-1, encoding=None,


errors=None, newline=None, closefd=True,
opener=None)
Открывает файл и возвращает представляющий его объект.

Режимы открытия
файла

r открытие файла на чтение


Режимы открытия
файла

открытие файла на запись, содержимое файла удаляется, если файла не суще


w создается новый

x открытие файла на запись, информация добавляется в конец файла

b открытие файла в двоичном режиме

t открытие файла в текстовом режиме

+ открытие файла на чтение и запись

Методы объекта файла

file.read(size)
Считывает и возвращает информацию из файла. Если необязательный
параметр size указан, возвращает только нужное количество
символов/байт.
file.write(content)
Записывает информацию в файл

file.tell()
Возвращает текущий указатель внутри файла

file.seek(position, from_what=0)
Перемещает указатель в заданную позицию. Первый аргумент — это
количество позиций, на которое нужно переместить указатель. Если этот
аргумент положительный, указатель будет перемещен вправо, если
отрицательный — влево.

Второй, необязательный аргумент — это rom_what С помощью него можно


указать, откуда следует переместить указатель: 0 — от начала файла, 1 —
от текущей позиции и 2 — от конца файла. По-умолчанию этот аргумент
принимает значение 0

file.close()
Закрывает файл. Обязательно вызывайте этот метод после окончания
работы с файлом.

Модуль random
Модуль random предоставляет функции для генерации случайных чисел,
букв, случайного выбора элементов последовательности.

random.betavariate(alpha, beta)
бета-распределение. alpha > 0 , beta > 0 . Возвращает от 0 до 1.
random.choice(sequence)
возвращает случайный элемент непустой последовательности

random.expovariate(lambd)
экспоненциальное распределение. lambd равен 1/среднее
желаемое. Lambd должен быть отличным от нуля. Возвращаемые значения
от 0 до плюс бесконечности, если lambd положительно, и от минус
бесконечности до 0, если lambd отрицательный.

random.gammavariate(alpha, beta)
гамма-распределение. Условия на параметры alpha > 0 и beta > 0.

random.gauss(значение, стандартное отклонение)


распределение Гаусса.

random.getrandbits(N)
возвращает N случайных бит.

random.getstate()
внутреннее состояние генератора.

random.lognormvariate(mu, sigma)
логарифм нормального распределения. Если взять натуральный логарифм
этого распределения, то вы получите нормальное распределение
со средним mu и стандартным отклонением sigma. mu может иметь любое
значение, и sigma должна быть больше нуля.
random.normalvariate (mu, sigma)
нормальное распределение. mu — среднее значение, sigma — стандартное
отклонение.

random.paretovariate(alpha)
распределение Парето.

random.randint(A, B)
случайное целое число N, A ≤ N ≤ B .

random.random()
случайное число от 0 до 1.

random.randrange(start, stop, step)


возвращает случайно выбранное число из последовательности.

random.sample(population, k)
список длиной k из последовательности population.f

random.seed(X, version=2)
инициализация генератора случайных чисел. Если X не указан,
используется системное время.

random.setstate(state)
восстанавливает внутреннее состояние генератора.
Параметр state должен быть получен функцией getstate().
random.shuffle(sequence, rand)
перемешивает последовательность (изменяется сама
последовательность). Поэтому функция не работает для неизменяемых
объектов.

random.triangular(low, high, mode)


случайное число с плавающей точкой, low ≤ N ≤ high . Mode —
распределение.

random.uniform(A, B)
случайное число с плавающей точкой, A ≤ N ≤ B (или B ≤ N ≤ A ).

random.vonmisesvariate(mu, kappa)
mu — средний угол, выраженный в радианах от 0 до 2π, и kappa —
параметр концентрации, который должен быть больше или равен нулю.
Если каппа равна нулю, это распределение сводится к случайному углу
в диапазоне от 0 до 2π.

random.weibullvariate((alpha, beta)
распределение Вейбулла.

Модуль datetime
Модуль datetime предоставляет классы для обработки времени и даты
разными способами. Поддерживается и стандартный способ
представления времени, однако больший упор сделан на простоту
манипулирования датой, временем и их частями. Классы,
предоставляемые модулем datetime:
datetime.date(year, month, day)
стандартная дата. Атрибуты: year, month, day. Неизменяемый объект.

import datetime

d = datetime.date(2012, 12, 14)

print(d.year) # 2012

print(d.day) # 14

print(d.month) # 12

datetime.datetime(year, month, day, hour=0,


minute=0, second=0, microsecond=0, tzinfo=None)
содержит всю информацию объектов datetime.date плюс datetime.time.

import datetime

a = datetime.datetime(2017, 3, 5)

print(a) # datetime.datetime(2017, 3, 5, 0, 0)

b = datetime.datetime(2017, 3, 5, 12, 30, 10)

print(b) # datetime.datetime(2017, 3, 5, 12, 30, 10)

d = datetime.datetime(2017, 3, 5, 12, 30, 10)

print(d.year) # 2017

print(d.second) # 10

print(d.hour) # 12
принимает несколько дополнительных аргументов: год,
datetime.datetime
месяц, день, час, минута и секунда. Это также позволяет вам указывать
информацию о микросекундах и часовом поясе.

datetime.time(hour=0, minute=0, second=0,


microsecond=0, tzinfo=None)
стандартное время, не зависит от даты. Атрибуты: hour, minute, second,
microsecond, tzinfo.

datetime.timedelta
описывает определенный период во времени, который находится между
двумя различными моментами

Атрибут Значение

days Между −999999999 and 999999999 включительно

seconds Между 0 и 86399 включительно

microseconds Между 0 и 999999 включительно

Поддерживаемые операции
Операция Результат

t1 = t2 + t3 Суммирует дельту между датами

t1 = t2 — t3 Разница дельт между датами

t1 = t2 * i or t1 = i *
t2 Умножение дельты на целое число

t1 = t2 * f or t1 = f *
t2 Дельта умножается на число с плавающей точкой

Деление общей длительности t2 на интервал t3. Возвращает объект с плавающей


f = t2 / t3 точкой

t1 = t2 / f or t1 =
t2 / i Дельта делится на число с плавающей точкой или целое

t1 = t2% t3 Остаток часть вычисляется как объект timedelta


Операция Результат

Вычисляет частное и остаток: q = t1 // t2 (3) и r = t1% t2. q — целое число, а r —


q, r = divmod(t1, t2) объект deltatime

+t1 Возвращает объект timedelta с полностью идентичным значением t1

—t1 возвращает объект timedelta с полностью противоположным значением t1

abs(t) возвращает объект timedelta с положительным значением всех свойств t

str(t) возвращает строковое представление объекта a в формате, заданном по умолчан

возвращает строковое представление объекта a в формате с отрицательными


repr(t) значениями

timedelta.total_seconds()
Возвращает общее количество секунд, содержащихся
в продолжительности. Эквивалентно (td.microseconds + (td.seconds +
td.days * 24 * 3600) * 10 * 6)/10 * 6 рассчитано с включенным истинным
делением. Пример:
>>> from datetime import timedelta

>>> year = timedelta(days=365)

>>> another_year = timedelta(weeks=40, days=84, hours=23,

... minutes=50, seconds=600) # adds up to 365 days

>>> year.total_seconds()

31536000.0

>>> year == another_year

True

>>> ten_years = 10 * year

>>> ten_years, ten_years.days // 365

(datetime.timedelta(days=3650), 10)

>>> nine_years = ten_years - year

>>> nine_years, nine_years.days // 365

(datetime.timedelta(days=3285), 9)

>>> three_years = nine_years // 3

>>> three_years, three_years.days // 365

(datetime.timedelta(days=1095), 3)

>>> abs(three_years - ten_years) == 2 * three_years + year

True
datetime.tzinfo
абстрактный базовый класс для информации о временной зоне
(например, для учета часового пояса и/или летнего времени).

Методы класса datetime:

datetime.combine(date, time)
объект datetime из комбинации объектов date и time.

datetime.fromtimestamp(timestamp)
дата из стандартного представления времени.

datetime.fromordinal(ordinal)
дата из числа, представляющего собой количество дней, прошедших
с 01.01.1970.

datetime.now(tz=None)
объект datetime из текущей даты и времени.

datetime.today()
объект datetime из текущей даты и времени. Работает также, как
и datetime.now() со значением tz=None.

datetime.strptime(date_string, format)
преобразует строку в datetime по формату

Формат Значение
Формат Значение

%a Сокращенное название дня недели

%A Полное название дня недели

%b Сокращенное название месяца

%B Полное название месяца

%c Дата и время

%d День месяца 01,31

%H Час (24-часовой формат) 00,23


%I Час (12-часовой формат) 01,12

%j День года 001,366

%m Номер месяца 01,12

%M Число минут 00,59

%p До полудня или после (при 12-часовом формате)

%S Число секунд 00,61

%U Номер недели в году (нулевая неделя начинается с воскресенья) 00,53

%w Номер дня недели 0(Sunday), 6

%W Номер недели в году (нулевая неделя начинается с понедельника) 00,53


%x Дата

%X Время

%y Год без века 00,99

%Y Год с веком

%Z Временная зона

%% Знак '%'

datetime.strftime(format)
преобразует datetime в строку по формату
Формат Значение

%a Сокращенное название дня недели

%A Полное название дня недели

%b Сокращенное название месяца

%B Полное название месяца

%c Дата и время

%d День месяца 01,31

%H Час (24-часовой формат) 00,23

%I Час (12-часовой формат) 01,12


Формат Значение

%j День года 001,366

%m Номер месяца 01,12

%M Число минут 00,59

%p До полудня или после (при 12-часовом формате)

%S Число секунд 00,61

%U Номер недели в году (нулевая неделя начинается с воскресенья) 00,53

%w Номер дня недели 0(Sunday), 6

%W Номер недели в году (нулевая неделя начинается с понедельника) 00,53


Формат Значение

%x Дата

%X Время

%y Год без века 00,99

%Y Год с веком

%Z Временная зона

%% Знак '%'

datetime.date()
объект даты (с отсечением времени).

datetime.isoweekday()
день недели в виде числа, понедельник — 1, воскресенье — 7.
datetime.isocalendar()
кортеж (год в формате ISO, ISO номер недели, ISO день недели).

datetime.isoformat(sep='T')
красивая строка вида «YYYY-MM-DDTHH: MM: SS.mmmmmm» или, если
microsecond == 0, «YYYY-MM-DDTHH: MM: SS»

datetime.replace ([year[, month[, day[, hour, minute,


second, microsecond, tzinfo]]]])
возвращает новый объект datetime с изменёнными атрибутами.

datetime.time()
объект времени (с отсечением даты).

datetime.timetuple()
возвращает struct_time из datetime.

datetime.timestamp()
возвращает время в секундах с начала эпохи.

datetime.toordinal()
количество дней, прошедших с 01.01.1970.

datetime.weekday()
день недели в виде числа, понедельник — 0, воскресенье — 6.

Поддерживаемые операции:
Операция Результат

datetime2 = datetime1 + timedelta Прибавляет к дате указанный период

datetime2 = datetime1 — timedelta Вычитает из даты указанный период

timedelta = datetime1 — datetime2 Возвращает разницу между двумя датами

datetime1 < datetime2 Сравнивает дату и время (3)

Функции модуля canvas


canvas.circle(x, y, radius)
Рисует круг в точке x, y с радиусом radius;

canvas.clear()
Очищает холст целиком;

canvas.clear_rect(x, y, width, height)


Очищает прямоугольную область с левым верхним углом в точке x, y,
шириной width и высотой height;
canvas.draw()
Функция перерисовки холста. Важно: вызывается только после того, как
вызваны все нужные функции рисования;

canvas.fill_circle(x, y, radius)
Рисует закрашенный круг в точке x, y с радиусом radius;

canvas.fill_rect(x, y, width, height)


Рисует закрашенный прямоугольник с левым верхним углом в точке x, y,
шириной width и высотой height;

canvas.fill_style('color')
Функция для изменения цвета закраски. color — устанавливаемый цвет.
Цвета можно выбрать из списка на этой странице Википедии;

canvas.fill_text(text, x, y, font='Monospace', size=24,


align='left')
Рисует закрашенный текст text в точке x, y шрифтом font (Monospace
по умолчнию), размером size (по умолчанию 24) пикселей
и выравниванием align (по умолчанию — «left»). Возможные варианты
выравнивания — «left», «right» и «center»

canvas.line_to(x, y)
Рисует линию из точки, в которой находится указатель в точку,
с координатами x, y;

canvas.line_width(width)
Устанавливает ширину линии width в пикселях;
canvas.listen()
Запускает цикл ожидания событий от холста. Если такого ожидания
не будет, обработчики событий не сработают.

canvas.move_to(x, y)
Устанавливает указатель в точку, с координатами x, y;

canvas.radius_line(x, y, angle, length)


Рисует радиальную линию из точки x, y под углом angle (в градусах)
и длиной length.

canvas.reset()
Очищает холст целиком, сбрасывает цвет на черный и устанавливает
ширину линий в 1;

canvas.set_color('color')
Функция для изменения цвета кисти. color — устанавливаемый цвет.
Цвета можно выбрать из списка на этой странице Википедии;

canvas.set_onclick(callback)
Устанавливает обработчик клика мышкой по холсту. Функция-обработчик
callback должна принимать два параметра — x и y. Например

import canvas

def my_click(x, y):

print("Только что был клик!", x, y)

canvas.set_onclick(my_click)
canvas.listen()

canvas.stroke_rect(x, y, width, height)


Рисует прямоугольник с левым верхним углом в точке x, y, шириной width
и высотой height;

canvas.stroke_style('color')
Делает то же, что и canvas.set_color

canvas.stroke_text(text, x, y, font='Monospace',
size=24, align='left')
Рисует контур текста text в точке x, y шрифтом font (Monospace
по умолчнию), размером size (по умолчанию 24) пикселей
и выравниванием align (по умолчанию — «left»). Возможные варианты
выравнивания — «left», «right» и «center»

canvas.onclick(callback)
Тоже самое, что canvas.set_onclick.

canvas.onkey(callback, key_code)
Устанавливает обработчик нажатия клавиши на клавиатуре. Если
параметр key_code не передан, функция-обработчик должна принимать
один аргумент. В него будет передан код нажатой клавиши.

Если параметр key_code передан, то функция обработчик не должна


принимать ни одного аргумента.

import canvas

# Функция-обработчик без аргумента. Будет вызвана


# при нажатии клавиши "стрелка влево"

def left():

print('ArrowLeft (left)')

canvas.onkey(left, 'ArrowLeft')

# Функция-обработчик с одним аргументом. Будет вызвана

# при нажатии любой клавиши на клавиатуре

# в key_code будет записан код нажатой клавиши

def keydown(key_code):

print(key_code)

canvas.onkey(keydown)

canvas.listen()

canvas.onkeyup(callback, key_code)
Устанавливает обработчик отпускания клавиши на клавиатуре. Если
параметр key_code не передан, функция-обработчик должна принимать
один аргумент. В него будет передан код отпушенной клавиши.

Если параметр key_code передан, то функция обработчик не должна


принимать ни одного аргумента.

import canvas

# Функция-обработчик без аргумента. Будет вызвана

# при отпускании клавиши "стрелка влево"

def left():
print('ArrowLeft (left)')

canvas.onkeyup(left, 'ArrowLeft')

# Функция-обработчик с одним аргументом. Будет вызвана

# при отпускании любой клавиши на клавиатуре

# в key_code будет записан код отпущенной клавиши

def keydown(key_code):

print(key_code)

canvas.onkeyup(keydown)

canvas.listen()

Коды клавиш такие же, как и в canvas.onkey

canvas.onrightclick(callback)
То же самое, что canvas.set_onclick, но для правой кнопки мыши

Коды клавиш
Код клавиши — это строка, чувствительная к регистру.

Код Клавиша

Space Пробел
Код Клавиша

ArrowUp ↑

ArrowDown ↓

ArrowLeft ←

ArrowRight →

Доступные значения цветов


для модуля tkinter
alice blue

AliceBlue

antique white

AntiqueWhite

AntiqueWhite1

AntiqueWhite2

AntiqueWhite3

AntiqueWhite4

aquamarine
aquamarine1

aquamarine2

aquamarine3

aquamarine4

azure

azure1

azure2

azure3

azure4

beige

bisque

bisque1

bisque2

bisque3

bisque4

black

blanched almond

BlanchedAlmond

blue

blue violet

blue1

blue2

blue3

blue4

BlueViolet

brown

brown1

brown2

brown3

brown4

burlywood

burlywood1
burlywood2

burlywood3

burlywood4

cadet blue

CadetBlue

CadetBlue1

CadetBlue2

CadetBlue3

CadetBlue4

chartreuse

chartreuse1

chartreuse2

chartreuse3

chartreuse4

chocolate

chocolate1

chocolate2

chocolate3

chocolate4

coral

coral1

coral2

coral3

coral4

cornflower blue

CornflowerBlue

cornsilk

cornsilk1

cornsilk2

cornsilk3

cornsilk4

cyan
cyan1

cyan2

cyan3

cyan4

dark blue

dark cyan

dark goldenrod

dark gray

dark green

dark grey

dark khaki

dark magenta

dark olive green

dark orange

dark orchid

dark red

dark salmon

dark sea green

dark slate blue

dark slate gray

dark slate grey

dark turquoise

dark violet

DarkBlue

DarkCyan

DarkGoldenrod

DarkGoldenrod1

DarkGoldenrod2

DarkGoldenrod3

DarkGoldenrod4

DarkGray

DarkGreen
DarkGrey

DarkKhaki

DarkMagenta

DarkOliveGreen

DarkOliveGreen1

DarkOliveGreen2

DarkOliveGreen3

DarkOliveGreen4

DarkOrange

DarkOrange1

DarkOrange2

DarkOrange3

DarkOrange4

DarkOrchid

DarkOrchid1

DarkOrchid2

DarkOrchid3

DarkOrchid4

DarkRed

DarkSalmon

DarkSeaGreen

DarkSeaGreen1

DarkSeaGreen2

DarkSeaGreen3

DarkSeaGreen4

DarkSlateBlue

DarkSlateGray

DarkSlateGray1

DarkSlateGray2

DarkSlateGray3

DarkSlateGray4

DarkSlateGrey
DarkTurquoise

DarkViolet

deep pink

deep sky blue

DeepPink

DeepPink1

DeepPink2

DeepPink3

DeepPink4

DeepSkyBlue

DeepSkyBlue1

DeepSkyBlue2

DeepSkyBlue3

DeepSkyBlue4

dim gray

dim grey

DimGray

DimGrey

dodger blue

DodgerBlue

DodgerBlue1

DodgerBlue2

DodgerBlue3

DodgerBlue4

firebrick

firebrick1

firebrick2

firebrick3

firebrick4

floral white

FloralWhite

forest green
ForestGreen

gainsboro

ghost white

GhostWhite

gold

gold1

gold2

gold3

gold4

goldenrod

goldenrod1

goldenrod2

goldenrod3

goldenrod4

green

green yellow

green1

green2

green3

green4

GreenYellow

grey

grey0

grey1

grey2

grey3

grey4

grey5

grey6

grey7

grey8

grey9
grey10

grey11

grey12

grey13

grey14

grey15

grey16

grey17

grey18

grey19

grey20

grey21

grey22

grey23

grey24

grey25

grey26

grey27

grey28

grey29

grey30

grey31

grey32

grey33

grey34

grey35

grey36

grey37

grey38

grey39

grey40

grey41
grey42

grey43

grey44

grey45

grey46

grey47

grey48

grey49

grey50

grey51

grey52

grey53

grey54

grey55

grey56

grey57

grey58

grey59

grey60

grey61

grey62

grey63

grey64

grey65

grey66

grey67

grey68

grey69

grey70

grey71

grey72

grey73
grey74

grey75

grey76

grey77

grey78

grey79

grey80

grey81

grey82

grey83

grey84

grey85

grey86

grey87

grey88

grey89

grey90

grey91

grey92

grey93

grey94

grey95

grey96

grey97

grey98

grey99

grey100

honeydew

honeydew1

honeydew2

honeydew3

honeydew4
hot pink

HotPink

HotPink1

HotPink2

HotPink3

HotPink4

indian red

IndianRed

IndianRed1

IndianRed2

IndianRed3

IndianRed4

ivory

ivory1

ivory2

ivory3

ivory4

khaki

khaki1

khaki2

khaki3

khaki4

lavender

lavender blush

LavenderBlush

LavenderBlush1

LavenderBlush2

LavenderBlush3

LavenderBlush4

lawn green

LawnGreen

lemon chiffon
LemonChiffon

LemonChiffon1

LemonChiffon2

LemonChiffon3

LemonChiffon4

light blue

light coral

light cyan

light goldenrod

light goldenrod yellow

light gray

light green

light grey

light pink

light salmon

light sea green

light sky blue

light slate blue

light slate gray

light slate grey

light steel blue

light yellow

LightBlue

LightBlue1

LightBlue2

LightBlue3

LightBlue4

LightCoral

LightCyan

LightCyan1

LightCyan2

LightCyan3
LightCyan4

LightGoldenrod

LightGoldenrod1

LightGoldenrod2

LightGoldenrod3

LightGoldenrod4

LightGoldenrodYellow

LightGray

LightGreen

LightGrey

LightPink

LightPink1

LightPink2

LightPink3

LightPink4

LightSalmon

LightSalmon1

LightSalmon2

LightSalmon3

LightSalmon4

LightSeaGreen

LightSkyBlue

LightSkyBlue1

LightSkyBlue2

LightSkyBlue3

LightSkyBlue4

LightSlateBlue

LightSlateGray

LightSlateGrey

LightSteelBlue

LightSteelBlue1

LightSteelBlue2
LightSteelBlue3

LightSteelBlue4

LightYellow

LightYellow1

LightYellow2

LightYellow3

LightYellow4

lime green

LimeGreen

linen

magenta

magenta1

magenta2

magenta3

magenta4

maroon

maroon1

maroon2

maroon3

maroon4

medium aquamarine

medium blue

medium orchid

medium purple

medium sea green

medium slate blue

medium spring green

medium turquoise

medium violet red

MediumAquamarine

MediumBlue

MediumOrchid
MediumOrchid1

MediumOrchid2

MediumOrchid3

MediumOrchid4

MediumPurple

MediumPurple1

MediumPurple2

MediumPurple3

MediumPurple4

MediumSeaGreen

MediumSlateBlue

MediumSpringGreen

MediumTurquoise

MediumVioletRed

midnight blue

MidnightBlue

mint cream

MintCream

misty rose

MistyRose

MistyRose1

MistyRose2

MistyRose3

MistyRose4

moccasin

navajo white

NavajoWhite

NavajoWhite1

NavajoWhite2

NavajoWhite3

NavajoWhite4

navy
navy blue

NavyBlue

old lace

OldLace

olive drab

OliveDrab

OliveDrab1

OliveDrab2

OliveDrab3

OliveDrab4

orange

orange red

orange1

orange2

orange3

orange4

OrangeRed

OrangeRed1

OrangeRed2

OrangeRed3

OrangeRed4

orchid

orchid1

orchid2

orchid3

orchid4

pale goldenrod

pale green

pale turquoise

pale violet red

PaleGoldenrod

PaleGreen
PaleGreen1

PaleGreen2

PaleGreen3

PaleGreen4

PaleTurquoise

PaleTurquoise1

PaleTurquoise2

PaleTurquoise3

PaleTurquoise4

PaleVioletRed

PaleVioletRed1

PaleVioletRed2

PaleVioletRed3

PaleVioletRed4

papaya whip

PapayaWhip

peach puff

PeachPuff

PeachPuff1

PeachPuff2

PeachPuff3

PeachPuff4

peru

pink

pink1

pink2

pink3

pink4

plum

plum1

plum2

plum3
plum4

powder blue

PowderBlue

purple

purple1

purple2

purple3

purple4

red

red1

red2

red3

red4

rosy brown

RosyBrown

RosyBrown1

RosyBrown2

RosyBrown3

RosyBrown4

royal blue

RoyalBlue

RoyalBlue1

RoyalBlue2

RoyalBlue3

RoyalBlue4

saddle brown

SaddleBrown

salmon

salmon1

salmon2

salmon3

salmon4
sandy brown

SandyBrown

sea green

SeaGreen

SeaGreen1

SeaGreen2

SeaGreen3

SeaGreen4

seashell

seashell1

seashell2

seashell3

seashell4

sienna

sienna1

sienna2

sienna3

sienna4

sky blue

SkyBlue

SkyBlue1

SkyBlue2

SkyBlue3

SkyBlue4

slate blue

slate gray

slate grey

SlateBlue

SlateBlue1

SlateBlue2

SlateBlue3

SlateBlue4
SlateGray

SlateGray1

SlateGray2

SlateGray3

SlateGray4

SlateGrey

snow

snow1

snow2

snow3

snow4

spring green

SpringGreen

SpringGreen1

SpringGreen2

SpringGreen3

SpringGreen4

steel blue

SteelBlue

SteelBlue1

SteelBlue2

SteelBlue3

SteelBlue4

tan

tan1

tan2

tan3

tan4

thistle

thistle1

thistle2

thistle3
thistle4

tomato

tomato1

tomato2

tomato3

tomato4

turquoise

turquoise1

turquoise2

turquoise3

turquoise4

violet

violet red

VioletRed

VioletRed1

VioletRed2

VioletRed3

VioletRed4

wheat

wheat1

wheat2

wheat3

wheat4

white

white smoke

WhiteSmoke

yellow

yellow green

yellow1

yellow2

yellow3

yellow4
YellowGreen

Вам также может понравиться