Python. Введение.
Разработка Интернет-приложений. Лекция №3.
Представимся
Юрий Евгеньевич Гапанюк
МГТУ им. Н.Э. Баумана
Игорь Латкин
Mail.Ru Group
Алексей Леонтьев
Mail.Ru Group
Дмитрий Рубцов
Yandex
Александр Опрышко
Mail.Ru Group
Сергей Чернобровкин
KTS Studio
Представимся
Максим Павлов
KTS Studio
Илья Абашин
Cisco Systems
Максим Мялкин
Mail.Ru Group
Григорий Ожегов
KTS Studio
План лекций
Работа в семестре и домашнее задание
Мотивация
Скриптовые языки программирования
Веб-проекты на Python
Python + Django Framework
Используют Python
В основных проектах
Вакансии на Python
История Python
Guido van Rossum
Приступим
Синтаксис Python
void foo(int x)�{� if (x == 0) {� bar();� baz();� } else {� qux(x);� foo(x - 1);� }�}
def foo(x):� if x == 0:� bar()� baz()� else:� qux(x)� foo(x - 1)
C++
Python
Синтаксис Python
code = 1�name = "Ivan Ivanov"�score = 17.26�lessons = [� "C++",� "Python",� "Linux"�]�marks = {� "АСОИУ": 5,� "ПКШ": 5,� "Экономика": 4�}
PEP8
PEP – Python Enhancement Proposals
PEP 8 – Style Guide for Python Code
Синтаксис Python
total = item_one + \� item_two + \� item_three��paragraph = """Говорить по-английски просто!�Традиционные методики в школах, ВУЗах,
на многочисленных платных курсах �практически не меняются — зубрежка, �заучивание грамматики, прослушивание
аудиоуроков.�"""��print("Hello, Python!") # комментарий
Синтаксис Python. Оператор ветвления.
if x >= 10:� print("больше или равно 10")
Операторы сравнения:
== >=
!= <=
> in
< is
x = 14�if x >= 10:� print("больше или равно 10")�else:� print("меньше 10")
Любое логическое выражение имеет одно из двух значений:
Синтаксис Python. Оператор ветвления.
s = "Волшебный мир python"�if "python" in s:� print("Что-то про питон")�elif "c++" in s:� print("Что-то про C++")�else:� print("Непонятно что")
Оператор сравнения in определяет вхождение левого аргумента в правый
Синтаксис Python
if expression: � pass�elif expression: � pass �else: � pass��for i in range(100):� print(i)��while True:� print('hello')� time.sleep(2)��def f(x):� pass
Синтаксис Python. Функции.
def f(x, y):� z = x ** 2 + y ** 2� return z�
z = f(21, 40)�z = f(21, y=40)�z = f(x=21, y=40)
Синтаксис Python
def fib(n):� if n <= 2:� return 1� return fib(n - 1) + fib(n - 2)
n1 = fib(1) # = 1
n10 = fib(10) # = 55
Типы данных Python
Python поддерживает следующие простые типы данных:
Поддерживаемые операторы
Арифметические операторы:
+ - * / % **
a = 12 + 3 # 15�b = a - 120 # -105�c = 12.1 * 4 # 48.4�d = 12 / 4 # 3.0�mod = 123 % 2 # 1��kb = 2 ** 10 # 1024
Битовые операторы:
& (И) | (ИЛИ) ~ (НЕ) ^ (ИСКЛ. ИЛИ)
Логические операторы:
and, or, not
x = 14�b1 = x > 10 and x < 20 # True�b2 = x < 10 or x > 20 # False��b3 = (x % 2) == 1 # False
Массивы Python
arr1 = [] # Объявили пустой массив�arr2 = list() # То же самое��arr1.append(1) # Добавили в конец 1�arr1.append(2) # Добавили в конец 2�print(arr1) # --> [1, 2]��len(arr1) # Размер массива (2)�len(arr2) # Размер массива (0)��arr2.append(3)�
arr3 = arr1 + arr2 # Объединение массивов
Массивы – структура данных, представляющая собой непрерывную область памяти, поддерживающая динамическое добавление и удаление элементов.
arr1.remove(2) # Удаление первого вхождения элемента со значением 2�arr1.pop(0) # Удаление элемента с индексом 0
print(2 in arr1) # Проверить, содержится ли элемент со значением 2 в массиве
Синтаксис Python. Оператор цикла for.
for n in arr1:� n2 = n * 2� print(n2)
Здесь оператор in используется для итерации по массиву
Синтаксис Python. Оператор цикла for.
print(list(range(5))) # --> [0, 1, 2, 3, 4]��print(list(range(1))) # --> [0]��print(list(range(0))) # --> []
range – функция для генерации массива заданного размера
Зачем нужен list() вокруг range объясним через лекцию.
Массивы Python
# Пройтись по элементам массива (способ №1)�for el in arr1:� print(el) # напечатает все элементы��# Пройтись по элементам массива (способ №2)�for i in range(len(arr1)):� print(i, arr1[i]) # напечатает все элементы и их индексы��# Пройтись по элементам массива (способ №3)�for i, el in enumerate(arr1):� print(i, el) # напечатает все элементы и их индексы
Кортежи Python
t1 = () # Объявили пустой кортеж�t2 = tuple() # То же самое
�t1 = (1, 2, 3)��len(t1) # Размер кортежа (3)�len(t2) # Размер кортежа (0)��t3 = t1 + t2 # Объединение кортежей
�t4 = ("ninja",) # Кортеж из одного элемента
Кортежи – неизменяемые массивы. Нельзя ни добавить, ни удалить элементы из кортежа.
Словари Python
Словарь - структура данных, отображающая одни объекты (ключи) в другие (значения)
Словари Python
d1 = {� 'doctor': 'Gregory House',� 'pilot': 'Anakin Skywalker',� 'wizard': 'Gandalf The White'�}��print(d1['doctor'])�print(d1['pilot'])�print(d1['president']) # --> KeyError�print(d1.get('president')) # --> None��d1['president'] = 'Bill Gates'�print(d1['president'])��del d1['doctor'] # Удаление элемента
print(len(d1)) # Число ключей в словаре
�print(d1.keys()) # --> ['president', 'wizard', 'pilot']
�print(d1.values()) # --> ['Bill Gates', 'Gandalf The White', 'Anakin Skywalker']
Словари Python
# Пройтись по словарю (Способ №1)�for key in d1:� print(key, d1[key])��# Пройтись по словарю (Способ №2)�for key in d1.keys():� print(key, d1[key])��# Пройтись по словарю (Способ №3)�for key, value in d1.items():� print(key, value)
Множества Python
Множество – структура данных, содержащая в себе неповторяющиеся элементы
s1 = set() # Создание пустого множества�s2 = { 101, 1220, 231 }��s3 = set([1, 2, 3, 1, 2, 1, 4]) # == {1, 2, 3, 4}�s4 = { 2, 3, 6, 7 }��s3.add(5) # Добавить элемент в множество
s3.remove(5) # Удалить элемент из множества��s3 & s4 # Пересечение: {2, 3}�s3 | s4 # Объединение: {1, 2, 3, 4, 6, 7}�s3 ^ s4 # XOR: {1, 4, 6, 7}
s1 - s2 # Разность: {1, 4}
Типы данных Python. Резюме.
Python поддерживает следующие сложные типы данных:
Как это использовать?
Как это использовать?
Где это писать?
Для простого редактирования Python-скриптов подойдет редактор типа Sublime Text, Atom, vim.
Для комфортной работы и разработки мы будем использовать IDE PyCharm Professional.
Ссылка для скачивания – https://www.jetbrains.com/pycharm/download
Для получения лицензии – https://www.jetbrains.com/shop/eform/students