Метод Й. Виттенбурга (Универсальные и цилиндрические шарниры)
Основы языка Питон: типы данных, операторы
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