- •Стиль программирования на языке Python.
- •Программа на Python. Ввод-вывод данных. Основные алгоритмические конструкции. Последовательные действия.
- •Идентификаторы, комментарии, логические и физические строки.
- •Встроенные типы данных. Целые и вещественные типы данных.
- •Типы: комплексные числа, логический
- •Встроенные функции для работы с разными типами данных.
- •Возможности модуля math
- •Оператор условия. Варианты написания оператора.
- •Операторы цикла: for, while.
- •Функции range, enumerate.
- •Операторы break, continue.
- •Строки, работа со строками, срезы, методы и функции для работы со строками
- •Списки. Создание списков, методы и функции для работы со списками. Методы join и split.
- •Кортежи. Создание кортежей, обращение к элементам кортежей.
- •Множества. Создание, добавление элементов. Методы и операции для работы с множествами.
- •Словари. Создание словарей, добавление элементов, обращение к элементам. Методы для работы со словарями.
- •Методы словарей
- •Именованные функции: определение и вызов.
- •Именованные функции Объявление функции и вызов
- •Аргументы функций: обязательные, ключевые, со значением по умолчанию, произвольной длины
- •Глобальные и локальные переменные.
- •Написание рекурсивных функций
- •Анонимные функции (lambda-выражение)
- •Понятие модуля. Модули в Python. Подключение модулей. Создание своего модуля и пакета модулей.
- •Использование псевдонимов
- •Модуль math, Модуль random
- •Модуль datatime, Модуль itertools
- •Модуль itertools
- •Модуль itertools. Бесконечные последовательности
- •Модуль itertools. Генерация комбинаций значений!
- •Оператор try ... Exept
- •Пример оператора try...Except.
- •Работа с текстовыми файлами: открытие файла, ввод, вывод данных
Модуль itertools. Генерация комбинаций значений!
combinations(последовательность, кол-во элементов) – на каждой итерации возвращает кортеж, содержащий комбинацию из указанного кол-ва элементов, элементы будут разными
combinations_with_replacement (последовательность, кол-во элементов) – на каждой итерации возвращает кортеж, содержащий комбинацию из указанного кол-ва элементов, кортеж может содержать одинаковые элементы
permutations(последовательность, r=None) - перестановки длиной r из последовательность.
product(последовательность1[, …, последовательностьN] [, repeat = 1]) – на каждой итерации возвращает комбинацию из элементов одной или нескольких последовательностей
Примеры:
#комбинации из 2-х различных элементов последовательности [1, 2, 3, 4]
for x in itertools.combinations([1, 2, 3, 4], 2):
print(x, end = ' ')
(1, 2) (1, 3) (1, 4) (2, 3) (2, 4) (3, 4)
#число сочетаний без повторений из 4 по 2
s = list(itertools.combinations( range(1, 5), 2))
print(s)
print(len(s))
[(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]
6
accumulate (последовательность [, функция]) – на каждой итерации возвращает результат, полученный выполнением функции над текущим элементов и результатом, полученным на предыдущей операции
list(itertools.accumulate( [1, 2, 3, 4, 5] ))
[1, 3, 6, 10, 15]
list(itertools.accumulate( [1, 2, 3, 4, 5], lambda x, y: x*y))
[1, 2, 6, 24, 120]
chain (последовательность1 [, …, последовательность N]) – на каждой итерации возвращает элементы сначала из первой последовательности, затем из второй и т.д.
lslice ( последовательность[, начало], конец [, шаг])
starmap (функция, последовательность) – формирует последовательность на основе значений, возвращаемых функцией
Оператор try ... Exept
В программах могут возникать Исключения
синтаксические
логические
ошибки во время выполнения
Исключения возбуждаются не только при ошибке, но и при наступлении каких-либо событий, например, при делении на ноль возникает исключение ZeroDivisionError или может возникнуть исключение ValueError, если функция index не найдет подстроку в строке
Обрабатывать исключения можно при помощи оператора try...except. Формат записи этого оператора
try:
<Блок, в котором перехватываются исключения>
[except [<Исключение 1> [as <Объект исключения>]]]:
<Блок, выполняемый при возникновении исключения>
[…]
[except [<Исключение N> [as <Объект исключения>]]]:
<Блок, выполняемый при возникновении исключения>
[else:
<Блок, выполняемый, если исключение не возникло>]
[finally:
<Блок, выполняемый в любом случае>]
Части, которые заключены в квадратные скобки могут отсутствовать.
Пример оператора try...Except.
Имеются два числа x и y. Вывести частное от деления x/y, если это можно, иначе вывести сообщение "Произошла ошибка"
x = 5
y =2
try:
z = x/y
print('x/y=', z )
except :
print("Произошла ошибка")
x/y= 2.5
x = 2
y = 0
try:
z = x/y
print('x/y=', z )
except :
print("Произошла ошибка")
Произошла ошибка