Занятие №3:

Модули и библиотеки

Работа с модулями

Определение

Модуль в Python - самая крупная организационная программная единица, которая вмещает в себя программный код и данные, готовые для многократного использования

 

Короче: Модуль это программа/файл/скрипт, подгружаемый другой программой

 

# Модуль lec_3_my_module.py

# Атрибуты модуля
a = 3
b = 'Good'
c = ['Bad', 4, 'Petya molodec']

earth_mass = 5.97237 * 10**30
sigma_steff_bolc = 5.67036713 * 10**(-8)
gravity_constant = 6.67408 * 10**(-11)

Создание модуля

Любой файл с расширением «.py» автоматически считается модулем Python

# Модуль lec_3_import.py

# Инструкция, целиком загружающая модуль
import lec_3_my_module

print(lec_3_my_module.a)

b = lec_3_my_module.b * 3
print(b)

print(lec_3_my_module.c[2])
3
GoodGoodGood
Petya molodec

Инструкция import

Модули должны находится в одной директории

# Создание псевдонима для имени модуля
import lec_3_my_module as mm

print(mm.a)

b = mm.b * 3
print(b)

print(mm.c[2] + b + mm.c[0])
3
GoodGoodGood
Petya molodecGoodGoodGoodBad

Конструкция import - as

# Копирование указанных атрибутов модуля
from lec_3_my_module import a, b

print(a * b)

# Копирование ВСЕХ атрибутов модуля
from lec_3_my_module import *

print(c[2] * c[1])
GoodGoodGood
Petya molodecPetya 
	molodecPetya 
	molodecPetya 
	molodec

Инструкция from

from lec_3_my_module import earth_mass as em
from lec_3_my_module import gravity_constant as G
from lec_3_my_module import sigma_steff_bolc as sigma

g = 500 * G / 10**2
print(g)

x = em * G * sigma
print(x)
3.33704e-10
22602126004102.9

Инструкция from as

from lec_3_my_module import b
from lec_3_import_as import b

print(b)

import lec_3_my_module as mm
import lec_3_import_as as l3

print(mm.b + l3.b)
3
GoodGoodGood
Petya molodecGoodGoodGoodBad
GoodGoodGood
GoodGoodGoodGood

Когда необходимо использовать инструкцию import?

Знакомство с некоторыми библиотеками

import math

a = math.sin(3 * math.pi / 5)
print(a)

b = math.sqrt(3)
print(b)

c = math.log10(42)
print(c)

d = math.asin(math.tan(math.pi / 4)) * 180 / math.pi
print(d)
0.9510565162951536
1.7320508075688772
1.6232492903979006
89.99999914622636

Библиотека math

Библиотека numpy

NumPyбиблиотека с открытым исходным кодом для языка программирования Python, c возможностями поддержки многомерных массивов (включая матрицы) и высокоуровневых математических функций, предназначенных для работы с многомерными массивами

import numpy as np

a = [1, 2, 4]

b = np.array(a) # Создание массива из списка

print(type(a))
print(type(b))

print(b * b)
print(b / b)
print(b - b)

# print(a - a)

print(b[-1]) # Вызов последнего элеманта массива
# print(a[-1])
<class 'list'>
<class 'numpy.ndarray'>
[ 1  4 16]
[1. 1. 1.]
[0 0 0]
4

np.array

import numpy as np

a = np.zeros((2, 3))
print(a)

a[0, 2] = 5
print(a)

b = np.ones((3, 2))
print(b)

d = np.ndarray((3, 3))
print(d)
[[0. 0. 0.]
 [0. 0. 0.]]
[[0. 0. 5.]
 [0. 0. 0.]]
[[1. 1.]
 [1. 1.]
 [1. 1.]]
[[6.90237172e-310 4.64609385e-310 
  0.00000000e+000]
 [0.00000000e+000 0.00000000e+000 
  0.00000000e+000]
 [0.00000000e+000 0.00000000e+000 
  0.00000000e+000]]

np.zeros, np.ones и np.ndarray

numpy generators

np.arange(start, stop, step)
np.linspace(start, stop, num)

Start

Step

Stop

Start

Num

Stop

import numpy as np

a = range(0, 5, 1)
print(a)

# a = range(0, 10, 0.1)

b = np.arange(0, 5, 0.1)
print(b)

d = np.linspace(0, 5, 10)
print(d)
range(0, 5)
[0.  0.1 0.2 0.3 0.4 0.5 0.6 0.7 
 0.8 0.9 1.  1.1 1.2 1.3 1.4 1.5 
 1.6 1.7 1.8 1.9 2. 2.1 2.2 2.3 
 2.4 2.5 2.6 2.7 2.8 2.9 3. 3.1 
 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9
 4.  4.1 4.2 4.3 4.4 4.5 4.6 4.7
 4.8 4.9]
[0.         0.55555556 1.11111111 
 1.66666667 2.22222222 2.77777778
 3.33333333 3.88888889 4.44444444 
 5.]

numpy generators

Срезы (slice)

# slice = a[start, stop, step]

Start

Stop

a = [4, 16, 10, 5, 7, 1, 8]
slice = a[2:5:1]
[10, 5, 7]
print(slice)

4

16

10

5

7

1

8

0

1

2

3

4

5

6

Start = 0

Stop = 1

Step = len(a)

Значения по умолчанию

import numpy as np

a = [1, 5, 3, 6]
slice = a[0:2:1]
print(slice)

slice = a[3:0:-1]
print(slice)

slice = a[::-1]
print(slice)

b = np.array([a, np.array(a)*3])
print(b)
[1, 5]
[6, 3, 5]
[6, 3, 5, 1]
[[ 1  5  3  6]
 [ 3 15  9 18]]

Срезы (slice)

slice = b[::, 1]
print(slice)

slice = b[1,2:3:1]
print(slice)

slice = b[1,2::1]
print(slice)
[ 5 15]
[9]
[ 9 18]

Срезы (slice)

Спасибо за понимание!

Лекция №3. Модули и библиотеки

By Alexey Baigashov

Лекция №3. Модули и библиотеки

  • 357