- •Стиль программирования на языке Python.
- •Программа на Python. Ввод-вывод данных. Основные алгоритмические конструкции. Последовательные действия.
- •Идентификаторы, комментарии, логические и физические строки.
- •Встроенные типы данных. Целые и вещественные типы данных.
- •Типы: комплексные числа, логический
- •Встроенные функции для работы с разными типами данных.
- •Возможности модуля math
- •Оператор условия. Варианты написания оператора.
- •Операторы цикла: for, while.
- •Функции range, enumerate.
- •Операторы break, continue.
- •Строки, работа со строками, срезы, методы и функции для работы со строками
- •Списки. Создание списков, методы и функции для работы со списками. Методы join и split.
- •Кортежи. Создание кортежей, обращение к элементам кортежей.
- •Множества. Создание, добавление элементов. Методы и операции для работы с множествами.
- •Словари. Создание словарей, добавление элементов, обращение к элементам. Методы для работы со словарями.
- •Методы словарей
- •Именованные функции: определение и вызов.
- •Именованные функции Объявление функции и вызов
- •Аргументы функций: обязательные, ключевые, со значением по умолчанию, произвольной длины
- •Глобальные и локальные переменные.
- •Написание рекурсивных функций
- •Анонимные функции (lambda-выражение)
- •Понятие модуля. Модули в Python. Подключение модулей. Создание своего модуля и пакета модулей.
- •Использование псевдонимов
- •Модуль math, Модуль random
- •Модуль datatime, Модуль itertools
- •Модуль itertools
- •Модуль itertools. Бесконечные последовательности
- •Модуль itertools. Генерация комбинаций значений!
- •Оператор try ... Exept
- •Пример оператора try...Except.
- •Работа с текстовыми файлами: открытие файла, ввод, вывод данных
Понятие модуля. Модули в Python. Подключение модулей. Создание своего модуля и пакета модулей.
Под модулем в Python понимается файл с расширением .py. Модули предназначены для того, чтобы в них хранить часто используемые функции, классы, константы и т.п. Можно условно разделить модули и программы: программы предназначены для непосредственного запуска, а модули для импортирования их в другие программы.
Подключение модулей
Подключить модуль можно с помощью инструкции import.После ключевого слова import указывается название модуля.
import time
Использование псевдонимов
Если название модуля слишком длинное, или оно вам не нравится по каким-то другим причинам, то для него можно создать псевдоним, с помощью ключевого слова as.
import math as m
Подключить определенные атрибуты модуля можно с помощью инструкции from.
from math import cos
При этом импортируется только конкретный объект (в нашем примере: функция cos), остальные функции недоступны.Для импортирования нескольких функций из модуля, можно перечислить их имена через запятую.
Если необходимо импортировать все фукнции, классы и т.п. из модуля, то воспользуйтесь следующей формой оператора from имя_модуля import *
Создание своего модуля
Чтобы создать свой модуль в Python достаточно сохранить ваш скрипт с расширением .py Теперь он доступен в любом другом файле. Например, создадим два файла: module_1.py и module_2.py и сохраним их в одной директории. В первом запишем:
|
def hello(): print ("Hello from module_1") |
А во втором вызовем эту функцию:
|
from module_1 import hello hello() |
Выполнив код второго файла получим:
Hello from module_1
Пакеты модулей
Отдельные файлы-модули с кодом на Python могут объединяться в пакеты модулей. Пакет это директория (папка), содержащая несколько отдельных файлов-скриптов.
Например, имеем следующую структуру:
|_ my_file.py
|_ my_package
|_ __init__.py
|_ inside_file.py
В файле inside_file.py определена некая функция foo. Тогда чтобы получить доступ к функции foo, в файле my_file следует выполнить следующий код:
from my_package.inside_file import foo
Модуль math, Модуль random
Встроенный модуль math в Python предоставляет набор функций для выполнения математических, тригонометрических и логарифмических операций. Некоторые из основных функций модуля:
pow(num, power): возведение числа num в степень power ;sqrt(num): квадратный корень числа num
ceil(num): округление числа до ближайшего наибольшего целого
floor(num): округление числа до ближайшего наименьшего целого; factorial(num): факториал числа
degrees(rad): перевод из радиан в градусы; radians(grad): перевод из градусов в радианы
cos(rad): косинус угла в радианах; sin(rad): синус угла в радианах
tan(rad): тангенс угла в радианах; acos(rad): арккосинус угла в радианах
asin(rad): арксинус угла в радианах; atan(rad): арктангенс угла в радианах
log(n, base): логарифм числа n по основанию base; log10(n): десятичный логарифм числа n
Также модуль math предоставляет ряд встроенных констант, такие как PI и E: import math radius = 30 # площадь круга с радиусом 30 area = math.pi * math.pow(radius, 2) print(area) number = math.log(10, math.e) # натуральный логарифм числа 10 print(number)
Модуль random предоставляет функции для генерации случайных чисел, букв, случайного выбора элементов последовательности.
random.random() - возвращает случайное вещественное число от 0 до 1
random.randrange([start,] stop[, step]) - возвращает случайно выбранное число из последовательности range([start,] stop[, step])
random.randint(A, B)- возвращает случайное целое число N из отрезка от А до B
random.choice(sequence) - возвращает случайный элемент непустой последовательности sequence
random.shuffle(sequence, [rand]) - перемешивает последовательность sequence, изменяется сама последовательность. Поэтому функция не работает для неизменяемых объектов
random.sample(population, k) - возвращает список длиной k из последовательности population
random.uniform(A, B) - возвращает случайное число с плавающей точкой N, A ≤ N ≤ B (или B ≤ N ≤ A)
Рассмотрим примеры.
import random
print("random:", random.random(), random.random(), random.random())#случайное вещественное число от 0 до 1
print("random:", random.random()*100, random.random()*100, random.random()*100) #случайное вещественное число от 0 до 100
print("uniform:", random.uniform(50, 100), random.uniform(50, 100), \
random.uniform(50, 100)) #случайное вещественное число от 50 до 100
print("randrange(100):", random.randrange(100), random.randrange(100),\ #randrange(100): 84 50 82 12
random.randrange(100), random.randrange(100)) #случайные числа из последовательности чисел от 0 до 100
print("randrange(50,100):", random.randrange(50,100), \ #randrange(50,100): 69 91 95
random.randrange(50,100), random.randrange(50,100)) #случайные числа из последовательности чисел от 50 до 100
print("randrange(50,100,2):", random.randrange(50,100,2), \ #randrange(50,100,2): 52 78 90
random.randrange(50,100,2), random.randrange(50,100,2)) #случайные чётные числа из последовательности чисел от 50 до 100
print(random.choice([10, 3, -3, 789, 323, 5, 12])) #случайный элемент из последовательности
s = [10, 3, -3, 789, 323, 5, 12]
random.shuffle(s) #Перемешиваем элементы последовательности s
#!!! Нельзя применять к строкам и кортежам
print(s) #[10, 3, -3, 789, 323, 5, 12]
s = [10, 3, -3, 789, 323, 5, 12]
#последовательность из 3-х случайных элементов последовательности s
print(random.sample(s, 3)) #[789, -3, 12]