This document is useful when use with Video session I have recorded today with execution, This is document no. 2 of course "Introduction of Data Science using Python". Which is a prerequisite of Artificial Intelligence course at Ethans Tech.
Disclaimer: Some of the Images and content have been taken from Multiple online sources and this presentation is intended only for Knowledge Sharing
Introduction to Python Pandas for Data AnalyticsPhoenix
Pandas is an open-source, BSD-licensed Python library providing high-performance, easy-to-use data structures and data analysis tools for the Python programming language. Python with Pandas is used in a wide range of fields including academic and commercial domains including finance, economics, Statistics, analytics, medical...
This Edureka Python Matplotlib tutorial (Python Tutorial Blog: https://goo.gl/wd28Zr) explains what is data visualization and how to perform data visualization using Matplotlib. It also explains how to modify your plot and how to plot various types of graphs. Below are the topics covered in this tutorial:
1. Why Data Visualization?
2. What Is Data Visualization?
3. Various Types Of Plots
4. What Is Matplotlib?
6. How To Use Matplotlib?
Kickstart your data science journey with this Python cheat sheet that contains code examples for strings, lists, importing libraries and NumPy arrays.
Find more cheat sheets and learn data science with Python at www.datacamp.com.
Основы языка Питон: функции, элементы функционального программирования, списочные выражения, генераторы. Презентация к лекции курса "Технологии и языки программирования".
This document is useful when use with Video session I have recorded today with execution, This is document no. 2 of course "Introduction of Data Science using Python". Which is a prerequisite of Artificial Intelligence course at Ethans Tech.
Disclaimer: Some of the Images and content have been taken from Multiple online sources and this presentation is intended only for Knowledge Sharing
Introduction to Python Pandas for Data AnalyticsPhoenix
Pandas is an open-source, BSD-licensed Python library providing high-performance, easy-to-use data structures and data analysis tools for the Python programming language. Python with Pandas is used in a wide range of fields including academic and commercial domains including finance, economics, Statistics, analytics, medical...
This Edureka Python Matplotlib tutorial (Python Tutorial Blog: https://goo.gl/wd28Zr) explains what is data visualization and how to perform data visualization using Matplotlib. It also explains how to modify your plot and how to plot various types of graphs. Below are the topics covered in this tutorial:
1. Why Data Visualization?
2. What Is Data Visualization?
3. Various Types Of Plots
4. What Is Matplotlib?
6. How To Use Matplotlib?
Kickstart your data science journey with this Python cheat sheet that contains code examples for strings, lists, importing libraries and NumPy arrays.
Find more cheat sheets and learn data science with Python at www.datacamp.com.
Основы языка Питон: функции, элементы функционального программирования, списочные выражения, генераторы. Презентация к лекции курса "Технологии и языки программирования".
Лекция 5. Встроенные коллекции и модуль collections.Roman Brovko
И снова встроенные коллекции: кортеж, список, множество, словарь - обход в глубину, обзор методов, примеры. Почти всё про модуль collections: именованные кортежи, счётчики, defaultdict, OrderedDict.
Синтаксис объявления классов. Атрибуты, связанные и несвязанные методы, __dict__, __slots__. Статические методы и методы класса. Свойства, декоратор @property. Наследование, перегрузка методов и функция super. Декораторы классов. Магические методы.
Лекция 7. Исключения и менеджеры контекста.Roman Brovko
Исключения, зачем они нужны и как их обрабатывать. Встроенные исключения и базовые классы BaseException и Exception. Операторы try...except..else..finally. Менеджеры контекста и модуль contextlib.
Лекция 2. Всё, что вы хотели знать о функциях в Python.Roman Brovko
Синтаксис объявления функций. Упаковка и распаковка аргументов. Ключевые аргументы и аргументы по умолчанию. Распаковка и оператор присваивания. Области видимости, правило LEGB, операторы global и nonlocal. Функциональное программирование, анонимные функции. Функции map, filter и zip. Генераторы списков, множеств и словарей. Немного о PEP 8.
Лекция 12. Быстрее, Python, ещё быстрее.Roman Brovko
Измерение времени работы кода на Python с помощью модулей timeit, cProfile и line_profiler. Немного о NumPy. JIT и AOT компиляция кода на Python на примере Numba и Cython.
Зачем тестировать? Тестирование в интерпретаторе и доктесты. Модуль unittest. Пакет py.test - на порядок лучше. Тестирование свойств и пакет hypothesis.
Лекция 4. Строки, байты, файлы и ввод/вывод.Roman Brovko
Строковые литералы и сырые строки. Строки и Юникод. Основные методы работы со строками. Модуль string. Байты. Кодировки. Файлы и файловые объекты. Методы работы с файлами. Модуль io
Модули threading, queue и concurrent.futures. Использование потоков для параллельных вычислений на Python. GIL. Параллельность и конкурентность. Модуль asyncio. Модуль multiprocessing.
Лекция 8. Итераторы, генераторы и модуль itertools.Roman Brovko
Два протокола итераторов: __next__ + __iter__ и __getitem__. Итераторы и цикл for, а также операторы in и not in. Генераторы, оператор-выражение yield. Генераторы как: итераторы, сопрограммы, менеджеры контекста. Модуль itertools.
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014Python Meetup
В своем докладе Олег расскажет о замене стандартных функций на более быстрые и об ускорении работы python. Также продемонстрирует несколько примеров быстрых конструкций python.
Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...corehard_by
Обобщенное программирование - это подход к программированию, когда алгоритм пишется без указания конкретных типов данных. Используя данный подход можно значительно увеличить количество повторно используемого кода. В C++ данный подход реализуется за счет механизма шаблонов. В данном докладе рассмотрим некоторые возможности по обобщенному программированию, которые предоставляет C++. На конкретных примерах рассмотрим, как они могут упростить нам жизнь и с какими трудностями приходится сталкиваться при их использовании.
Лекция #5. Введение в язык программирования Python 3Яковенко Кирилл
Web-программирование
Лекция #5. Введение в язык программирования Python 3
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
Обзор работ 7-ой Европейской конференции по космическому мусору (офис центра управления полетами ЕКА, Дармштадт, Германия, 18-21 апреля 2017 г)
Презентация к семинару кафедры теоретической механики Самарского университета (16.05.17)
Презентация к семинару кафедры теоретической механики. По материалам статьи “Detumbling Space Debris Using Modified Yo-Yo Mechanism” (Юдинцев В. В.,
Асланов В. С.) Journal of Guidance, Control, and Dynamics, Vol. 40, No. 3. https://arc.aiaa.org/doi/abs/10.2514/1.G000686
(2017), pp. 714-721.
Презентация для IV Всероссийской научно-технической
конференции "Актуальные проблемы ракетно-космической техники» ("IV Козловские чтения")". г. Самара, 14-17 сентября 2015 г.
Определение параметров средств отделения створок головного обтекателя ракеты-носителя. Презентация к лекции курса "Основы синтеза механических систем".
Рассматривается метод отдельных тел (метод А. Ф. Верещагина) для построения уравнений движения систем тел со структурой дерева. Приводится пример программы моделирования движения цепи n тел на языке MATLAB.
Материалы лекции курса "Динамика твёрдого тела и систем твёрдых тел". Построение уравнений движения систем со сферическими, универсальными и цилиндрическими шарнирами. Метод Й. Виттенбурга.
Метод Й. Виттенбурга (Универсальные и цилиндрические шарниры)
Основы языка Питон: типы данных, операторы
1. Основы Python: типы данных, операторы
Технологии и языки программирования
Юдинцев В. В.
Кафедра теоретической механики
Самарский университет
Версия 10.2016
2. Содержание
1 Синтаксис
2 Основные типы данных
3 Последовательности
4 Строки
5 Атомарные и ссылочные типы
6 Кортежи
7 Множество (set)
8 Словари (dictionary)
9 Управляющие конструкции
10 Задания
Кафедра Теоретической механики Основы Python: типы данных, операторы 2 / 81
3. История
История
https://commons.wikimedia.org
Язык Python (Питон или Пайтон)
разработан нидерландским
программистом Гвидо ван
Россумом (Guido van Rossum)
Начало разработки: конец 80-х
годов
1994 v. 1.0 – 2000 v. 1.6
2000 v. 2.0 – 2010 v. 2.7
2008 v. 3.0 – 2015 v. 3.5
https://www.python.org
Кафедра Теоретической механики Основы Python: типы данных, операторы 3 / 81
4. История
Особенности языка
Интерпретируемый, кроссплатформенный язык
Python поддерживает различные парадигмы
программирования:
модульное программирование
объектно-ориентированное программирование
функциональное программирование
Динамическая сильная типизация
Типы переменных определяются во время выполнения
программы
Поддержка структур данных высокого уровня
set, dict
Автоматизированная система контроля памяти
Кафедра Теоретической механики Основы Python: типы данных, операторы 4 / 81
5. История
Среда разработки
IDLE
https://docs.python.org/3/library/idle.html
Простейшая интегрированная среда разработки.
Поставляется вместе с Pyhon.
PyCharm
https://www.jetbrains.com/pycharm/download
Anaconda
https://www.continuum.io/downloads
Python + IDE Spyder с набором библиотек (numpy, scipy, ...)
для научных вычислений
Кафедра Теоретической механики Основы Python: типы данных, операторы 5 / 81
8. Синтаксис
Файл программы, функции
В первой или второй строке файла программы, модуля должна
быть указана кодировка файла, например, UTF-8
1 # −*− coding : utf −8 −*−
или 1251 – кодировка MS Windows
1 # −*− coding : cp1251 −*−
Кафедра Теоретической механики Основы Python: типы данных, операторы 8 / 81
9. Синтаксис
Логические и физические строки
Программа состоит из логических строк
Логическая строка состоит из одной или нескольких
физических строк
Физические строки объединяются в одну логическую при
помощи символа
1 i f 1900 < year < 2100 and 1 <= month <= 12
2 and 1 <= day <= 31 and 0 <= hour < 24 :
3 return 1
Выражения в скобках ( ) [ ] { } могут быть записаны в
несколько строк без использования символа
1 s t a r s = [ ” V645 Cen ” , ” Alpha Cen A” , ” Alpha Cen B” ,
2 ” Barnard ’ s Star ” , ” Wolf 359 ” , ”BD+362147 ” ]
Кафедра Теоретической механики Основы Python: типы данных, операторы 9 / 81
10. Синтаксис
Имена переменных
Буквы в нижнем или верхнем регистре
Цифры
Нижнее подчёркивание
Имена переменных не могут начинаться с цифры
1 a1 = 10
2 a_3 = 20
3 A3 = 7
4 _ab = 9
Кафедра Теоретической механики Основы Python: типы данных, операторы 10 / 81
11. Синтаксис
Ключевые слова
False class finally is return
None continue for lambda try
True def from nonlocal while
and del global not with
as elif if or yield
assert else import pass print
break except in raise
Эти ключевые слова не могут быть использованы в качестве имен
переменных (идентификаторов)
Кафедра Теоретической механики Основы Python: типы данных, операторы 11 / 81
12. Синтаксис
Комментарии
Комментарии начинаются с символа #, если этот символ не
является частью строковой константы
1 a = ”Здесь символ # не обозначает начало комментария”
Комментарий заканчивается в конце физической стоки
1 # Six nearest s t a r s
2 s t a r s = [ ” V645 Cen ” , ” Alpha Cen A” , ” Alpha Cen B” ,
3 ” Barnard ’ s Star ” , ” Wolf 359 ” , ”BD+362147 ” ]
Многострочные комментарии* могут записаны в виде
безымянной строковой константы
1 ’ ’ ’
2 T r i p l e quotes are treated as regular s t r i n g s
3 with the exception that they can
4 span multiple l i n e s .
5 ’ ’ ’
Кафедра Теоретической механики Основы Python: типы данных, операторы 12 / 81
14. Основные типы данных
Классификация
Атомарные
bool, int, float, complex
Ссылочные
list, tuple, str, map, dict, set
Изменяемые
list, dict, set
Неизменяемые
tuple, str
Кафедра Теоретической механики Основы Python: типы данных, операторы 14 / 81
15. Основные типы данных
Булевы переменные
1 a = True
2 b = False
3
4 c = 7>3
5 p r i n t ( c )
6 True
Кафедра Теоретической механики Основы Python: типы данных, операторы 15 / 81
16. Основные типы данных
Целые числа
1 a=15687554
Явное преобразование в тип int с отбрасыванием дробной
части:
1 b= i n t (10/ 3)
2 3
Размер int ограничен только памятью ЭВМ
1 a=2**1000
2 10715086071862673209484250490600018105614048117055
3 33607443750388370351051124936122493198378815695858
4 12759467291755314682518714528569231404359845775746
5 98574803934567774824230985421074605062371141877954
6 18215304647498358194126739876755916554394607706291
7 4571196477686542167660429831652624386837205668069376
Кафедра Теоретической механики Основы Python: типы данных, операторы 16 / 81
17. Основные типы данных
Математические операторы
+ сложение 2 + 2 = 4
- вычитание 5 - 3 = 2
* умножение 2 * 2 = 4
/ деление 7 / 2 = 3.5
// целочисленное деление 7 // 2 = 3
% остаток от деления 7 % 2 = 1
** возведение в степень 7 ** 2 = 49
Кафедра Теоретической механики Основы Python: типы данных, операторы 17 / 81
18. Основные типы данных
Вещественное число (64-bit double precision)
В отличии от языков Cи или Паскаль в языке Питон определён
только один тип вещественного числа float – 64 битное число
double precision в соответствии со стандартом IEEE 754
1 a = 123.1445
Явное преобразование в тип float
1 a = f l o a t ( 3 )
Размер ограничен:
1 a = 3**1000 # 3 в степени 1000 − целое число
2 b = f l o a t ( a )
OverflowError: int too large to convert to float
Кафедра Теоретической механики Основы Python: типы данных, операторы 18 / 81
19. Основные типы данных
Комплексные числа
a = 7 + 3i
1 a = complex ( 7 , 3 )
Вещественная часть
1 p r i n t ( a . rea l )
2 7.0
Мнимая часть
1 p r i n t ( a . imag )
2 3.0
Мнимая и вещественная часть комплексного числа имеют тип
double
Кафедра Теоретической механики Основы Python: типы данных, операторы 19 / 81
21. Последовательности
Списки (list)
Списки значений создаются при помощи оператора [ ] с
перечислением объектов, разделённых запятыми:
1 a = [1 , ’ word ’ , 2 , complex ( 1 , 2 ) ]
Длина списка
1 len ( a )
2 4
Кафедра Теоретической механики Основы Python: типы данных, операторы 21 / 81
22. Последовательности
Доступ к элементу списка
1 a = [1 , ’ word ’ , 2 , complex ( 1 , 2 ) ]
Доступ к элементу списка при помощи [ ] скобок.
Первый элемент списка имеет индекс 0:
1 a [ 0 ]
2
3 1
Последний элемент списка из четырёх элементов:
1 a [ 3 ]
2
3 (1+2 j )
Кафедра Теоретической механики Основы Python: типы данных, операторы 22 / 81
23. Последовательности
Создание списка целых чисел — range
От нуля до максимального, не входящего в список, значения:
1 a = l i s t ( range (10) )
2
3 [0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9]
От заданного начального значения 2, до конечного значения 16
с шагом 3
1 a = l i s t ( range (2 ,16 ,3) )
2
3 [2 , 5 , 8 , 11 , 14]
Преобразование строки в список символов:
1 l i s t ( ’ cat ’ )
2 [ ’ c ’ , ’ a ’ , ’ t ’ ]
Кафедра Теоретической механики Основы Python: типы данных, операторы 23 / 81
24. Последовательности
Срезы
1 a = [ ’Меркурий ’ , ’Венера ’ , ’Земля ’ , ’Марс ’ ]
Первые три элемента
1 a [ 0 : 4 ]
2 [ ’Меркурий ’ , ’Венера ’ , ’Земля ’ ]
Чётные элементы списка
1 a [ : : 2 ]
2 [ ’Венера ’ , ’Марс ’ ]
Обращение последовательности
1 a [ : : − 1 ]
2 [ ’Марс ’ , ’Земля ’ , ’Венера ’ , ’Меркурий ’ ]
Кафедра Теоретической механики Основы Python: типы данных, операторы 24 / 81
25. Последовательности
Вложенные списки
Элемент списка может быть списком
1 a = [ [ 1 , 2 ] , [3 , 4 , 5] ]
2 a [ 0 ]
3 [ 1 , 2 ]
4
5 a [ 1 ]
6 [3 ,4 ,5 ]
7
8 a [ 1 ] [ 2 ]
9 5
Кафедра Теоретической механики Основы Python: типы данных, операторы 25 / 81
26. Последовательности
Добавление элемента
1 a = [ ’Меркурий ’ , ’Венера ’ , ’Земля ’ , ’Марс ’ ]
Добавление элемента в конец списка append
1 a . append ( ’Юпитер ’ )
2 a
3 [ ’Меркурий ’ , ’Венера ’ , ’Земля ’ , ’Марс ’ , ’Юпитер ’ ]
Кафедра Теоретической механики Основы Python: типы данных, операторы 26 / 81
27. Последовательности
Добавление элемента
1 a = [ ’Меркурий ’ , ’Венера ’ , ’Земля ’ , ’Марс ’ ]
Добавление элемента в конец списка append
1 a . append ( ’Юпитер ’ )
2 a
3 [ ’Меркурий ’ , ’Венера ’ , ’Земля ’ , ’Марс ’ , ’Юпитер ’ ]
Вставка элемента в список (insert)
1 a = [ ’Меркурий ’ , ’Венера ’ , ’Марс ’ ]
2 a . i n s e r t (2 , ’Земля ’ )
3 a
4 [ ’Меркурий ’ , ’Венера ’ , ’Земля ’ , ’Марс ’ ]
Кафедра Теоретической механики Основы Python: типы данных, операторы 26 / 81
35. Строки
Строка – последовательность символов
1 message = ’ Quid est v e r i t a s ? ’
Первый элемент строки
1 message [ 0 ]
2 ’Q ’
Отсчёт с конца строки
1 message[ −3]
2 ’ a ’
Символы с 5 по 7
1 message [ 5 : 8 ]
2 ’ est ’
Движение в обратном порядке
1 message[−2:−5:−1]
2 ’ sat ’
Кафедра Теоретической механики Основы Python: типы данных, операторы 32 / 81
36. Строки
Многострочный текст
Для создания много длинного многострочного текста
используются тройные кавычки
1 poem = ’ ’ ’ To be , or not to be− that i s the question :
2 Whether ’ t i s nobler in the mind to s u f f e r
3 The s l i n g s and arrows of outrageous fortune
4 Or to take arms against a sea of troubles ,
5 And by opposing end them . To die− to sleep−
6 No more ; and by a sleep to say we end ’ ’ ’
Кафедра Теоретической механики Основы Python: типы данных, операторы 33 / 81
37. Строки
Преобразование типов в строку
1 s t r (192.008)
2 ’ 192.008 ’
3
4 s t r (192.36) *2
5 ’ 192.008192.008 ’
Кафедра Теоретической механики Основы Python: типы данных, операторы 34 / 81
38. Строки
Операции со строками
Сложение
1 a= ’ Quid ’
2 b= ’ est ’
3 a+ ’ ’ +b
4 ’ Quid est ’
Умножение
1 a= ’B ’
2 b= ’ z ’
3 a+b*4
4 ’ Bzzzz ’
Кафедра Теоретической механики Основы Python: типы данных, операторы 35 / 81
39. Строки
Операции со строками
Разделение строки на список подстрок, разделяемых заданным
символом – метод строка.split(разделитель)
1 a= ’2−12−85−06 ’
2
3 a . s p l i t ( ’− ’ )
4 [ ’ 2 ’ , ’ 12 ’ , ’ 85 ’ , ’ 06 ’ ]
Обратная операция объединения списка строк выполняется
методом разделитель.join(список)
1 a =[ ’ 2 ’ , ’ 12 ’ , ’ 85 ’ , ’ 06 ’ ]
2 ’ * ’ . j o i n ( a )
3
4 ’ 2*12*85*06 ’
Кафедра Теоретической механики Основы Python: типы данных, операторы 36 / 81
40. Строки
Операции со строками
Разделение строки на список подстрок, разделяемых заданным
символом – метод строка.split(разделитель)
1 a= ’2−12−85−06 ’
2
3 a . s p l i t ( ’− ’ )
4 [ ’ 2 ’ , ’ 12 ’ , ’ 85 ’ , ’ 06 ’ ]
Обратная операция объединения списка строк выполняется
методом разделитель.join(список)
1 a =[ ’ 2 ’ , ’ 12 ’ , ’ 85 ’ , ’ 06 ’ ]
2 ’ * ’ . j o i n ( a )
3
4 ’ 2*12*85*06 ’
Кафедра Теоретической механики Основы Python: типы данных, операторы 36 / 81
42. Атомарные и ссылочные типы
Атомарные и ссылочные типы
Атомарные типы bool, int, float, complex копируются при
присвоении
1 a = 10
2 b = a
3 b = b + 1
4 p r i n t ( a )
5 10
6 p r i n t ( b )
7 11
Переменная b содержит копию значения a
Кафедра Теоретической механики Основы Python: типы данных, операторы 38 / 81
43. Атомарные и ссылочные типы
Атомарные и ссылочные типы
Ссылочные типы: списки, строки, кортежи, словари, множества
1 a = [1 ,2 ,3 ,4 ,5]
2 b = a
Кафедра Теоретической механики Основы Python: типы данных, операторы 39 / 81
44. Атомарные и ссылочные типы
Атомарные и ссылочные типы
Ссылочные типы: списки, строки, кортежи, словари, множества
1 a = [1 ,2 ,3 ,4 ,5]
2 b = a
Заменяем третий элемент списка
1 b [ 2 ] = 0
2 p r i n t ( b )
3 [1 ,3 ,0 ,4 ,5]
Кафедра Теоретической механики Основы Python: типы данных, операторы 39 / 81
45. Атомарные и ссылочные типы
Атомарные и ссылочные типы
Ссылочные типы: списки, строки, кортежи, словари, множества
1 a = [1 ,2 ,3 ,4 ,5]
2 b = a
Заменяем третий элемент списка
1 b [ 2 ] = 0
2 p r i n t ( b )
3 [1 ,3 ,0 ,4 ,5]
Объект (список), на который ссылается переменная a тоже
изменился
1 p r i n t ( a )
2 [1 ,3 ,0 ,4 ,5]
Переменная b ссылается на тот же объект, что и a.
Кафедра Теоретической механики Основы Python: типы данных, операторы 39 / 81
46. Атомарные и ссылочные типы
Псевдоним и копия
Переменная b — это имя, которое ссылается на объект в памяти
(list). На этот же объект ссылкается и имя a:
1 a = [1 ,2 ,3 ,4 ,5]
2 b = a
Для того, чтобы создать копию, необходимо явно вызвать
функцию-конструктор list
1 a = [1 ,2 ,3 ,4 ,5]
2 b = l i s t ( a )
3 b [ 0 ] = 0
4 a
5 [1 , 2 , 3 , 4 , 5]
6 b
7 [0 , 2 , 3 , 4 , 5]
Кафедра Теоретической механики Основы Python: типы данных, операторы 40 / 81
47. Атомарные и ссылочные типы
Изменяемые и неизменяемые типы
Список — изменяемый тип
1 a = [1 ,2 ,3 ,4 ,5]
2 a [ 0 ] = 0
3 p r i n t ( a )
4 [1 ,2 ,0 ,4 ,5]
Строка – неизменяемый тип
1 word = ’мир ’
2 p r i n t ( word [ 1 ] )
и
1 word [ 0 ] = ’ i ’
TypeError: ’str’ object does not support item assignment
Кафедра Теоретической механики Основы Python: типы данных, операторы 41 / 81
49. Кортежи
Кортеж – неизменяемый список
Кортежи (tuple) – это неизменяемые списки
Кортеж создается перечислением элементов в круглых скобках
1 a = ( 1 , 2 , 3 , 4 , 5 )
или функцией tuple
1 a = tuple ( range ( 5 ) )
2 a
3 (0 , 1 , 2 , 3 , 4)
Кафедра Теоретической механики Основы Python: типы данных, операторы 43 / 81
50. Кортежи
tuple или list
Кортеж (tuple) – это неизменяемый список (list): удаление и
добавление элементов невозможно
Кортежи “работают” быстрее списков
Кортежи могут использоваться как ключи словаря
Кафедра Теоретической механики Основы Python: типы данных, операторы 44 / 81
52. Множество (set)
Множества
Определение
Неупорядоченный набор неповторяющихся элементов
Создание
При помощи функции set
1 s1 = set ( ( 1 , 2 , 3 , 4 , 5 , 6 ) )
2 s2 = set ( ( ’ d ’ , ’ abc ’ ,3 ,4 ,5 ,6) )
Перечисление элементов множества в {} скобках
1 s1 = { ’ d ’ , ’ abc ’ ,3 ,4 ,5 ,6}
Кафедра Теоретической механики Основы Python: типы данных, операторы 46 / 81
53. Множество (set)
Создание множества
Множество из элементов строки (букв)
1 a= set ( ’окно ’ )
2 p r i n t ( a )
3
4 { ’о ’ , ’к ’ , ’н ’ }
Множество из списка
1 a= set ( [ 1 , 2 , 3 , 4 , 6 , 4 , 6 ] )
2 p r i n t ( a )
3
4 {1 ,2 ,3 ,4 ,6}
Кафедра Теоретической механики Основы Python: типы данных, операторы 47 / 81
54. Множество (set)
Функции для множеств
1 a= set ( [ ’Меркурий ’ , ’Венера ’ , ’Земля ’ , ’Марс ’ ] )
Существует ли элемент в множестве - оператор in
1 p r i n t ( ’Юпитер ’ in a )
2 False
3 p r i n t ( ’Марс ’ in a )
4 True
5 p r i n t ( ’Юпитер ’ not in a )
6 True
Кафедра Теоретической механики Основы Python: типы данных, операторы 48 / 81
55. Множество (set)
Пересечение множеств
A & B или A.intersection(B)
1 a= set ( [ 1 , 2 , 3 , 4 ] )
2 b= set ( [ 3 , 4 , 5 , 6 ] )
Оператор &
1 p r i n t ( a & b )
2
3 {3 , 4}
Метод intersection
1 p r i n t ( a . i n t e r s e c t i o n ( b ) )
2
3 {3 , 4}
A
B
Кафедра Теоретической механики Основы Python: типы данных, операторы 49 / 81
56. Множество (set)
Объединение множеств
A | B или A.union(B)
1 a= set ( [ 1 , 2 , 3 , 4 ] )
2 b= set ( [ 3 , 4 , 5 , 6 ] )
Оператор |
1 p r i n t ( a | b )
2
3 {1 , 2 , 3 , 4 , 5 , 6}
Метод union
1 p r i n t ( a . union ( b ) )
2
3 {1 , 2 , 3 , 4 , 5 , 6}
A
B
Кафедра Теоретической механики Основы Python: типы данных, операторы 50 / 81
57. Множество (set)
Разность множеств
Элементы, принадлежащие А, но не принадлежащие В
A - B или A.difference(B)
1 a= set ( [ 1 , 2 , 3 , 4 ] )
2 b= set ( [ 3 , 4 , 5 , 6 ] )
Оператор -
1 p r i n t ( a − b )
2
3 {1 , 2}
Метод difference
1 p r i n t ( a . d i f f e r e n c e ( b ) )
2
3 {1 , 2}
A
B
Кафедра Теоретической механики Основы Python: типы данных, операторы 51 / 81
58. Множество (set)
Исключающее ИЛИ
Элементы, принадлежащие А или В, но не общие
A ^ B или A.symmetric_difference(B)
1 a= set ( [ 1 , 2 , 3 , 4 ] )
2 b= set ( [ 3 , 4 , 5 , 6 ] )
Оператор ^
1 p r i n t ( a ^ b )
2
3 {1 , 2 , 5 , 6}
Метод symmetric_difference
1 p r i n t ( a . symmetric_difference ( b ) )
2
3 {1 , 2 , 5 , 6}
A
B
A
B
Кафедра Теоретической механики Основы Python: типы данных, операторы 52 / 81
59. Множество (set)
Подмножество
Все элементы, принадлежащие А, принадлежат В
A <= B или A.issubset(B)
1 a= set ( [ 3 , 4 ] )
2 b= set ( [ 3 , 4 , 5 , 6 ] )
Оператор <=
1 p r i n t ( a <= b )
2
3 True
Метод issubset
1 p r i n t ( a . issubset ( b ) )
2
3 True
Кафедра Теоретической механики Основы Python: типы данных, операторы 53 / 81
60. Множество (set)
Подмножество
A >= B или A.issuperset(B)
1 a= set ( [ 1 , 2 , 3 , 4 , 5 , 6 ] )
2 b= set ( [ 3 , 4 , 5 , 6 ] )
Оператор >=
1 p r i n t ( a >= b )
2
3 True
Метод issuperset
1 p r i n t ( a . i s s u p e r s e t ( b ) )
2
3 True
Кафедра Теоретической механики Основы Python: типы данных, операторы 54 / 81
62. Словари (dictionary)
Словарь (ассоциативный массив)
Определение
Неупорядоченный набор пар: ключ - значение
Создание
При помощи функции dict
1 data =[ [72307 , ’ Bradbury ’ ] , [1701 , ’ Enterp ri se ’ ] ]
2 vessels = d i c t ( data )
Перечисление пар ключ : значение в {} скобках
1 vessels = {72307 : ’ Bradbury ’ , 1701: ’ Enterp rise ’ }
Создание пустого словаря
1 vessels = { }
Кафедра Теоретической механики Основы Python: типы данных, операторы 56 / 81
63. Словари (dictionary)
Добавление или изменение элемента
1 d i c t i o n a r y [ key ] = value
Если ключ key существует, то соответствующее значение
заменяется value, если ключа в словаре нет, то добавляется
новый элемент
1 vessels [68814] = ’ Prokofiev ’
2 p r i n t ( vessels )
3
4 {72307: ’ Bradbury ’ , 1701: ’ Enterp rise ’ , 68814: ’
Prokofiev ’ }
Кафедра Теоретической механики Основы Python: типы данных, операторы 57 / 81
64. Словари (dictionary)
Удаление элемента
Оператор del удаляет элемент по ключу
1 p r i n t ( vessels )
2
3 {72307: ’ Bradbury ’ , 1701: ’ Enterp rise ’ , 68814: ’
Prokofiev ’ }
4
5 del vessels [1701]
6
7 p r i n t ( vessels )
8
9 {72307: ’ Bradbury ’ , 68814: ’ Prokofiev ’ }
Кафедра Теоретической механики Основы Python: типы данных, операторы 58 / 81
65. Словари (dictionary)
Определение значения по ключу
1 klnum = { ” pagh ” : 0 , ”wa” : 1 , ” cha ” : 2 , ” wej ” : 3}
Оператор []
1 p r i n t ( klnum [ ’wa ’ ] )
2 1
3
4 p r i n t ( klnum [ ’ Hut ’ ] )
5 KeyError : ’ Hut ’
Метод get
1 klnum . get ( ’ Hut ’ )
2
3 None
1 klnum . get ( ’ Hut ’ , ’ ??? ’ )
2
3 ???
Кафедра Теоретической механики Основы Python: типы данных, операторы 59 / 81
66. Словари (dictionary)
Список ключей и значений словаря
1 phone = { ’212−85−06 ’ : ’ P i t e r ’ , ’32−22−23 ’ : ’ TV ’ }
Метод keys() возвращает список ключей словаря:
1 p r i n t ( phone . keys ( ) )
2
3 [ ’212−85−06 ’ , ’32−22−23 ’ ]
Метод values() возвращает список значений словаря:
1 p r i n t ( phone . values ( ) )
2
3 [ ’ P i t e r ’ , ’ TV ’ ]
Кафедра Теоретической механики Основы Python: типы данных, операторы 60 / 81
67. Словари (dictionary)
Методы словарей
Очистить словарь – clear()
1 d i c t . c l e a r ( )
Создать копию словаря – copy()
1 b = d i c t . copy ( )
Списко пар-кортежей (ключ, значение) – items()
1 phone = { ’212−85−06 ’ : ’ P i t e r ’ , ’32−22−23 ’ : ’ TV ’ }
2 p r i n t ( phone . items ( ) )
3
4 [ ( ’212−85−06 ’ , ’ P i t e r ’ ) , ( ’32−22−23 ’ , ’ TV ’ ) ]
Кафедра Теоретической механики Основы Python: типы данных, операторы 61 / 81
69. Управляющие конструкции
IF ... ELSE
1 a=getA ( c )
2 i f a>0 :
3 aDesc= ’ P o s i t i v e value ’
4 else
5 aDesc= ’Non−p o s i t i v e value ’
6 p r i n t ( aDesc )
Кафедра Теоретической механики Основы Python: типы данных, операторы 63 / 81
70. Управляющие конструкции
Операторы сравнения
равно ==
не равно !=
меньше <
меньше или равно <=
больше >
больше или равно >=
включение in
Составные логические выражения строятся при помощи
операторов
and, or, not
Кафедра Теоретической механики Основы Python: типы данных, операторы 64 / 81
71. Управляющие конструкции
Логические выражения
1 a = 5
2 a < 0
False
3 a < 10
True
4 a > 0 and a < 10
True
5 a > 0 and not a > 10
True
Кафедра Теоретической механики Основы Python: типы данных, операторы 65 / 81
72. Управляющие конструкции
IF ... ELIF ... ELSE
1 a=getA ( c )
2 i f a>0 :
3 aDesc= ’ P o s i t i v e value ’
4 e l i f a<0 :
5 aDesc= ’Non−p o s i t i v e value ’
6 else
7 aDesc= ’ Zero value ’
8 p r i n t ( aDesc )
Кафедра Теоретической механики Основы Python: типы данных, операторы 66 / 81
73. Управляющие конструкции
Цикл FOR
Используется для итераций – движения по элементам
последовательностей:
1 f o r i in [3 ,2 ,1 , ’ s t a r t ! ’ ] :
2 p r i n t ( i )
3
4 3
5 2
6 1
7 s t a r t !
Тело цикла обозначается отступом от положения оператора for
Кафедра Теоретической механики Основы Python: типы данных, операторы 67 / 81
74. Управляющие конструкции
continue и break
Оператор continue начинает следующий проход цикла, минуя
оставшееся тело цикла
1 f o r i in ’ hello world ’ :
2 i f i == ’ o ’ :
3 continue
4 p r i n t ( i , end= ’ ’ )
hell wrld
Оператор break прерывает выполнение цикла
1 f o r i in ’ hello world ’ :
2 i f i == ’ o ’ :
3 break
4 p r i n t ( i , end= ’ ’ )
hell
Кафедра Теоретической механики Основы Python: типы данных, операторы 68 / 81
75. Управляющие конструкции
Цикл WHILE
Выполнение тела цикла пока выполняется заданное условие
1 a = 0
2 b = 1
3 while a <50:
4 p r i n t ( a )
5 b = a + b
6 a = b − a
или
1 a , b = 0 ,1
2 while a <50:
3 p r i n t ( a )
4 a , b = b , a+b
0
1
1
2
3
5
8
13
21
34
Кафедра Теоретической механики Основы Python: типы данных, операторы 69 / 81
76. Управляющие конструкции
Цикл WHILE
1 a , b = 0 ,1
2 while a <50:
3 p r i n t ( a )
4 a , b = b , a+b
5 else :
6 p r i n t ( ’Следующее число фибоначчи больше 50 и равно ’ , a )
Секция else исполняется, если условие цикла перестало
выполняться или не выполнилось ни разу
...
8
13
21
34
Следующее число фибоначчи больше 50 и равно 55
Кафедра Теоретической механики Основы Python: типы данных, операторы 70 / 81
77. Управляющие конструкции
Цикл WHILE
1 a , b = 0 ,1
2 while a <50:
3 p r i n t ( a )
4 a , b = b , a+b
5 else :
6 p r i n t ( ’Следующее число фибоначчи больше 50 и равно ’ , a )
Секция else исполняется, если условие цикла перестало
выполняться или не выполнилось ни разу
...
8
13
21
34
Следующее число фибоначчи больше 50 и равно 55
Кафедра Теоретической механики Основы Python: типы данных, операторы 70 / 81
78. Управляющие конструкции
Функция range
Функция используется для генерации последовательностей
range(a,step,b) начиная с a до b (не включая b) с шагом step
1 l i s t ( range (1 ,10 ,2) )
2
3 [1 , 3 , 5 , 7 , 9]
Можно указать только верхнюю границу, не входящую в
последовательность (шаг равен 1):
1 l i s t ( range (10) )
2 [0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9]
Аргументы функции range целые числа (положительные и
отрицательные)
1 l i s t ( range (−2,−7,−2) )
2 [ −2 , −4, −6]
Кафедра Теоретической механики Основы Python: типы данных, операторы 71 / 81
79. Управляющие конструкции
Использование функции range в циклах FOR
1 week = [ ’Пн ’ , ’Вт ’ , ’Ср ’ , ’Чт ’ , ’Пт ’ , ’Сб ’ , ’Вс ’ ]
2
3 n = len ( week )
4
5 f o r i in range ( n ) :
6 p r i n t ( ’ { } день недели − { } ’ . format ( i +1 , week [ i ] ) )
7
8 1 день недели − Пн
9 2 день недели − Вт
10 3 день недели − Ср
11 4 день недели − Чт
12 5 день недели − Пт
13 6 день недели − Сб
14 7 день недели − Вс
Кафедра Теоретической механики Основы Python: типы данных, операторы 72 / 81
81. Задания
Игра “Жизнь” (автор Дж. Конвей)
1 Дано бесконечное поле на плоскости, разбитое на
квадратные ячейки.
2 Каждая ячейка может быть пустой или занятой клеткой.
3 Каждая ячейка граничит с 9 пустыми или занятыми
ячейками.
4 Клетка умирает если вокруг неё меньше 2 или больше 3
соседей.
5 Клетка рождается в пустой ячейке если вокруг неё ровно 3
соседа (клетки).
6 Рождение и смерть клеток происходит одновременно.
Кафедра Теоретической механики Основы Python: типы данных, операторы 74 / 81
91. Задания
Задание 1
Координаты “живых” клеток колонии заданы списком пар
координат x и y (список кортежей):
1 c e l l s = [ ( 1 , 1 ) , ( 2 , 1 ) , ( 3 , 1 ) , ( 3 , 2 ) , ( 2 , 3 ) ]
Напишите программу, которая для заданных координат
определяет занята клетка или свободна:
1 x = 1
2 y = 3
3 . . .
4 . . .
5 p r i n t ( isOccuped )
False
Кафедра Теоретической механики Основы Python: типы данных, операторы 76 / 81
92. Задания
Задание 2
Координаты “живых” клеток колонии заданы списком пар
координат x и y (список кортежей):
1 c e l l s = [ ( 1 , 1 ) , ( 2 , 1 ) , ( 3 , 1 ) , ( 3 , 2 ) , ( 2 , 3 ) ]
Напишите программу, которая для заданных координат клетки
поля определяет количество её соседей:
1 x = 1
2 y = 1
3 . . .
4 . . .
5 p r i n t ( neighbors )
Кафедра Теоретической механики Основы Python: типы данных, операторы 77 / 81
93. Задания
Задание 3
Координаты “живых” клеток колонии заданы списком пар
координат x и y (список кортежей):
1 c e l l s = [ ( 1 , 1 ) , ( 2 , 1 ) , ( 3 , 1 ) , ( 3 , 2 ) , ( 2 , 3 ) ]
Напишите программу, которая определяет список
неповторяющихся пар координат клеток-соседей колонии,
вместе с клетками колонии:
1 . . .
2 . . .
3 p r i n t ( candidates )
Кафедра Теоретической механики Основы Python: типы данных, операторы 78 / 81
94. Задания
Задание 4
Координаты “живых” клеток колонии заданы множеством пар
координат x и y (множество кортежей):
1 c e l l s = set ( [ ( 1 , 1 ) , ( 2 , 1 ) , ( 3 , 1 ) , ( 3 , 2 ) , ( 2 , 3 ) ] )
Напишите программу, которая для заданных координат клетки
поля определяет количество её соседей:
1 x = 1
2 y = 1
3 . . .
4 . . .
5 p r i n t ( neighbors )
Кафедра Теоретической механики Основы Python: типы данных, операторы 79 / 81
95. Задания
Задание 5
Координаты “живых” клеток колонии заданы множеством пар
координат x и y (множество кортежей):
1 c e l l s = set ( [ ( 1 , 1 ) , ( 2 , 1 ) , ( 3 , 1 ) , ( 3 , 2 ) , ( 2 , 3 ) ] )
Напишите программу, которая определяет множество пар
координат клеток-соседей колонии, вместе с клетками колонии:
1 x = 1
2 y = 1
3 . . .
4 . . .
5 p r i n t ( candidates )
Кафедра Теоретической механики Основы Python: типы данных, операторы 80 / 81
96. Задания
Список источников
1 Простой Python. Современный стиль программирования. —
СПб.: Питер, 2016. — 480 с.: ил. — (Серия «Бестселлеры
O’Reilly»).
2 Python 3 для начинающих https://pythonworld.ru
3 Python documentation https://docs.python.org
Кафедра Теоретической механики Основы Python: типы данных, операторы 81 / 81