Python. Введение — презентация
logo
Python. Введение
  • Python. Введение.
  • Скриптовые языки программирования
  • История Python
  • Приступим
  • Python. Введение.
  • Синтаксис Python
  • Синтаксис Python
  • Синтаксис Python
  • Синтаксис Python. Оператор ветвления.
  • Синтаксис Python. Оператор ветвления.
  • Синтаксис Python
  • Синтаксис Python. Функции.
  • Синтаксис Python
  • Типы данных Python
  • Поддерживаемые операторы
  • Массивы Python
  • Синтаксис Python. Оператор цикла for.
  • Синтаксис Python. Оператор цикла for.
  • Массивы Python
  • Кортежи Python
  • Словари Python
  • Словари Python
  • Словари Python
  • Множества Python
  • Типы данных Python. Резюме.
  • Как это использовать?
  • Как это использовать?
  • list/dict comprehensions
  • List comprehensions
  • List comprehensions
  • List comprehensions
  • Dict comprehensions
  • Dict comprehensions
  • Dict comprehensions
  • “Функциональные” функции (функции высших порядков)
  • Map, reduce и все такое
  • range
  • reversed
  • filter
  • filter
  • map
  • sorted
  • sorted
  • zip
  • zip
  • zip
  • zip
  • zip
  • Лямбда-функции
  • Lambda
  • Lambda
  • Примеры lambda
  • Примеры lambda
  • Примеры lambda
1/54

Первый слайд презентации: Python. Введение

Изображение слайда

Изображение слайда

Слайд 3: История Python

1980-е – задуман Python 1989 – начало разработки языка 1991 – первая публикация кода 16 октября 2000 – выпущена версия 2.0 (gc, unicode) 3 декабря 2008 – версия 3.0 2010 – Python 2.7 2015 – Python 3.5 Guido van Rossum

Изображение слайда

Слайд 4: Приступим

Изображение слайда

Слайд 5

Быстрее Универсальнее Текст программы Текст программы Интерпретатор Компилятор Программа в машинном коде Результат работы программы Запуск программы (например exe файла) Результат работы программы

Изображение слайда

Слайд 6: Синтаксис Python

code = 1 name = "Ivan Ivanov" score = 17.26 lessons = [ "C++", "Python", "Linux" ] marks = { « Физика " : 5, « Математика " : 5, "Экономика" : 4 } Имя переменной может состоять из букв, цифр, _. Двойные и одинарные кавычки равнозначны Все строки – unicode. Переменная в процессе работы программы может менять свои значения и тип. [PEP8] Имена переменных начинаются с маленькой буквы и формируются в snake_case. [PEP8] “Приватные переменные” начинаются с одного или нескольких _.

Изображение слайда

Слайд 7: Синтаксис 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

Изображение слайда

Слайд 8: Синтаксис Python

total = item_one + \ item_two + \ item_three paragraph = """Говорить по-английски просто! Традиционные методики в школах, ВУЗах, на многочисленных платных курсах практически не меняются — зубрежка, заучивание грамматики, прослушивание аудиоуроков. """ print ( "Hello, Python!") # комментарий Перенос statement осуществляется через обратный слеш (\). Multiline strings – """ string """ Комментарии начинаются с # Многострочных комментариев нет. Вместо них используются multiline strings.

Изображение слайда

Слайд 9: Синтаксис Python. Оператор ветвления

if x >= 10 : print ( "больше или равно 10" ) Операторы сравнения: == >= != <= > in < is x = 14 if x >= 10 : print ( "больше или равно 10" ) else : print ( "меньше 10" ) Любое логическое выражение имеет одно из двух значений: True False

Изображение слайда

Слайд 10: Синтаксис Python. Оператор ветвления

s = "Волшебный мир python" if "python" in s: print ( "Что-то про питон" ) elif "c++" in s: print ( "Что-то про C++" ) else : print ( "Непонятно что" ) Оператор сравнения in определяет вхождение левого аргумента в правый

Изображение слайда

Слайд 11: Синтаксис 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 Группа выражений может быть объединена в блок Сложные выражения (напр., if, while, for, class, def) содержат заголовочную строку и блок. Заголовочная строка (header line) завершается двоеточием (:). Ключевое слово pass необходимо, чтобы завершить блок, в котором нет выражений.

Изображение слайда

Слайд 12: Синтаксис 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 )

Изображение слайда

Слайд 13: Синтаксис Python

def fib (n): if n <= 2 : return 1 return fib(n - 1 ) + fib(n - 2 ) n1 = fib(1) # = 1 n10 = fib(10) # = 55 Объявление функций начинается с ключевого слова def. Т.к. объявления типов в Python нет, то и аргументы функций объявляются просто именами. Значение из функции возвращается с помощью return. Функция может вызывать сама себя (рекурсия). Вызвать функцию можно либо просто передав аргументы позиционно, либо по их именам

Изображение слайда

Слайд 14: Типы данных Python

Python поддерживает следующие простые типы данных: Целочисленные (любой точности) - int a = 12 b = 10002332 c = 230948329482394792834798237498324 Числа с плавающей запятой с двойной точностью - float f2 = 3123.784 f3 = 12e234 Строки (юникодные) - str a = “привет” Массив байт - bytes >>> b = bytes("привет", encoding="utf-8") >>> b B'\xd0\xbf\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82' Булевый тип - bool 2 объекта: True и False NoneType Единственный объект этого типа – None

Изображение слайда

Слайд 15: Поддерживаемые операторы

Арифметические операторы: + - * / % ** 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

Изображение слайда

Слайд 16: Массивы 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 в массиве

Изображение слайда

Слайд 17: Синтаксис Python. Оператор цикла for

for n in arr1 : n2 = n * 2 print (n2) Здесь оператор in используется для итерации по массиву

Изображение слайда

Слайд 18: Синтаксис Python. Оператор цикла for

print ( list ( range ( 5 ))) # --> [0, 1, 2, 3, 4] print ( list ( range ( 1 ))) # --> [0] print ( list ( range ( 0 ))) # --> [] range – функция для генерации массива заданного размера

Изображение слайда

Слайд 19: Массивы 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) # напечатает все элементы и их индексы

Изображение слайда

Слайд 20: Кортежи Python

t1 = () # Объявили пустой кортеж t2 = tuple () # То же самое t1 = ( 1, 2, 3 ) len (t1) # Размер кортежа (3) len (t2) # Размер кортежа (0) t3 = t1 + t2 # Объединение кортежей t4 = ( "ninja",) # Кортеж из одного элемента Кортежи – неизменяемые массивы. Нельзя ни добавить, ни удалить элементы из кортежа.

Изображение слайда

Слайд 21: Словари Python

Словарь - структура данных, отображающая одни объекты (ключи) в другие (значения)

Изображение слайда

Слайд 22: Словари 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']

Изображение слайда

Слайд 23: Словари 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)

Изображение слайда

Слайд 24: Множества 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}

Изображение слайда

Слайд 25: Типы данных Python. Резюме

Python поддерживает следующие сложные типы данных: Массивы a = [1, 2, 3] b = [“hi”, “hello”, “good morning”] c = [12, “soon”, 42, [1, 2, 3]] Кортежы (неизменяемые массивы) a = (1, 2, 3) b = (“hi”, “hello”, “good morning”) c = (12, “soon”, 42, [1, 2, 3]) d = () # пустой кортеж e = (12, ) # кортеж из одного элемента (внимание на запятую) Словари d = { ‘a’: 1, ‘b’: 2, ‘c’: 3 } Множества s1 = { ‘a’, ‘b’, ‘c’ } s2 = set([‘a’, ‘b’, ‘c’, ‘a’, ‘d’]) # == {‘a’, ‘b’, ‘c’, ‘d’}

Изображение слайда

Слайд 26: Как это использовать?

Вариант1. Запустить python (python3) в интерактивном режиме https://iu5team.github.io/iu5web

Изображение слайда

Слайд 27: Как это использовать?

Вариант 2. Запустить скрипт с написанным заранее кодом из файла с расширением.py (например, my_script.py)

Изображение слайда

Слайд 28: list/dict comprehensions

Изображение слайда

Слайд 29: List comprehensions

Создать массив из квадратов последовательных чисел arr = [] for x in range ( 10 ): arr.append(x * x)

Изображение слайда

Слайд 30: List comprehensions

Создать массив из квадратов последовательных чисел arr = [x * x for x in range ( 10 )]

Изображение слайда

Слайд 31: List comprehensions

Создать массив из квадратов последовательных четных чисел arr = [x * x for x in range ( 10 ) if x % 2 == 0 ]

Изображение слайда

Слайд 32: Dict comprehensions

d = {} for x in range ( 10 ): d[x] = x * x Создать отображение чисел в их квадраты

Изображение слайда

Слайд 33: Dict comprehensions

d = {x: x*x for x in range ( 10 )} Создать отображение чисел в их квадраты

Изображение слайда

Слайд 34: Dict comprehensions

d = {x : x*x for x in range ( 10 ) if is_prime(x)} Создать отображение простых чисел в их квадраты

Изображение слайда

Слайд 35: Функциональные” функции (функции высших порядков)

Изображение слайда

Слайд 36: Map, reduce и все такое

range ( start, stop [, step ]) - Возвращает последовательность чисел class list ([ iterable ]) - преобразует любую коллекцию/итератор в список reversed ( seq ) - Переворачивает коллекцию filter ( function, iterable ) - Фильтрует коллекцию, используя функцию map ( function, iterable ) - функция для преобразования коллекции sorted ( iterable[, key][, reverse] ) - Возвращает коллекцию в отсортированном виде zip ( *iterables ) - связывает коллекции между собой поэлементно

Изображение слайда

Слайд 37: range

Изображение слайда

Слайд 38: reversed

Возвращает итератор (будет дальше)

Изображение слайда

Слайд 39: filter

arr = [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ] def is_even (x): return x % 2 == 0 filter (is_even, arr)

Изображение слайда

Слайд 40: filter

arr = [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ] def is_even (x): return x % 2 == 0 filter (is_even, arr) Данная функция должна вернуть True, если элемент, переданный в неё, должен остаться.

Изображение слайда

Слайд 41: map

arr = [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ] def square (x): return x ** 2 map (square, arr) Данная функция должна вернуть преобразованный элемент.

Изображение слайда

Слайд 42: sorted

Тут все совсем просто

Изображение слайда

Слайд 43: sorted

Как перемешать массив?

Изображение слайда

Слайд 44: zip

Пусть для простоты есть 2 списка: Задача: пройтись по обоим массивам одновременно

Изображение слайда

Слайд 45: zip

Наивный подход: assert len (X) == len (Y) for i in range ( len (X)): x = X[i] y = Y[i] print ( 'Point: ({}, {})'.format(x, y))

Изображение слайда

Слайд 46: zip

Python-way: for x, y in zip (X, Y): print ( 'Point: ({}, {})'.format(x, y))

Изображение слайда

Слайд 47: zip

Что же делает zip? Zip просто соединяет попарно элементы из переданных ему коллекций

Изображение слайда

Слайд 48: zip

Что если колекций больше 2х? Все то же самое :)

Изображение слайда

Слайд 49: Лямбда-функции

Изображение слайда

Слайд 50: Lambda

def pow2 (x): return x * x y = 2 pow2 (y) # 4 y = [ 2, 3, 4 ] list ( map (pow2, y)) # [4, 9, 16] Хочется как-то покороче... def get_key (x): return x[ 1 ] y = { "a": 5, "b": 3, "c": 4 } sorted (y.items(), key=get_key) # b c a

Изображение слайда

Слайд 51: Lambda

C#: (input parameters) => expression ( int x, string s) => s.Length > x Python lambda input_parameters : expression lambda x, y: x + y Результат выражения будет возвращен вызывающему лямбду коду

Изображение слайда

Слайд 52: Примеры lambda

# Инкремент числа increment = lambda x: x + 1 print (increment( 2 )) # 3 # Возведение в квадрат ( lambda x: x * x)( 5 )

Изображение слайда

Слайд 53: Примеры lambda

# Фильтрация массива y = [ 25, 10, 4, 20, 50, 8 ] y = list ( filter ( lambda x: x > 10, y)) # [25, 20, 50]

Изображение слайда

Последний слайд презентации: Python. Введение: Примеры lambda

y = 'Подсчет длины слов в предложении' list ( map ( lambda w: len (w), y.split())) list ( map ( len, y.split())) # [7, 5, 4, 1, 11]

Изображение слайда

Похожие презентации