SlideShare a Scribd company logo
Основы Python: типы данных, операторы
Технологии и языки программирования
Юдинцев В. В.
Кафедра теоретической механики
Самарский университет
Версия 10.2016
Содержание
1 Синтаксис
2 Основные типы данных
3 Последовательности
4 Строки
5 Атомарные и ссылочные типы
6 Кортежи
7 Множество (set)
8 Словари (dictionary)
9 Управляющие конструкции
10 Задания
Кафедра Теоретической механики Основы Python: типы данных, операторы 2 / 81
История
История
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
История
Особенности языка
Интерпретируемый, кроссплатформенный язык
Python поддерживает различные парадигмы
программирования:
модульное программирование
объектно-ориентированное программирование
функциональное программирование
Динамическая сильная типизация
Типы переменных определяются во время выполнения
программы
Поддержка структур данных высокого уровня
set, dict
Автоматизированная система контроля памяти
Кафедра Теоретической механики Основы Python: типы данных, операторы 4 / 81
История
Среда разработки
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
Синтаксис
Синтаксис
Файл программы, функции
В первой или второй строке файла программы, модуля должна
быть указана кодировка файла, например, UTF-8
1 # −*− coding : utf −8 −*−
или 1251 – кодировка MS Windows
1 # −*− coding : cp1251 −*−
Кафедра Теоретической механики Основы Python: типы данных, операторы 8 / 81
Синтаксис
Логические и физические строки
Программа состоит из логических строк
Логическая строка состоит из одной или нескольких
физических строк
Физические строки объединяются в одну логическую при
помощи символа 
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
Синтаксис
Имена переменных
Буквы в нижнем или верхнем регистре
Цифры
Нижнее подчёркивание
Имена переменных не могут начинаться с цифры
1 a1 = 10
2 a_3 = 20
3 A3 = 7
4 _ab = 9
Кафедра Теоретической механики Основы Python: типы данных, операторы 10 / 81
Синтаксис
Ключевые слова
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
Синтаксис
Комментарии
Комментарии начинаются с символа #, если этот символ не
является частью строковой константы
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
Основные типы данных
Основные типы данных
Классификация
Атомарные
bool, int, float, complex
Ссылочные
list, tuple, str, map, dict, set
Изменяемые
list, dict, set
Неизменяемые
tuple, str
Кафедра Теоретической механики Основы Python: типы данных, операторы 14 / 81
Основные типы данных
Булевы переменные
1 a = True
2 b = False
3
4 c = 7>3
5 p r i n t ( c )
6 True
Кафедра Теоретической механики Основы Python: типы данных, операторы 15 / 81
Основные типы данных
Целые числа
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
Основные типы данных
Математические операторы
+ сложение 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
Основные типы данных
Вещественное число (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
Основные типы данных
Комплексные числа
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
Последовательности
Последовательности
Списки (list)
Списки значений создаются при помощи оператора [ ] с
перечислением объектов, разделённых запятыми:
1 a = [1 , ’ word ’ , 2 , complex ( 1 , 2 ) ]
Длина списка
1 len ( a )
2 4
Кафедра Теоретической механики Основы Python: типы данных, операторы 21 / 81
Последовательности
Доступ к элементу списка
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
Последовательности
Создание списка целых чисел — 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
Последовательности
Срезы
1 a = [ ’Меркурий ’ , ’Венера ’ , ’Земля ’ , ’Марс ’ ]
Первые три элемента
1 a [ 0 : 4 ]
2 [ ’Меркурий ’ , ’Венера ’ , ’Земля ’ ]
Чётные элементы списка
1 a [ : : 2 ]
2 [ ’Венера ’ , ’Марс ’ ]
Обращение последовательности
1 a [ : : − 1 ]
2 [ ’Марс ’ , ’Земля ’ , ’Венера ’ , ’Меркурий ’ ]
Кафедра Теоретической механики Основы Python: типы данных, операторы 24 / 81
Последовательности
Вложенные списки
Элемент списка может быть списком
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
Последовательности
Добавление элемента
1 a = [ ’Меркурий ’ , ’Венера ’ , ’Земля ’ , ’Марс ’ ]
Добавление элемента в конец списка append
1 a . append ( ’Юпитер ’ )
2 a
3 [ ’Меркурий ’ , ’Венера ’ , ’Земля ’ , ’Марс ’ , ’Юпитер ’ ]
Кафедра Теоретической механики Основы Python: типы данных, операторы 26 / 81
Последовательности
Добавление элемента
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
Последовательности
Объединение списков. Метод extend
1 p1 = [ ’Меркурий ’ , ’Венера ’ ]
2 p2 = [ ’Земля ’ , ’Марс ’ ]
3
4 p1 . extend ( p2 )
5
6 p1
7 [ ’Меркурий ’ , ’Венера ’ , ’Земля ’ , ’Марс ’ ]
Кафедра Теоретической механики Основы Python: типы данных, операторы 27 / 81
Последовательности
Объединение списков. Метод extend
1 p1 = [ ’Меркурий ’ , ’Венера ’ ]
2 p2 = [ ’Земля ’ , ’Марс ’ ]
3
4 p1 . extend ( p2 )
5
6 p1
7 [ ’Меркурий ’ , ’Венера ’ , ’Земля ’ , ’Марс ’ ]
Короткий вариант с использованием оператора +=
1 p1 = [ ’Меркурий ’ , ’Венера ’ ]
2 p2 = [ ’Земля ’ , ’Марс ’ ]
3
4 p1+= p2
5
6 p1
7 [ ’Меркурий ’ , ’Венера ’ , ’Земля ’ , ’Марс ’ ]
Кафедра Теоретической механики Основы Python: типы данных, операторы 27 / 81
Последовательности
Удаление элемента
С использованием оператора del по индексу элемента
1 planets = [ ’Меркурий ’ , ’Венера ’ , ’Земля ’ , ’Марс ’ ]
2
3 del planets [ 2 ]
4
5 planets
6 [ ’Меркурий ’ , ’Венера ’ , ’Марс ’ ]
Кафедра Теоретической механики Основы Python: типы данных, операторы 28 / 81
Последовательности
Удаление элемента
С использованием оператора del по индексу элемента
1 planets = [ ’Меркурий ’ , ’Венера ’ , ’Земля ’ , ’Марс ’ ]
2
3 del planets [ 2 ]
4
5 planets
6 [ ’Меркурий ’ , ’Венера ’ , ’Марс ’ ]
С использованием метода remove по значению элемента
1 planets = [ ’Меркурий ’ , ’Венера ’ , ’Земля ’ , ’Марс ’ ]
2
3 planets . remove ( ’Земля ’ )
4
5 planets
6 [ ’Меркурий ’ , ’Венера ’ , ’Марс ’ ]
Кафедра Теоретической механики Основы Python: типы данных, операторы 28 / 81
Последовательности
Метод pop
Метод .pop(i) возвращает и извлекает i-ый элемент списка
1 planets = [ ’Меркурий ’ , ’Венера ’ , ’Земля ’ , ’Марс ’ ]
2
3 planets . pop ( 2 )
4 ’Земля ’
5
6 planets
7 [ ’Меркурий ’ , ’Венера ’ , ’Марс ’ ]
Кафедра Теоретической механики Основы Python: типы данных, операторы 29 / 81
Последовательности
Проверка наличия элемента в списке
Оператор in
1 planets = [ ’Меркурий ’ , ’Венера ’ , ’Земля ’ , ’Марс ’ ]
2
3 ’Марс ’ in planets
4 True
Количество заданных элементов в списке
1 phone = [2 , 3 , 22 , 3 , 22]
2
3 phone . count (22 )
4 2
Кафедра Теоретической механики Основы Python: типы данных, операторы 30 / 81
Строки
Строки
Строка – последовательность символов
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
Строки
Многострочный текст
Для создания много длинного многострочного текста
используются тройные кавычки
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
Строки
Преобразование типов в строку
1 s t r (192.008)
2 ’ 192.008 ’
3
4 s t r (192.36) *2
5 ’ 192.008192.008 ’
Кафедра Теоретической механики Основы Python: типы данных, операторы 34 / 81
Строки
Операции со строками
Сложение
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
Строки
Операции со строками
Разделение строки на список подстрок, разделяемых заданным
символом – метод строка.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
Строки
Операции со строками
Разделение строки на список подстрок, разделяемых заданным
символом – метод строка.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
Атомарные и ссылочные типы
Атомарные и ссылочные типы
Атомарные и ссылочные типы
Атомарные типы 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
Атомарные и ссылочные типы
Атомарные и ссылочные типы
Ссылочные типы: списки, строки, кортежи, словари, множества
1 a = [1 ,2 ,3 ,4 ,5]
2 b = a
Кафедра Теоретической механики Основы Python: типы данных, операторы 39 / 81
Атомарные и ссылочные типы
Атомарные и ссылочные типы
Ссылочные типы: списки, строки, кортежи, словари, множества
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
Атомарные и ссылочные типы
Атомарные и ссылочные типы
Ссылочные типы: списки, строки, кортежи, словари, множества
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
Атомарные и ссылочные типы
Псевдоним и копия
Переменная 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
Атомарные и ссылочные типы
Изменяемые и неизменяемые типы
Список — изменяемый тип
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
Кортежи
Кортежи
Кортеж – неизменяемый список
Кортежи (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
Кортежи
tuple или list
Кортеж (tuple) – это неизменяемый список (list): удаление и
добавление элементов невозможно
Кортежи “работают” быстрее списков
Кортежи могут использоваться как ключи словаря
Кафедра Теоретической механики Основы Python: типы данных, операторы 44 / 81
Множество (set)
Множество (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
Множество (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
Множество (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
Множество (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
Множество (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
Множество (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
Множество (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
Множество (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
Множество (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
Словари (dictionary)
Словари (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
Словари (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
Словари (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
Словари (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
Словари (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
Словари (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
Управляющие конструкции
Управляющие конструкции
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
Управляющие конструкции
Операторы сравнения
равно ==
не равно !=
меньше <
меньше или равно <=
больше >
больше или равно >=
включение in
Составные логические выражения строятся при помощи
операторов
and, or, not
Кафедра Теоретической механики Основы Python: типы данных, операторы 64 / 81
Управляющие конструкции
Логические выражения
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
Управляющие конструкции
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
Управляющие конструкции
Цикл 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
Управляющие конструкции
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
Управляющие конструкции
Цикл 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
Управляющие конструкции
Цикл 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
Управляющие конструкции
Цикл 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
Управляющие конструкции
Функция 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
Управляющие конструкции
Использование функции 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
Задания
Задания
Игра “Жизнь” (автор Дж. Конвей)
1 Дано бесконечное поле на плоскости, разбитое на
квадратные ячейки.
2 Каждая ячейка может быть пустой или занятой клеткой.
3 Каждая ячейка граничит с 9 пустыми или занятыми
ячейками.
4 Клетка умирает если вокруг неё меньше 2 или больше 3
соседей.
5 Клетка рождается в пустой ячейке если вокруг неё ровно 3
соседа (клетки).
6 Рождение и смерть клеток происходит одновременно.
Кафедра Теоретической механики Основы Python: типы данных, операторы 74 / 81
Задания
Глайдер
Кафедра Теоретической механики Основы Python: типы данных, операторы 75 / 81
Задания
Глайдер
Кафедра Теоретической механики Основы Python: типы данных, операторы 75 / 81
Задания
Глайдер
Кафедра Теоретической механики Основы Python: типы данных, операторы 75 / 81
Задания
Глайдер
Кафедра Теоретической механики Основы Python: типы данных, операторы 75 / 81
Задания
Глайдер
Кафедра Теоретической механики Основы Python: типы данных, операторы 75 / 81
Задания
Глайдер
Кафедра Теоретической механики Основы Python: типы данных, операторы 75 / 81
Задания
Глайдер
Кафедра Теоретической механики Основы Python: типы данных, операторы 75 / 81
Задания
Глайдер
Кафедра Теоретической механики Основы Python: типы данных, операторы 75 / 81
Задания
Глайдер
Кафедра Теоретической механики Основы Python: типы данных, операторы 75 / 81
Задания
Задание 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
Задания
Задание 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
Задания
Задание 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
Задания
Задание 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
Задания
Задание 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
Задания
Список источников
1 Простой Python. Современный стиль программирования. —
СПб.: Питер, 2016. — 480 с.: ил. — (Серия «Бестселлеры
O’Reilly»).
2 Python 3 для начинающих https://pythonworld.ru
3 Python documentation https://docs.python.org
Кафедра Теоретической механики Основы Python: типы данных, операторы 81 / 81

More Related Content

What's hot

Python pandas tutorial
Python pandas tutorialPython pandas tutorial
Python pandas tutorial
HarikaReddy115
 
Introduction to numpy Session 1
Introduction to numpy Session 1Introduction to numpy Session 1
Introduction to numpy Session 1
Jatin Miglani
 
Introduction to Python Pandas for Data Analytics
Introduction to Python Pandas for Data AnalyticsIntroduction to Python Pandas for Data Analytics
Introduction to Python Pandas for Data Analytics
Phoenix
 
pandas: Powerful data analysis tools for Python
pandas: Powerful data analysis tools for Pythonpandas: Powerful data analysis tools for Python
pandas: Powerful data analysis tools for Python
Wes McKinney
 
Python-List.pptx
Python-List.pptxPython-List.pptx
Python-List.pptx
AnitaDevi158873
 
Python Matplotlib Tutorial | Matplotlib Tutorial | Python Tutorial | Python T...
Python Matplotlib Tutorial | Matplotlib Tutorial | Python Tutorial | Python T...Python Matplotlib Tutorial | Matplotlib Tutorial | Python Tutorial | Python T...
Python Matplotlib Tutorial | Matplotlib Tutorial | Python Tutorial | Python T...
Edureka!
 
RDM 2020: Python, Numpy, and Pandas
RDM 2020: Python, Numpy, and PandasRDM 2020: Python, Numpy, and Pandas
RDM 2020: Python, Numpy, and Pandas
Henry Schreiner
 
Visualization and Matplotlib using Python.pptx
Visualization and Matplotlib using Python.pptxVisualization and Matplotlib using Python.pptx
Visualization and Matplotlib using Python.pptx
SharmilaMore5
 
Python For Data Science Cheat Sheet
Python For Data Science Cheat SheetPython For Data Science Cheat Sheet
Python For Data Science Cheat Sheet
Karlijn Willems
 
Data Analysis in Python-NumPy
Data Analysis in Python-NumPyData Analysis in Python-NumPy
Data Analysis in Python-NumPy
Devashish Kumar
 
Основы NumPy
Основы NumPyОсновы NumPy
ห.ร.ม และ ค.ร.น.
ห.ร.ม และ ค.ร.น.ห.ร.ม และ ค.ร.น.
ห.ร.ม และ ค.ร.น.guestcf3942
 
Pandas
PandasPandas
Pandas
Jyoti shukla
 
NUMPY
NUMPY NUMPY
NumPy
NumPyNumPy
Python-Tuples
Python-TuplesPython-Tuples
Python-Tuples
Krishna Nanda
 
Data Visualization(s) Using Python
Data Visualization(s) Using PythonData Visualization(s) Using Python
Data Visualization(s) Using Python
Aniket Maithani
 
Data Analysis and Visualization using Python
Data Analysis and Visualization using PythonData Analysis and Visualization using Python
Data Analysis and Visualization using Python
Chariza Pladin
 
pandas - Python Data Analysis
pandas - Python Data Analysispandas - Python Data Analysis
pandas - Python Data Analysis
Andrew Henshaw
 

What's hot (20)

Python pandas tutorial
Python pandas tutorialPython pandas tutorial
Python pandas tutorial
 
โครงสร้างโปรแกรมภาษาซี
โครงสร้างโปรแกรมภาษาซีโครงสร้างโปรแกรมภาษาซี
โครงสร้างโปรแกรมภาษาซี
 
Introduction to numpy Session 1
Introduction to numpy Session 1Introduction to numpy Session 1
Introduction to numpy Session 1
 
Introduction to Python Pandas for Data Analytics
Introduction to Python Pandas for Data AnalyticsIntroduction to Python Pandas for Data Analytics
Introduction to Python Pandas for Data Analytics
 
pandas: Powerful data analysis tools for Python
pandas: Powerful data analysis tools for Pythonpandas: Powerful data analysis tools for Python
pandas: Powerful data analysis tools for Python
 
Python-List.pptx
Python-List.pptxPython-List.pptx
Python-List.pptx
 
Python Matplotlib Tutorial | Matplotlib Tutorial | Python Tutorial | Python T...
Python Matplotlib Tutorial | Matplotlib Tutorial | Python Tutorial | Python T...Python Matplotlib Tutorial | Matplotlib Tutorial | Python Tutorial | Python T...
Python Matplotlib Tutorial | Matplotlib Tutorial | Python Tutorial | Python T...
 
RDM 2020: Python, Numpy, and Pandas
RDM 2020: Python, Numpy, and PandasRDM 2020: Python, Numpy, and Pandas
RDM 2020: Python, Numpy, and Pandas
 
Visualization and Matplotlib using Python.pptx
Visualization and Matplotlib using Python.pptxVisualization and Matplotlib using Python.pptx
Visualization and Matplotlib using Python.pptx
 
Python For Data Science Cheat Sheet
Python For Data Science Cheat SheetPython For Data Science Cheat Sheet
Python For Data Science Cheat Sheet
 
Data Analysis in Python-NumPy
Data Analysis in Python-NumPyData Analysis in Python-NumPy
Data Analysis in Python-NumPy
 
Основы NumPy
Основы NumPyОсновы NumPy
Основы NumPy
 
ห.ร.ม และ ค.ร.น.
ห.ร.ม และ ค.ร.น.ห.ร.ม และ ค.ร.น.
ห.ร.ม และ ค.ร.น.
 
Pandas
PandasPandas
Pandas
 
NUMPY
NUMPY NUMPY
NUMPY
 
NumPy
NumPyNumPy
NumPy
 
Python-Tuples
Python-TuplesPython-Tuples
Python-Tuples
 
Data Visualization(s) Using Python
Data Visualization(s) Using PythonData Visualization(s) Using Python
Data Visualization(s) Using Python
 
Data Analysis and Visualization using Python
Data Analysis and Visualization using PythonData Analysis and Visualization using Python
Data Analysis and Visualization using Python
 
pandas - Python Data Analysis
pandas - Python Data Analysispandas - Python Data Analysis
pandas - Python Data Analysis
 

Viewers also liked

Основы Python. Функции
Основы Python. ФункцииОсновы Python. Функции
Основы Python. Функции
Theoretical mechanics department
 
1U-3U+ Cubesat Deployer by JSC SRC "Progress"
1U-3U+ Cubesat Deployer by JSC SRC "Progress"1U-3U+ Cubesat Deployer by JSC SRC "Progress"
1U-3U+ Cubesat Deployer by JSC SRC "Progress"
Theoretical mechanics department
 
Deployers for nanosatellites
Deployers for nanosatellitesDeployers for nanosatellites
Deployers for nanosatellites
Theoretical mechanics department
 
Python: Модули и пакеты
Python: Модули и пакетыPython: Модули и пакеты
Python: Модули и пакеты
Theoretical mechanics department
 
Python. Объектно-ориентированное программирование
Python. Объектно-ориентированное программирование Python. Объектно-ориентированное программирование
Python. Объектно-ориентированное программирование
Theoretical mechanics department
 
Python: ввод и вывод
Python: ввод и выводPython: ввод и вывод
Python: ввод и вывод
Theoretical mechanics department
 
Лекция 5. Встроенные коллекции и модуль collections.
Лекция 5. Встроенные коллекции и модуль collections.Лекция 5. Встроенные коллекции и модуль collections.
Лекция 5. Встроенные коллекции и модуль collections.
Roman Brovko
 
Лекция 3. Декораторы и модуль functools.
Лекция 3. Декораторы и модуль functools.Лекция 3. Декораторы и модуль functools.
Лекция 3. Декораторы и модуль functools.
Roman Brovko
 
Лекция 6. Классы 1.
Лекция 6. Классы 1.Лекция 6. Классы 1.
Лекция 6. Классы 1.
Roman Brovko
 
Лекция 7. Исключения и менеджеры контекста.
Лекция 7. Исключения и менеджеры контекста.Лекция 7. Исключения и менеджеры контекста.
Лекция 7. Исключения и менеджеры контекста.
Roman Brovko
 
Лекция 2. Всё, что вы хотели знать о функциях в Python.
Лекция 2. Всё, что вы хотели знать о функциях в Python.Лекция 2. Всё, что вы хотели знать о функциях в Python.
Лекция 2. Всё, что вы хотели знать о функциях в Python.
Roman Brovko
 
Лекция 12. Быстрее, Python, ещё быстрее.
Лекция 12. Быстрее, Python, ещё быстрее.Лекция 12. Быстрее, Python, ещё быстрее.
Лекция 12. Быстрее, Python, ещё быстрее.
Roman Brovko
 
Лекция 11. Тестирование.
Лекция 11. Тестирование.Лекция 11. Тестирование.
Лекция 11. Тестирование.
Roman Brovko
 
Лекция 10. Классы 2.
Лекция 10. Классы 2.Лекция 10. Классы 2.
Лекция 10. Классы 2.
Roman Brovko
 
Лекция 1. Начало.
Лекция 1. Начало.Лекция 1. Начало.
Лекция 1. Начало.
Roman Brovko
 
Лекция 4. Строки, байты, файлы и ввод/вывод.
 Лекция 4. Строки, байты, файлы и ввод/вывод. Лекция 4. Строки, байты, файлы и ввод/вывод.
Лекция 4. Строки, байты, файлы и ввод/вывод.
Roman Brovko
 
Лекция 9. Модули, пакеты и система импорта.
Лекция 9. Модули, пакеты и система импорта.Лекция 9. Модули, пакеты и система импорта.
Лекция 9. Модули, пакеты и система импорта.
Roman Brovko
 
Лекция 13. Многопоточность и GIL
Лекция 13. Многопоточность и GILЛекция 13. Многопоточность и GIL
Лекция 13. Многопоточность и GIL
Roman Brovko
 
Лекция 8. Итераторы, генераторы и модуль itertools.
 Лекция 8. Итераторы, генераторы и модуль itertools. Лекция 8. Итераторы, генераторы и модуль itertools.
Лекция 8. Итераторы, генераторы и модуль itertools.
Roman Brovko
 

Viewers also liked (19)

Основы Python. Функции
Основы Python. ФункцииОсновы Python. Функции
Основы Python. Функции
 
1U-3U+ Cubesat Deployer by JSC SRC "Progress"
1U-3U+ Cubesat Deployer by JSC SRC "Progress"1U-3U+ Cubesat Deployer by JSC SRC "Progress"
1U-3U+ Cubesat Deployer by JSC SRC "Progress"
 
Deployers for nanosatellites
Deployers for nanosatellitesDeployers for nanosatellites
Deployers for nanosatellites
 
Python: Модули и пакеты
Python: Модули и пакетыPython: Модули и пакеты
Python: Модули и пакеты
 
Python. Объектно-ориентированное программирование
Python. Объектно-ориентированное программирование Python. Объектно-ориентированное программирование
Python. Объектно-ориентированное программирование
 
Python: ввод и вывод
Python: ввод и выводPython: ввод и вывод
Python: ввод и вывод
 
Лекция 5. Встроенные коллекции и модуль collections.
Лекция 5. Встроенные коллекции и модуль collections.Лекция 5. Встроенные коллекции и модуль collections.
Лекция 5. Встроенные коллекции и модуль collections.
 
Лекция 3. Декораторы и модуль functools.
Лекция 3. Декораторы и модуль functools.Лекция 3. Декораторы и модуль functools.
Лекция 3. Декораторы и модуль functools.
 
Лекция 6. Классы 1.
Лекция 6. Классы 1.Лекция 6. Классы 1.
Лекция 6. Классы 1.
 
Лекция 7. Исключения и менеджеры контекста.
Лекция 7. Исключения и менеджеры контекста.Лекция 7. Исключения и менеджеры контекста.
Лекция 7. Исключения и менеджеры контекста.
 
Лекция 2. Всё, что вы хотели знать о функциях в Python.
Лекция 2. Всё, что вы хотели знать о функциях в Python.Лекция 2. Всё, что вы хотели знать о функциях в Python.
Лекция 2. Всё, что вы хотели знать о функциях в Python.
 
Лекция 12. Быстрее, Python, ещё быстрее.
Лекция 12. Быстрее, Python, ещё быстрее.Лекция 12. Быстрее, Python, ещё быстрее.
Лекция 12. Быстрее, Python, ещё быстрее.
 
Лекция 11. Тестирование.
Лекция 11. Тестирование.Лекция 11. Тестирование.
Лекция 11. Тестирование.
 
Лекция 10. Классы 2.
Лекция 10. Классы 2.Лекция 10. Классы 2.
Лекция 10. Классы 2.
 
Лекция 1. Начало.
Лекция 1. Начало.Лекция 1. Начало.
Лекция 1. Начало.
 
Лекция 4. Строки, байты, файлы и ввод/вывод.
 Лекция 4. Строки, байты, файлы и ввод/вывод. Лекция 4. Строки, байты, файлы и ввод/вывод.
Лекция 4. Строки, байты, файлы и ввод/вывод.
 
Лекция 9. Модули, пакеты и система импорта.
Лекция 9. Модули, пакеты и система импорта.Лекция 9. Модули, пакеты и система импорта.
Лекция 9. Модули, пакеты и система импорта.
 
Лекция 13. Многопоточность и GIL
Лекция 13. Многопоточность и GILЛекция 13. Многопоточность и GIL
Лекция 13. Многопоточность и GIL
 
Лекция 8. Итераторы, генераторы и модуль itertools.
 Лекция 8. Итераторы, генераторы и модуль itertools. Лекция 8. Итераторы, генераторы и модуль itertools.
Лекция 8. Итераторы, генераторы и модуль itertools.
 

Similar to Основы языка Питон: типы данных, операторы

Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Python Meetup
 
стандартная библиотека с++: введение
стандартная библиотека с++: введениестандартная библиотека с++: введение
стандартная библиотека с++: введение
mcroitor
 
Алгоритмы и структуры данных весна 2014 лекция 1
Алгоритмы и структуры данных весна 2014 лекция 1Алгоритмы и структуры данных весна 2014 лекция 1
Алгоритмы и структуры данных весна 2014 лекция 1Technopark
 
Java. Методы
Java. Методы Java. Методы
Java. Методы
Unguryan Vitaliy
 
тема множество для загрузки 2013
тема множество для загрузки 2013тема множество для загрузки 2013
тема множество для загрузки 2013AliyaAringazinova
 
PascalABC.NET 2015-2016
PascalABC.NET 2015-2016PascalABC.NET 2015-2016
паскаль 10кл 14
паскаль 10кл 14паскаль 10кл 14
паскаль 10кл 14
Ирина Куликова
 
массивы.строки
массивы.строкимассивы.строки
массивы.строкиdasha2012
 
основы Java переменные, циклы
основы Java   переменные, циклыосновы Java   переменные, циклы
основы Java переменные, циклы
Sergey Nemchinsky
 
Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...
Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...
Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...
corehard_by
 
Типы данных
Типы данныхТипы данных
Типы данных
MonsterXX
 
Ruby: работа с массивами
Ruby: работа с массивамиRuby: работа с массивами
Ruby: работа с массивами
Evgeny Smirnov
 
Лекция #5. Введение в язык программирования Python 3
Лекция #5. Введение в язык программирования Python 3Лекция #5. Введение в язык программирования Python 3
Лекция #5. Введение в язык программирования Python 3
Яковенко Кирилл
 
17 pdf -_programmi
17 pdf -_programmi17 pdf -_programmi
17 pdf -_programmi
MBOU Spasskaya SOSH
 
C++ осень 2013 лекция 2
C++ осень 2013 лекция 2C++ осень 2013 лекция 2
C++ осень 2013 лекция 2Technopark
 
8 встреча — Язык программирования Python (В. Ананьев)
8 встреча — Язык программирования Python (В. Ананьев)8 встреча — Язык программирования Python (В. Ананьев)
8 встреча — Язык программирования Python (В. Ананьев)
Smolensk Computer Science Club
 
Charming python sc2-8
Charming python sc2-8Charming python sc2-8
Charming python sc2-8
Vladislav Ananev
 

Similar to Основы языка Питон: типы данных, операторы (20)

Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
 
ввод и вывод элементов массива
ввод и вывод элементов массиваввод и вывод элементов массива
ввод и вывод элементов массива
 
стандартная библиотека с++: введение
стандартная библиотека с++: введениестандартная библиотека с++: введение
стандартная библиотека с++: введение
 
Алгоритмы и структуры данных весна 2014 лекция 1
Алгоритмы и структуры данных весна 2014 лекция 1Алгоритмы и структуры данных весна 2014 лекция 1
Алгоритмы и структуры данных весна 2014 лекция 1
 
Java. Методы
Java. Методы Java. Методы
Java. Методы
 
Rgsu04
Rgsu04Rgsu04
Rgsu04
 
Rgsu04
Rgsu04Rgsu04
Rgsu04
 
тема множество для загрузки 2013
тема множество для загрузки 2013тема множество для загрузки 2013
тема множество для загрузки 2013
 
PascalABC.NET 2015-2016
PascalABC.NET 2015-2016PascalABC.NET 2015-2016
PascalABC.NET 2015-2016
 
паскаль 10кл 14
паскаль 10кл 14паскаль 10кл 14
паскаль 10кл 14
 
массивы.строки
массивы.строкимассивы.строки
массивы.строки
 
основы Java переменные, циклы
основы Java   переменные, циклыосновы Java   переменные, циклы
основы Java переменные, циклы
 
Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...
Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...
Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...
 
Типы данных
Типы данныхТипы данных
Типы данных
 
Ruby: работа с массивами
Ruby: работа с массивамиRuby: работа с массивами
Ruby: работа с массивами
 
Лекция #5. Введение в язык программирования Python 3
Лекция #5. Введение в язык программирования Python 3Лекция #5. Введение в язык программирования Python 3
Лекция #5. Введение в язык программирования Python 3
 
17 pdf -_programmi
17 pdf -_programmi17 pdf -_programmi
17 pdf -_programmi
 
C++ осень 2013 лекция 2
C++ осень 2013 лекция 2C++ осень 2013 лекция 2
C++ осень 2013 лекция 2
 
8 встреча — Язык программирования Python (В. Ананьев)
8 встреча — Язык программирования Python (В. Ананьев)8 встреча — Язык программирования Python (В. Ананьев)
8 встреча — Язык программирования Python (В. Ананьев)
 
Charming python sc2-8
Charming python sc2-8Charming python sc2-8
Charming python sc2-8
 

More from Theoretical mechanics department

Космический мусор
Космический мусорКосмический мусор
Космический мусор
Theoretical mechanics department
 
Основы SciPy
Основы SciPyОсновы SciPy
Модификация механизма Йо-Йо
Модификация механизма Йо-ЙоМодификация механизма Йо-Йо
Модификация механизма Йо-Йо
Theoretical mechanics department
 
Python. Обработка ошибок
Python. Обработка ошибокPython. Обработка ошибок
Python. Обработка ошибок
Theoretical mechanics department
 
Машинная арифметика. Cтандарт IEEE-754
Машинная арифметика. Cтандарт IEEE-754Машинная арифметика. Cтандарт IEEE-754
Машинная арифметика. Cтандарт IEEE-754
Theoretical mechanics department
 
Chaotic motions of tethered satellites with low thrust
Chaotic motions of tethered satellites with low thrust Chaotic motions of tethered satellites with low thrust
Chaotic motions of tethered satellites with low thrust
Theoretical mechanics department
 
Docking with noncooperative spent orbital stage using probe-cone mechanism
Docking with noncooperative spent orbital stage using probe-cone mechanismDocking with noncooperative spent orbital stage using probe-cone mechanism
Docking with noncooperative spent orbital stage using probe-cone mechanism
Theoretical mechanics department
 
Алгоритмы и языки программирования
Алгоритмы и языки программированияАлгоритмы и языки программирования
Алгоритмы и языки программирования
Theoretical mechanics department
 
CubeSat separation dynamics
CubeSat separation dynamicsCubeSat separation dynamics
CubeSat separation dynamics
Theoretical mechanics department
 
Chaotic Behavior of a Passive Satellite During Towing by a Tether
Chaotic Behavior of a Passive Satellite During Towing by a TetherChaotic Behavior of a Passive Satellite During Towing by a Tether
Chaotic Behavior of a Passive Satellite During Towing by a Tether
Theoretical mechanics department
 
Основы MATLAB. Численные методы
Основы MATLAB. Численные методыОсновы MATLAB. Численные методы
Основы MATLAB. Численные методы
Theoretical mechanics department
 
Транспортно-пусковой контейнер для наноспутников типоразмера 3U, 3U+
Транспортно-пусковой контейнер для наноспутников типоразмера 3U, 3U+Транспортно-пусковой контейнер для наноспутников типоразмера 3U, 3U+
Транспортно-пусковой контейнер для наноспутников типоразмера 3U, 3U+
Theoretical mechanics department
 
On problems of active space debris removal using tethered towing
On problems of active space debris removal using tethered towingOn problems of active space debris removal using tethered towing
On problems of active space debris removal using tethered towingTheoretical mechanics department
 
Методы решения нелинейных уравнений
Методы решения нелинейных уравненийМетоды решения нелинейных уравнений
Методы решения нелинейных уравнений
Theoretical mechanics department
 
Наноспутники формата кубсат
Наноспутники формата кубсатНаноспутники формата кубсат
Наноспутники формата кубсат
Theoretical mechanics department
 
Отделение створок головного обтекателя
Отделение створок головного обтекателяОтделение створок головного обтекателя
Отделение створок головного обтекателя
Theoretical mechanics department
 
The Dynamics of Tethered Debris With Flexible Appendages and Residual Fuel
The Dynamics of Tethered Debris With Flexible Appendages and Residual FuelThe Dynamics of Tethered Debris With Flexible Appendages and Residual Fuel
The Dynamics of Tethered Debris With Flexible Appendages and Residual Fuel
Theoretical mechanics department
 
Метод Кейна
Метод КейнаМетод Кейна
Метод Кейна
Theoretical mechanics department
 
Метод отдельных тел
Метод отдельных телМетод отдельных тел
Метод отдельных тел
Theoretical mechanics department
 
Метод Й. Виттенбурга (Универсальные и цилиндрические шарниры)
Метод Й. Виттенбурга (Универсальные и цилиндрические шарниры)Метод Й. Виттенбурга (Универсальные и цилиндрические шарниры)
Метод Й. Виттенбурга (Универсальные и цилиндрические шарниры)
Theoretical mechanics department
 

More from Theoretical mechanics department (20)

Космический мусор
Космический мусорКосмический мусор
Космический мусор
 
Основы SciPy
Основы SciPyОсновы SciPy
Основы SciPy
 
Модификация механизма Йо-Йо
Модификация механизма Йо-ЙоМодификация механизма Йо-Йо
Модификация механизма Йо-Йо
 
Python. Обработка ошибок
Python. Обработка ошибокPython. Обработка ошибок
Python. Обработка ошибок
 
Машинная арифметика. Cтандарт IEEE-754
Машинная арифметика. Cтандарт IEEE-754Машинная арифметика. Cтандарт IEEE-754
Машинная арифметика. Cтандарт IEEE-754
 
Chaotic motions of tethered satellites with low thrust
Chaotic motions of tethered satellites with low thrust Chaotic motions of tethered satellites with low thrust
Chaotic motions of tethered satellites with low thrust
 
Docking with noncooperative spent orbital stage using probe-cone mechanism
Docking with noncooperative spent orbital stage using probe-cone mechanismDocking with noncooperative spent orbital stage using probe-cone mechanism
Docking with noncooperative spent orbital stage using probe-cone mechanism
 
Алгоритмы и языки программирования
Алгоритмы и языки программированияАлгоритмы и языки программирования
Алгоритмы и языки программирования
 
CubeSat separation dynamics
CubeSat separation dynamicsCubeSat separation dynamics
CubeSat separation dynamics
 
Chaotic Behavior of a Passive Satellite During Towing by a Tether
Chaotic Behavior of a Passive Satellite During Towing by a TetherChaotic Behavior of a Passive Satellite During Towing by a Tether
Chaotic Behavior of a Passive Satellite During Towing by a Tether
 
Основы MATLAB. Численные методы
Основы MATLAB. Численные методыОсновы MATLAB. Численные методы
Основы MATLAB. Численные методы
 
Транспортно-пусковой контейнер для наноспутников типоразмера 3U, 3U+
Транспортно-пусковой контейнер для наноспутников типоразмера 3U, 3U+Транспортно-пусковой контейнер для наноспутников типоразмера 3U, 3U+
Транспортно-пусковой контейнер для наноспутников типоразмера 3U, 3U+
 
On problems of active space debris removal using tethered towing
On problems of active space debris removal using tethered towingOn problems of active space debris removal using tethered towing
On problems of active space debris removal using tethered towing
 
Методы решения нелинейных уравнений
Методы решения нелинейных уравненийМетоды решения нелинейных уравнений
Методы решения нелинейных уравнений
 
Наноспутники формата кубсат
Наноспутники формата кубсатНаноспутники формата кубсат
Наноспутники формата кубсат
 
Отделение створок головного обтекателя
Отделение створок головного обтекателяОтделение створок головного обтекателя
Отделение створок головного обтекателя
 
The Dynamics of Tethered Debris With Flexible Appendages and Residual Fuel
The Dynamics of Tethered Debris With Flexible Appendages and Residual FuelThe Dynamics of Tethered Debris With Flexible Appendages and Residual Fuel
The Dynamics of Tethered Debris With Flexible Appendages and Residual Fuel
 
Метод Кейна
Метод КейнаМетод Кейна
Метод Кейна
 
Метод отдельных тел
Метод отдельных телМетод отдельных тел
Метод отдельных тел
 
Метод Й. Виттенбурга (Универсальные и цилиндрические шарниры)
Метод Й. Виттенбурга (Универсальные и цилиндрические шарниры)Метод Й. Виттенбурга (Универсальные и цилиндрические шарниры)
Метод Й. Виттенбурга (Универсальные и цилиндрические шарниры)
 

Основы языка Питон: типы данных, операторы

  • 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
  • 6.
  • 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
  • 28. Последовательности Объединение списков. Метод extend 1 p1 = [ ’Меркурий ’ , ’Венера ’ ] 2 p2 = [ ’Земля ’ , ’Марс ’ ] 3 4 p1 . extend ( p2 ) 5 6 p1 7 [ ’Меркурий ’ , ’Венера ’ , ’Земля ’ , ’Марс ’ ] Кафедра Теоретической механики Основы Python: типы данных, операторы 27 / 81
  • 29. Последовательности Объединение списков. Метод extend 1 p1 = [ ’Меркурий ’ , ’Венера ’ ] 2 p2 = [ ’Земля ’ , ’Марс ’ ] 3 4 p1 . extend ( p2 ) 5 6 p1 7 [ ’Меркурий ’ , ’Венера ’ , ’Земля ’ , ’Марс ’ ] Короткий вариант с использованием оператора += 1 p1 = [ ’Меркурий ’ , ’Венера ’ ] 2 p2 = [ ’Земля ’ , ’Марс ’ ] 3 4 p1+= p2 5 6 p1 7 [ ’Меркурий ’ , ’Венера ’ , ’Земля ’ , ’Марс ’ ] Кафедра Теоретической механики Основы Python: типы данных, операторы 27 / 81
  • 30. Последовательности Удаление элемента С использованием оператора del по индексу элемента 1 planets = [ ’Меркурий ’ , ’Венера ’ , ’Земля ’ , ’Марс ’ ] 2 3 del planets [ 2 ] 4 5 planets 6 [ ’Меркурий ’ , ’Венера ’ , ’Марс ’ ] Кафедра Теоретической механики Основы Python: типы данных, операторы 28 / 81
  • 31. Последовательности Удаление элемента С использованием оператора del по индексу элемента 1 planets = [ ’Меркурий ’ , ’Венера ’ , ’Земля ’ , ’Марс ’ ] 2 3 del planets [ 2 ] 4 5 planets 6 [ ’Меркурий ’ , ’Венера ’ , ’Марс ’ ] С использованием метода remove по значению элемента 1 planets = [ ’Меркурий ’ , ’Венера ’ , ’Земля ’ , ’Марс ’ ] 2 3 planets . remove ( ’Земля ’ ) 4 5 planets 6 [ ’Меркурий ’ , ’Венера ’ , ’Марс ’ ] Кафедра Теоретической механики Основы Python: типы данных, операторы 28 / 81
  • 32. Последовательности Метод pop Метод .pop(i) возвращает и извлекает i-ый элемент списка 1 planets = [ ’Меркурий ’ , ’Венера ’ , ’Земля ’ , ’Марс ’ ] 2 3 planets . pop ( 2 ) 4 ’Земля ’ 5 6 planets 7 [ ’Меркурий ’ , ’Венера ’ , ’Марс ’ ] Кафедра Теоретической механики Основы Python: типы данных, операторы 29 / 81
  • 33. Последовательности Проверка наличия элемента в списке Оператор in 1 planets = [ ’Меркурий ’ , ’Венера ’ , ’Земля ’ , ’Марс ’ ] 2 3 ’Марс ’ in planets 4 True Количество заданных элементов в списке 1 phone = [2 , 3 , 22 , 3 , 22] 2 3 phone . count (22 ) 4 2 Кафедра Теоретической механики Основы Python: типы данных, операторы 30 / 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
  • 82. Задания Глайдер Кафедра Теоретической механики Основы Python: типы данных, операторы 75 / 81
  • 83. Задания Глайдер Кафедра Теоретической механики Основы Python: типы данных, операторы 75 / 81
  • 84. Задания Глайдер Кафедра Теоретической механики Основы Python: типы данных, операторы 75 / 81
  • 85. Задания Глайдер Кафедра Теоретической механики Основы Python: типы данных, операторы 75 / 81
  • 86. Задания Глайдер Кафедра Теоретической механики Основы Python: типы данных, операторы 75 / 81
  • 87. Задания Глайдер Кафедра Теоретической механики Основы Python: типы данных, операторы 75 / 81
  • 88. Задания Глайдер Кафедра Теоретической механики Основы Python: типы данных, операторы 75 / 81
  • 89. Задания Глайдер Кафедра Теоретической механики Основы Python: типы данных, операторы 75 / 81
  • 90. Задания Глайдер Кафедра Теоретической механики Основы Python: типы данных, операторы 75 / 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