Академический Документы
Профессиональный Документы
Культура Документы
программу
Для выполнения функции main() при запуске модуля как программы необходимо
поместить её после проверки атрибута __name__:
1 if __name__ == '__main__':
2 main()
1 <list>.append(<el>)
2 <list> += [<el>]
1 <list>.extend(<collection>)
2 <list> += <collection>
Перейдём к прямой и обратной сортировке. Кроме reverse() и reversed() для
обратной сортировки можно также использовать sort() и sorted() с флагом
reverse=True.
1 <list>.sort()
2 <list>.reverse()
3 <list> = sorted(<collection>)
4 <iter> = reversed(<list>)
Суммируем элементы:
1 sum_of_elements = sum(<collection>)
1 flatter_list = list(itertools.chain.from_iterable(<list>))
1 list_of_chars = list(<str>)
1 index = <list>.index(<el>)
1 <list>.insert(index, <el>)
Работаем со словарями
Получаем ключи, значения и пары ключ-значение из словарей:
1 <view> = <dict>.keys()
2 <view> = <dict>.values()
3 <view> = <dict>.items()
1 <dict> = dict(<collection>)
1 value = <dict>.pop(key)
1 <set> = set()
2 <set>.add(<el>)
3 <set>.update(<collection>)
1 <set>.remove(<el>)
2 <set>.discard(<el>)
Именованный кортеж
Напомним, что кортеж — неизменяемый список. А именованный кортеж — его
подкласс с именованными элементами. Из него можно получить элемент как по
индексу, так и по имени:
4 Point(x=1, y=2)
5 >>> p[0]
6 1
7 >>> p.x
8 1
Функции-генераторы
В отличие от обычных функций, функции-генераторы поставляют значения,
приостанавливая свою работу для передачи результата вызывающей программе.
При этом они сохраняют информацию о состоянии, чтобы возобновить работу с
места, где были приостановлены:
2 while True:
3 yield start
4 start += step
Определяем тип
Несмотря на то, что язык программирования Python с динамической типизацией,
бывают случаи, когда нужно проверить тип элемента:
1 <str> = <str>.strip()
2 <str> = <str>.strip('<chars>')
1 <list> = <str>.split()
1 <str> = <str>.join(<list>)
1 <bool> = <str>.startswith(<sub_str>)
2 <bool> = <str>.endswith(<sub_str>)
1 <bool> = <str>.isnumeric()
1 args = (1, 2)
3 func(*args, **kwargs)
То же самое:
Пишем компактно
1 @decorator_name
2 def function_that_gets_passed_to_decorator():
3 ...
3 def debug(func):
4 @wraps(func)
6 print(func.__name__)
8 return out
10 @debug
12 return x + y
1 class <name>:
3 self.a = a
4 def __str__(self):
5 return str(self.a)
1 class Person:
3 self.name = name
4 self.age = age
6 class Employee(Person):
8 super().__init__(name, age)
9 self.staff_num = staff_num
Обрабатываем исключения
Когда в программном коде допускается ошибка, в языке Python автоматически
возбуждается исключение. Для перехвата и выполнения восстановительных
операций используется try/except:
1 while True:
2 try:
4 except ValueError:
6 else:
7 print('Thank you.')
8 break
1 >>> try:
3 ... finally:
5 Goodbye, world!
8 KeyboardInterrupt
1 import sys
2 script_name = sys.argv[0]
3 arguments = sys.argv[1:]
Работа с файлами
Для того, чтобы открыть файл в Python, передаём путь <path> в open:
Итак, режимы:
1 def read_file(filename):
2 with open(filename, encoding='utf-8') as file:
3 return file.readlines()
3 file.write(text)
2 <bool> = path.exists('<path>')
3 <bool> = path.isfile('<path>')
4 <bool> = path.isdir('<path>')
1 <list> = listdir('<path>')
Модуль glob реализует механизм подстановки имён файлов. Найдём все файлы
с расширением .gif:
2 >>> glob('../*.gif')
3 ['1.gif', 'card.gif']
Стандартные инструменты Python позволяют
хранить объекты
1 import pickle
2 <bytes> = pickle.dumps(<object>)
3 <object> = pickle.loads(<bytes>)
1 def read_pickle_file(filename):
3 return pickle.load(file)
3 pickle.dump(an_object, file)
1 import sqlite3
2 db = sqlite3.connect('<path>')
3 ...
4 db.close()
Для чтения из базы передаём запрос в метод execute:
1 cursor = db.execute('<query>')
2 if cursor:
1 db.execute('<query>')
2 db.commit()