
Полная версия
Справочник Python

Дмитрий Одиссеев
Справочник Python
Вложенное
Эта книга – не учебник. И не энциклопедия. Это скорее блокнот, который лежит рядом, когда ты пишешь код и вдруг забываешь, как работает enumerate() или как правильно импортировать datetime. Я не ставил цель объяснить всё. Я хотел собрать то, что действительно нужно. Без воды. Без философии. Только команды, конструкции, модули, скрипты – всё, что помогает не зависать на Stack Overflow по 40 минут из-за одной строчки. Если ты только начинаешь – отлично. Если ты уже пишешь на Python, но хочешь держать под рукой короткие и понятные шпаргалки – ещё лучше. А если ты просто любишь, когда всё под рукой и по делу – тогда мы с тобой на одной волне. Я писал это не как преподаватель. А как человек, который сам сто раз забывал, как работает zip(), и каждый раз гуглил, как правильно писать lambda.
Пусть эта книга будет твоим быстрым входом, твоим напоминанием, твоим карманным Python-напарником.
Поехали.
Основы Python: переменные и типы данных, простые конструкции
X = 10
Name = “Артем”
Is_active = True
A = 5 # int
B = 3.14 # float
C = “hello” # str
D = [1, 2, 3] # list
E = (1, 2) # tuple
F = {“x”: 1} # dict
G = {1, 2, 3} # set
H = None # NoneType
Name = input(“Введите имя: “)
Print(“Привет,”, name)
Age = 18
If age >= 18:
Print(“Доступ разрешён”)
Elif age > 0:
Print(“Слишком рано”)
Else:
Print(“Некорректный возраст”)
For i in range(5):
Print(i)
N = 0
While n < 5:
Print(n)
N += 1
# Это однострочный комментарий
Это
Многострочный
Комментарий
“”
Функции, списки, словари и работа с данными
Функции позволяют переиспользовать код и делать его чище.
# Определяем функцию с аргументом name
def greet(name):
Return f”Привет, {name}!”
# Вызываем функцию и выводим результат
Print(greet(“Артем”))
# Если имя не передано, будет использовано “гость”
def greet(name=”гость”):
Print(f”Привет, {name}”)
# Функция возвращает кортеж из двух чисел
Def get_coords():
Return 10, 20
# Распаковываем результат в две переменные
X, y = get_coords()
Списки: list
# Создаём список фруктов
Fruits = [“яблоко”, “банан”, “вишня”]
# Добавляем элемент в конец списка
Fruits.append(“груша”)
# Изменяем второй элемент (индексация с нуля)
Fruits[1] = “манго”
# Выводим первый элемент
Print(fruits[0])
# Проходим по каждому элементу списка. Перебор списка
For fruit in fruits:
Print(fruit)
# Выводим элементы с индексами 1 и 2 (не включая 3). Это срезы
Print(fruits[1:3])
Словари(dict)
Словари это пары ключ:значение
# Создаём словарь с данными о человеке
Person = {“name”: “Артем”, “age”: 30}
# Получаем значение по ключу
Print(person[“name”])
# Добавляем новый ключ и значение
Person[“city”] = “Москва”
# Проходим по ключам и значениям
For key, value in person.items():
Print(key, value)
Множества(set)
Это неупорядоченная коллекция
# Создаём множество
Nums = {1, 2, 3}
# Добавляем элемент
Nums.add(4)
# Удаляем элемент
Nums.remove(2)
Операции над множествами:
A = {1, 2, 3}
B = {3, 4, 5}
# Пересечение множеств (общие элементы)
Print(a & b)
# Объединение множеств (все уникальные элементы)
Print(a | b)
Кортежи(tuple)
Кортежи – это неизменяемые списки
# Создаём кортеж
Point = (10, 20)
# Распаковываем значения в переменные
X, y = point
# Проверяем, есть ли “яблоко” в списке
If “яблоко” in fruits:
Print(“Есть яблоко!”)
Операторы сравнения и логические операторы
# Сравнение
A = 5
B = 10
Print(a == b) # False
Print(a != b) # True
Print(a < b) # True
# Логические операторы
X = True
Y = False
Print(x and y) # False
Print(x or y) # True
Print(not x) # False
Арифметические операторы:
A = 10
B = 3
Print(a + b) # 13
Print(a – b) # 7
Print(a * b) # 30
Print(a / b) # 3.333…
Print(a // b) # 3 (целочисленное деление)
Print(a % b) # 1 (остаток)
Print(a ** b) # 1000 (возведение в степень)
Работа со строками:
Text = “Привет, мир”
# Индексация и срезы
Print(text[0]) # П
Print(text[-1]) # р
Print(text[0:6]) # Привет
# Методы строк
Print(text.upper()) # ПРИВЕТ, МИР
Print(text.lower()) # привет, мир
Print(text.replace(“мир”, “Python”)) # Привет, Python
Print(len(text)) # Длина строкиtext = “Привет, мир”
# Индексация и срезы
Print(text[0]) # П
Print(text[-1]) # р
Print(text[0:6]) # Привет
# Методы строк
Print(text.upper()) # ПРИВЕТ, МИР
print(text.lower()) # привет, мир
print(text.replace("мир", "Python")) # Привет, Python
print(len(text)) # Длина строки
Форматирование строк:
Name = “Артем”
Age = 30
# Старый способ
Print(“Имя: %s, возраст: %d” % (name, age))
# Новый способ
Print(“Имя: {}, возраст: {}”.format(name, age))
# f-строки (современно и удобно)
Print(f”Имя: {name}, возраст: {age}”)
Генераторы списков
# Создание списка квадратов чисел от 0 до 4
Squares = [x**2 for x in range(5)]
Print(squares) # [0, 1, 4, 9, 16]
# Фильтрация
Evens = [x for x in range(10) if x % 2 == 0]
Print(evens) # [0, 2, 4, 6, 8]
Встроенные функции:
Numbers = [1, 2, 3, 4]
Print(len(numbers)) # 4
Print(sum(numbers)) # 10
Print(max(numbers)) # 4
Print(min(numbers)) # 1
Print(sorted(numbers)) # [1, 2, 3, 4]
Логические условия
Age = 18
If age >= 18:
Print(“Доступ разрешён”)
Else:
Print(“Извини, тебе нет 18”)
Промежуточные условия
Score = 75
If score >= 90:
Print(“Отлично!”)
Elif score >= 70:
Print(“Хорошо”)
Else:
Print(“Нужно подтянуть”)
Вложенные условия
User = “admin”
Password = “1234”
If user == “admin”:
If password == “1234”:
Print(“Добро пожаловать, админ!”)
Else:
Print(“Пароль неверный”)
Else:
Print(“Пользователь не найден”)
Условия с логическими операторами
Login = True
Permissions = True
If login and permissions:
Print(“Вход успешен”)
Else:
Print(“Ошибка доступа”)
Цикл for
For – проходит по каждому элементу списка. От начала до конца.
Names = [“Оля”, “Игорь”, “Лена”]
For name in names:
Print(f”Привет, {name}”)
Цикл whIle. Пока условие верно
Counter = 0
While counter < 5:
Print(f”Счётчик: {counter}”)
Counter += 1
Перебор по диапазону range
For i in range(3):
Print(“Бум!”)
For i in range(1, 6, 2):
Print(i) # 1, 3, 5
Управление циклом
For i in range(10):
If i == 5:
Break # выйти из цикла
Print(i)
For i in range(5):
If i % 2 == 0:
Continue # пропустить выполнение
Print(i)
For i in range(3):
Print(i)
Else:
Print(“Цикл завершён без break”)
Вложенные циклы
For i in range(3):
For j in range(2):
Print(f”i={i}, j={j}”)
Простабудетя функция
Def greet():
Print(“Привет, Одиссей!”)
Greet() # вызов
Функция с параметрами
Def greet(name):
Print(f”Привет, {name}!”)
Greet(“Лена”) # Привет, Лена!
Возвращаем значение
Def square(x):
Return x ** 2
Result = square(5)
Print(result) # 25
Значение поу умолчанию
Def greet(name=”гость”):
Print(f”Добро пожаловать, {name}”)
Greet() # Добро пожаловать, гость
Greet(“Анна”) # Добро пожаловать, Анна
Аргументы
Def show_all(*args):
For item in args:
Print(item)
Show_all(“файл1.txt”, “файл2.txt”)
Def config(**kwargs):
For key, value in kwargs.items():
Print(f”{key} = {value}”)
Config(theme=”dark”, font=”Arial”)
Вложенные функции
Def outer():
Def inner():
Print(“Внутри!”)
Inner()
Исключения
Try – пытаемся выполнить
Except – ловим ошибку и пишем
Базовая конструкция try-except
Try:
Number = int(input(“Введите число: “))
Except ValueError:
Print(“Это не число!”)
Обработка нескольких ошибок
Try:
F = open(“data.txt”)
Content = f.read()
Except FileNotFoundError:
Print(“Файл не найден”)
Except IOError:
Print(“Ошибка при чтении”)
Обработчик finally
Он выполняется всегда, даже если выдает ошибку. В этом случае он закрывает файл.
Try:
F = open(“data.txt”)
# операции
Except:
Print(“Ошибка”)
Finally:
f.close() # выполняется всегда, даже при ошибке
Создание своих исключений
Raise позволяет вручную вызвать исключение.
Def check_age(age):
If age < 0:
Raise ValueError(“Возраст не может быть отрицательным”)
Check_age(-5) # вызовет ошибку
Отработка по типу ошибки
Try:
X = 1 / 0
Except ZeroDivisionError as e:
Print(f”Ошибка деления: {e}”)
Lambda функции (анонимные)
Это однострочная анонимная функция без имени. Подходит чтобы совершить быстрое действие без присваивании и объявлений в коде переменных
Square = lambda x: x ** 2
Print(square(5)) # 25 # можно так но эффективно будет функцию задать в print без переменной.
Примеры использования
С map
Nums = [1, 2, 3]
Squares = list(map(lambda x: x ** 2, nums))
Print(squares) # [1, 4, 9]
C filter
Nums = [5, 8, 11, 3]
Evens = list(filter(lambda x: x % 2 == 0, nums))
Print(evens) # [8]
Сортировка по условию
Data = [(1, “А”), (3, “B”), (2, “C”)]
Sorted_data = sorted(data, key=lambda item: item[0])
Print(sorted_data) # [(1, ‘А’), (2, ‘C’), (3, ‘B’)]
Если логика функции сложная или огромная, то здесь она не пригодится.
Дополнение к прошлым командам
Списки list
Append()
Добавляет элемент в конец списка
Names.append(“Игорь”)
Extend()
Добавляет несколько элементов сразу
Nums.extend([4, 5])
Insert()
Вставляет элемент по индексу
Colors.insert(1, “зелёный”)
Remove()
Удаляет первое вхождение элемента
Fruits.remove(“яблоко”)
Pop()
Удаляет элемент по индексу (или последний)
Items.pop(0)
Sort()
Сортирует список
Scores.sort()
Reverse()
Переворачивает список
Cards.reverse()
Count()
Считает количество вхождений элемента
Numbers.count(7)
Index()
Возвращает индекс элемента
Names.index(“Лена”)
Строки str
Strip()
Удаляет пробелы по краям строки
“ текст “.strip() → “текст”
Split()
Делит строку по разделителю
“а,б,в”.split(“,”) → [“а”, “б”, “в”]
Join()
Объединяет список строк в одну строку
“-“.join([“a”, “b”, “c”]) → “a-b-c”
Replace()
Заменяет подстроку
Text.replace(“мир”, “Python”)
Upper()
Превращает в заглавные буквы
“test”.upper() → “TEST”
Lower()
Превращает в строчные
“TEST”.lower() → “test”
Find()
Ищет подстроку и возвращает индекс
“hello”.find(“e”) → 1
Словари dict
Get()
Получает значение по ключу
User.get(“name”)
Keys()
Возвращает список всех ключей
Data.keys()
Values()
Возвращает список всех значений
Data.values()
Items()
Список пар ключ-значение
For k, v in info.items(): print(k, v)
Update()
Обновляет словарь новым содержимым
Config.update({“theme”: “dark”})
Pop()
Удаляет ключ и возвращает его значение
User.pop(“age”)
Функции
Def
Объявляет функцию
Def greet(): print(“Привет”)
Return
Возвращает значение из функции
Return x * 2
Lambda
Анонимная компактная функция
Lambda x: x ** 2
*args
Передача любого количества позиционных аргументов
Def show(*args): print(args)
**kwargs
Передача именованных аргументов
Def config(**kwargs): print(kwargs)
Циклы for
For
Цикл перебора элементов из коллекции
For item in items: print(item)
While
Цикл с условием
While x < 5: x += 1
Break
Прерывает цикл досрочно
For x in range(10): if x == 5: break
Continue
Пропускает текущую итерацию
For x in range(5): if x == 2: continue
Else
Выполняется, если цикл завершился без break
For x in range(3): print(x) else: print(“Готово”)
Условия if, else, iflse
If
Проверяет условие
If x > 5: print(“Больше”)
Elif
Дополнительная проверка
If x == 0: print(“Ноль”) elif x > 0: print(“Положительное”)
Else
Выполняется, если ни одно условие не подошло
If x < 0: print(“Отрицательное”) else: print(“Непонятно”)
Not
Отрицает булево значение
Not True → False
Арифметика
+
Сложение чисел
A + b
Вычитание
A – b
Умножение
A * b
/
Обычное деление
A / b
//
Целочисленное деление
A // b
%
Остаток от деления
A % b
**
Возведение в степень
A ** b
And
Логическое И
True and False → False
Or
Логическое ИЛИ
True or False → True
==
Проверка на равенство
X == y
x=
Проверка на неравенство
X != y
Встроенные функции
Len()
Возвращает длину объекта
Len(“Привет”) → 6
Sum()
Считает сумму элементов
Sum([1, 2, 3]) → 6
Max()
Возвращает максимальное значение
Max([3, 8, 5]) → 8
Min()
Возвращает минимальное значение
Min([3, 8, 5]) → 3
Sorted()
Сортирует список
Sorted([3, 1, 2]) → [1, 2, 3]
Итераторы и генераторы
Итераторы
Iter()
Создаёт итератор из коллекции
It = iter([1, 2, 3])
Next()
Возвращает следующий элемент итератора
Next(it) → 1
For x in iter([10, 20, 30]):
Print(x) # работает как обычный for
Создание собственного итератора
Class Counter:
Def __init__(self, max):
Self.max = max
Self.cur = 0
Def __iter__(self):
Return self
Def __next__(self):
If self.cur < self.max:
Self.cur += 1
Return self.cur
Else:
Raise StopIteration
For n in Counter(3):
Print(n) # 1, 2, 3
Генераторы
Yield
Промежуточный возврат значения из генератора
Def gen():
Yield 1
Yield 2
For x in gen():
Print(x) # 1, 2
Def countdown(n):
While n > 0:
Yield n
N -= 1
For num in countdown(3):
Print(num) # 3, 2, 1
Def even_numbers():
For i in range(10):
If i % 2 == 0:
Yield i
List(even_numbers()) → [0, 2, 4, 6, 8]
Раабота с файлами
Open()
Открывает файл и возвращает файловый объект
F = open(“data.txt”, “r”)
Read()
Читает весь файл как строку
Content = f.read()
Readline()
Читает одну строку из файла
Line = f.readline()
Readlines()
Читает все строки и возвращает список
Lines = f.readlines()
Write()
Записывает строку в файл
f.write(“Привет, мир!”)
writelines()
Записывает список строк
f.writelines([“Первая\n”, “Вторая\n”])
close()
Закрывает файл (обязательно после записи/чтения)
f.close()
Режим открытия файла
“r”
Открытие для чтения (файл должен существовать)
Open(“file.txt”, “r”)
“w”
Открытие для записи (перезапишет существующий файл)
Open(“file.txt”, “w”)
“a”
Открытие для добавления (дописывает в конец файла)
Open(“log.txt”, “a”)
“rb”
Открытие в двоичном режиме для чтения
Open(“image.png”, “rb”)
Безопасное открытие файла
With open(“data.txt”, “r”) as f:
Content = f.read()
With open(“output.txt”, “w”) as f:
f.write(“Сохранено!”)
Автоматически закроет и откроет файл. Даже если такого нету. Не будет никаких ошибок. Рекомендовано использовать только этот менеджер with as.
Конец ознакомительного фрагмента.
Текст предоставлен ООО «Литрес».
Прочитайте эту книгу целиком, купив полную легальную версию на Литрес.
Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.