Язык Python
Евгений Борисов
Python: реализации языка
Cpython
Cythone
Jython (Java)
IronPython (.NET)
PyPy (compiler)
2
Python: дистрибутивы
CPython
Anaconda (Miniconda)
3
Python: IDE
iPython / Jupyter
PyCharm
Visual Studio Code
Eclipse + PyDev
Vim
Apache Zeppelin
4
Python: про версии
CPython — стандарт де-факто
2.7 vs 3.10
PEP (Python Enhancement Proposals)
предложения по улучшению Python
PEP 8: руководство по написанию кода
5
Python: что почитать?
SoloLearn : Python
Python Help : Tutorial
Sebastian Raschka Python Machine Learning
6
Python: типы данных
Логические Списки
Числовые Множества
Строки Словари
None
7
Python: тип данных логический
Boolean Type:
True
False
8
Python: типы данных числовые
Numeric Type:
int – целое число
float – число с плавающей точкой
7.5, 75e-1
9
Python: тип данных cтроки
Text Sequence Type
'привет'
"медвед"
' ' 'превед
Медвед' ' '
10
Python: типы данных списки
Sequence Type:
list – список
[ 1, 2, 'a', [ 4,'a', 5,] , ]
tuple – кортеж
( 1, 2, 'a', )
11
Python: типы данных множества
Set Types:
set – множество
set([1,2,2,3,4,2,3,4]) → {1,2,3,4}
frozenset – неизменяемое множество
12
Python: типы данных словарь
Mapping Types:
dict – словарь
{'a':1, 'b':2, 'zzz':7,}
13
Python: изменяемые типы данных
всё есть объекты
присваивание создаёт новый объект
immutable:
int float bool string tuple frozenset
mutable:
list dict set
14
Python: операции
Операции с данными:
арифметические, логические,
cтроковые, битовые
управление
циклы
ввод / вывод
15
Python: операции с данными
присваивание, арифметика и сравнения
a/b
a,b = 1,2 a<10
a // 3
a,b = b,a b<=7
a%3
a = 10 a>2
a-b
a += 7 a!=b
a+b
a*b a==1
a**2
16
Python: операции с данными
логические
a or b
a = True
a and b
b = False
not b
17
Python: операции с данными
битовые
a = 255
b=7
a^b
a&b
a|b
a>>3
18
Python: операции с данными
строковые
s = 'abc'
s*3 → 'abcabcabc'
s + 'dmr' → 'abcdmr'
19
Python: операции управления
if not x:
print('x')
elif y:
print('y')
else:
print('z')
20
Python: цикл while
i=0 i=0
while i<5: i=0
while i<5:
print(i) while True:
i+=1
i+=1 print(i)
if i<3:
i+=1
continue
if i>5:
print(i)
break
21
Python: цикл for
for x in [1,2,3,4]:
print(x)
22
Python: списки (list)
s=[1,7,3,4,['a','b'] ] [Link](9)
s=[1,5,3,4,] [Link](5,'a')
len(s) sorted(s) [Link](2)
s[2] s[2:] s[2:4]
2 in s
s = list(range(10))
s = [ i/2 for i in range(10) if i!=3 ] 23
Python: кортежи (tuple)
c = (1,2,3,5)
24
Python: словари (dict)
d = { 'a':1, 'b':44, 'c':45, 'cvc':-1, }
d['c']→ 45
[Link]() [Link]()
25
Python: множества (set)
s = set([1,2,3,1,3,4,5])
{1,2,3,4,5}
s[2] → error
операции: & | -
26
Python: менеджер контекстов (with)
with open('[Link]','r') as f:
x = [Link]()
with open('[Link]','r') as f:
x = [ s for s in [Link]().split('\n') if s ]
27
Python: функции
def myfunc(x,y=1):
print(x)
return x+1,y/2
a,b = myfunc(y=5,x=-1)
28
Python: итераторы
объект перечислитель
реализует навигацию по элементам другого объекта
выдаёт следующий элемент __next__()
если элементов больше нет
то бросает исключение
s='abcdef' s='abcdef'
it_s = iter(s) for c in s:
it_s.__next__() print(c)
for c in it_s:
print(c)
29
Python: генераторы
генерирует последовательность
def ones(n):
while n > 0:
n -= 1
yield 1
for o in ones(4):
print(o)
30
Python: функциональное программирование
squares = map(lambda x: x * x, [0, 1, 2, 3, 4])
sum = reduce(lambda a, x: a + x, [0, 1, 2, 3, 4])
31
Python: ООП
class Animal:
def __init__(self, name, color):
[Link] = name
[Link] = color
class Wolf(Animal):
class Dog(Wolf):
def bark(self):
def bark(self):
print("Grr...!")
super().bark()
print("Woof!")
def __repr__(self):
return "Dog({})".format([Link])
32
Python: ООП декораторы
class Rectangle:
@property
def __init__(self, width, height):
def allowed(self):
[Link] = width
return self._allowed
[Link] = height
self._allowed = False
@[Link]
def allowed(self, value):
def calculate_area(self):
self._allowed = not(value)
return [Link] * [Link]
@classmethod
sq = Rectangle.new_square(5)
def new_square(cls, side_length):
return cls(side_length, side_length)
print(sq.calculate_area())
# 25
@staticmethod
[Link]=0
def square(a):
print([Link])
return a**2
# True
print([Link](4))
# 16
33
Python: модули
import numpy as np
help(np)
np.__name__
np.__version__
from [Link] import rand
34
Python: менеджер пакетов pip
# pip search pep8
# pip install autopep8
# pip list
# pip uninstall autopep8
35
Python: утилиты
# показывает места нарушения стиля
pep8 --first [Link]
# определяет и исправляет нарушения стиля
autopep8 ./ --recursive --in-place -a
# форматирует комментарии
docformatter --in-place [Link]
# универсальная утилита приведения кода к PEP
pyformat
36
Python: Google Colab
[Link]
[Link] 37
Python: Google Colab
[Link]
38
Python: Yandex DataSphere
[Link]
[Link] 39
Python
В сети появился курс по Python от Агентства нацбезопасности США
[Link]
[Link]
40
Python: упражнения numpy
[Link]
41
Python: упражнения pandas
[Link]
42
Python: virtualenv
проблема: пакеты определённых версий могут быть
несовместимы между собой
решение: виртуальные python-среды
позволяет работать с несколькими версиями python
держать одновременно несколько наборов пакетов разных
версий
# pip install virtualenv
# mkdir /home/user/python3.8_env
# virtualenv -p python3.8 python3.8_env
# source /home/user/python3.8_env/bin/activate
43
Python: что почитать?
[Link]
[Link]
Дейтел П., Дейтел Х. Python: Искусственный
интеллект, большие данные и облачные вычисления
(2020)
44