Скачать презентацию Python 911 Андрей Колнооченко Кто эти люди Скачать презентацию Python 911 Андрей Колнооченко Кто эти люди

Lection.ppt

  • Количество слайдов: 30

Python 911 Андрей Колнооченко Python 911 Андрей Колнооченко

Кто эти люди? • Интерпретируемый мультипарадигменный (процедурное + ФП + ООП) язык со строгой Кто эти люди? • Интерпретируемый мультипарадигменный (процедурное + ФП + ООП) язык со строгой динамической типизацией

Установка • Заходим на проект python(x, y), качаем Full, устанавливаем всё • Profit Установка • Заходим на проект python(x, y), качаем Full, устанавливаем всё • Profit

Что пишем? • Просто код • Программы не выполняются а интерпретируются • Компилировать не Что пишем? • Просто код • Программы не выполняются а интерпретируются • Компилировать не надо!

2 варианта работы • Интерактивный интерпретатор • Запуск кода из файла 2 варианта работы • Интерактивный интерпретатор • Запуск кода из файла

Начнём • Простейшая программа: • print ‘Hello World’ • Кавычки могут быть любыми (главное Начнём • Простейшая программа: • print ‘Hello World’ • Кавычки могут быть любыми (главное – чтобы одинаковыми) • print "Hello World" "Hi, f*ckin’ World"

Типы данных • int (long) • float • string • list • tuple • Типы данных • int (long) • float • string • list • tuple • numpy. array

Целые • Создать переменную – просто: • a = 4 # а это комментарий Целые • Создать переменную – просто: • a = 4 # а это комментарий • Можно из строки: • b = int("10") # зависят от • Деление – целочисленное! • print a/b # выведет 0 регистра! • Если числа большие – используйте long: • c = 100 L

С плавающей точкой • Всё то же самое что и с целыми: • f С плавающей точкой • Всё то же самое что и с целыми: • f = 1. 5 # вспоминаем про точку! • Преобразования работают: • f 1 = float("3. 5") • i = int(f 1) • Теперь с делением всё ок: • print a/float(b) # 0. 4

Операции Оператор Действие • Тут всё привычно • Приоритеты: • (), **, [*, /, Операции Оператор Действие • Тут всё привычно • Приоритеты: • (), **, [*, /, %], [+, -] + - Как обычно * / ** Степень % Остаток

Строки • Про кавычки – см ранее • Есть ещё многострочные (3 одинаковые кавычки): Строки • Про кавычки – см ранее • Есть ещё многострочные (3 одинаковые кавычки): • '''Тут много букв • Тут ещё ''' • Печатать строки – просто: • print 'String' • Как и всё остальное: • print 'Some value: ', a, 'Another: ', 0. 4

Ввод строк • Можно попросить пользователя что-то ввести: • nam = raw_input(‘Who are you? Ввод строк • Можно попросить пользователя что-то ввести: • nam = raw_input(‘Who are you? ’) • print 'Welcome', nam • Строку можно потом преобразовать в нужный тип

Списки • Динамически расширяемые массивы • Могут содержать в себе объекты разных типов • Списки • Динамически расширяемые массивы • Могут содержать в себе объекты разных типов • empty_list = [] • list_with_elements = [0, 1, 4. 0, 6] • list_of_lists 4], [5, 6]] = [[1, 2], [3,

Списки • К элементам списка очень легко обратиться: • my_list = [0, 1, 2] Списки • К элементам списка очень легко обратиться: • my_list = [0, 1, 2] • print my_list[1] # нумеруются с 0! • print my_list[: -1] # все элементы кроме • Добавить к списку новый элемент: • my_list. append("some string") • Добавить другой список: • my_list. extend([3, 4, 5]) • Удалить элемент: • del my_list[3] # удалили строчку последнего

Кортежи • Они же tuple • Просто неизменяемые массивы: • my_tuple = (3, 2, Кортежи • Они же tuple • Просто неизменяемые массивы: • my_tuple = (3, 2, 1) • Скобки можно не указывать – запятой достаточно • a, b = b, a

Numpy • Мощнейшая библиотека для работы с многомерными массивами • numpy. array – это Numpy • Мощнейшая библиотека для работы с многомерными массивами • numpy. array – это массив однотипных элементов (целые числа, числа с плавающей точкой и т. д. ) • Включает в себя кучу методов работы с данными (average, sum, tofile, fromfile. . . )

Numpy • Требует подключения библиотеки (если установили python(x, y), то всё есть) • import Numpy • Требует подключения библиотеки (если установили python(x, y), то всё есть) • import numpy as np • n = np. array([1, 2, 3], dtype=np. float) • # dtype - указывать необязательно • # сам будет догадываться о типе • # данных (исходя из типа элементов) • # или будет np. float – по умолчанию • # есть несколько видов массивов по умолчанию: • z = np. zeros((2, 3), dtype = np. int) • # массив нулей, размером 2 х3 • o = np. ones(17) # массив из 17 единиц

Numpy • Самое классное – сахар! • arr = np. zeros([10, 10]) • arr[4: Numpy • Самое классное – сахар! • arr = np. zeros([10, 10]) • arr[4: 6, 4: 6] = 5 # все элементы в диапазоне приравняем 5 • arr *= 3 • arr[4: 6, # каждый элемент умножим на 3 4, 6] /= 5 # каждый элемент диапазона делим на 5 • # массивы одинаковой размерности можно складывать, вычитать, умножать, делить, брать остаток от деления – действия будут выполняться поэлементно

Numpy • Дополнительные функции: • Случайные числа: • import numpy. random as np_rnd • Numpy • Дополнительные функции: • Случайные числа: • import numpy. random as np_rnd • fld = np_rnd(5, size=[2, 4]) • fld. shape = -1 • numpy. bincount(fld) • # количество вхождений чисел на поле

Управление потоком выполнения • Проще говоря – условия и циклы • Условия – как Управление потоком выполнения • Проще говоря – условия и циклы • Условия – как везде • if a > 10: • print "Wow, it’s huge!" • Внимание на отступы! • if a > 10 then • begin • writeln("Wow, it’s huge!"); • end;

Условия • Полная конструкция: • if a < 0: • print Условия • Полная конструкция: • if a < 0: • print "Too small" • elif 0 <= a < 5: • print "Less than five" • elif a == 10: • print "Top ten!" • else: • print "Unknown value" • Обратите внимание на сравнение на равенство

Условия • Прочие Булевы операции (and, or, not) тоже работают: • if b < Условия • Прочие Булевы операции (and, or, not) тоже работают: • if b < 10 • print • # ещё раз and a >= 5: "Good job!" "Questions? " про отступы! Блок закончился – отступы уменьшились обратно. • # правило: 4 пробела на блок

Цикл while • Самый простой • it = 0 • accum = 0 • Цикл while • Самый простой • it = 0 • accum = 0 • while it < 10: • print it**2 • accum += it**3 • it += 1 • if accum > 100: • break • else: • print "All iterations passed"

Цикл for • Самая загадочная конструкция: • for i in [5, 4, 3, 2, Цикл for • Самая загадочная конструкция: • for i in [5, 4, 3, 2, 1]: • print i • i – переменная цикла, которая проходит по последовательности. Последовательность может быть любой: list, tuple, numpy. array и даже ваш собственный тип данных или специально написанная функция-генератор

Цикл for • Чтобы не создавать последовательности вручную, придумали специальную функцию – range • Цикл for • Чтобы не создавать последовательности вручную, придумали специальную функцию – range • a = np. zeros(100) • for idx in range(100): • a[idx] = idx * 3 + 5 • # range на самом деле принимает 3 аргумента (мин, мах, шаг), но может работать и с одним

Цикл for • Итерировать можно ЛЮБУЮ последовательность! • for el in [np. array([3, 5]), Цикл for • Итерировать можно ЛЮБУЮ последовательность! • for el in [np. array([3, 5]), "Some string", 3. 4]: • • for • print el letter in "Text": print letter idx, l in enumerate("My string"): print l, "(%d)" % (idx, )

Цикл for • for можно записать короче для создания нового списка: • new_list = Цикл for • for можно записать короче для создания нового списка: • new_list = [x**2 for x in range(30)] • # добавим условия • filt_list = [el-5 for el in new_list if el % == 0] • # равнозначно: • filt_list = [] • for el in new_list: • if el % 2 == 0: • filt_list. append(el-5) 2

Функции • Функции – это самое простое: • def Function. Name(arg 1, arg 2, Функции • Функции – это самое простое: • def Function. Name(arg 1, arg 2, • arg 3 = default_value): "Тут можно написать пояснение, что функция делает" • • def • • pass add(a, b): "Just addition" return a+b

Из нужных библиотек • random – генерация случайных чисел • np. random – то Из нужных библиотек • random – генерация случайных чисел • np. random – то же, но для массивов и разных распределений • os – различные операции с файлами и проч.

Литература • Rapid GUI Programming with Py. Qt (части 1 -3) • Dive into Литература • Rapid GUI Programming with Py. Qt (части 1 -3) • Dive into Python (В глубь языка Python) • Numpy tutorial + примеры • Язык программировани Python (Гвидо ван Россум, Откидач)