форкнуто от main/python-labs
Родитель
2f3d63e543
Сommit
614035593a
|
После Ширина: | Высота: | Размер: 20 KiB |
|
После Ширина: | Высота: | Размер: 26 KiB |
|
После Ширина: | Высота: | Размер: 15 KiB |
|
После Ширина: | Высота: | Размер: 7.4 KiB |
|
После Ширина: | Высота: | Размер: 13 KiB |
@ -0,0 +1,396 @@
|
||||
### Отчёт по теме 4
|
||||
Лазарев Данил Вячеславович А-01-23
|
||||
|
||||
### 1.Запуск оболочки IDLE.
|
||||
```
|
||||
import os
|
||||
os.chdir('C:\\Users\\Dannyan\\OneDrive\\Рабочий стол\\python-labs\\TEMA4\\')
|
||||
|
||||
```
|
||||
### 2.Изучение стандартных функций.
|
||||
## 2.1. Функция round - округление с заданной точностью.
|
||||
Получим справку по назначению этой функции
|
||||
```
|
||||
help(round)
|
||||
Help on built-in function round in module builtins:
|
||||
|
||||
round(number, ndigits=None)
|
||||
Round a number to a given precision in decimal digits.
|
||||
|
||||
The return value is an integer if ndigits is omitted or None. Otherwise
|
||||
the return value has the same type as the number. ndigits may be negative.
|
||||
```
|
||||
Используем функцию и определим тип результатов вычисления
|
||||
```
|
||||
round(123.456,1)
|
||||
123.5
|
||||
round(123.456,0)
|
||||
123.0
|
||||
type(round(123.456,0))
|
||||
<class 'float'>
|
||||
type(round(123.456,1))
|
||||
<class 'float'>
|
||||
round(123.456)
|
||||
123
|
||||
type(round(123.456))
|
||||
<class 'int'>
|
||||
```
|
||||
## 2.2. Функция range – создание последовательности целых чисел с заданным шагом или, по умолчанию, с шагом 1.
|
||||
```
|
||||
gg=range(76,123,9)
|
||||
list(gg)
|
||||
[76, 85, 94, 103, 112, 121]
|
||||
a = range(23)
|
||||
list(a)
|
||||
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]
|
||||
#значения от 0 до 23, шаг 1, границы 0 - 22
|
||||
```
|
||||
При подобной записи переменной a строится последовательность от 0 до конечного значения, указанного ранее, с базовым шагом 1.
|
||||
|
||||
## 2.3. Функция zip – создание общего объекта, элементами которого являются кортежи, составленные из элементов двух или более объектов-последовательностей.
|
||||
Создадим объект список и применим к нему функцию zip
|
||||
```
|
||||
qq = ['Lazarev','Anisenkov','Fillipova','Jalnin']
|
||||
ff=zip(gg,qq)
|
||||
tuple(ff)
|
||||
((76, 'Lazarev'), (85, 'Anisenkov'), (94, 'Fillipova'), (103, 'Jalnin'))
|
||||
```
|
||||
Стоит заметить, что объекты воздействуемые функцией zip не предполагают возможности обращения по индексу
|
||||
## 2.4.Функция eval – вычисление значения выражения, корректно записанного на языке Python и представленного в виде символьной строки.
|
||||
```
|
||||
fff=float(input('коэффициент усиления=')); dan=eval('5*fff-156')
|
||||
коэффициент усиления=5
|
||||
dan
|
||||
```
|
||||
## 2.5.Функция exec – чтение и выполнение объекта-аргумента функции.
|
||||
```
|
||||
exec(input('введите инструкции:'))
|
||||
введите инструкции:perem=-123.456;gg=round(abs(perem)+98,3)
|
||||
gg
|
||||
|
||||
```
|
||||
## 2.6.Рассмотрим ряд прочих функций:
|
||||
abs модуль заданного выражения или числа
|
||||
pow возведение заданного числа в указанную степень
|
||||
max находит максимальное из воозможных значений списка
|
||||
min находит максимальное значение из возможных в списке
|
||||
sum суммирует заданный набор чисел(элементы списка)
|
||||
len выдает длину рассматриваемого объекта
|
||||
map применяет заданную функцию к каждому элементу заданного объекта
|
||||
divmod(с,d) проводит операцию вида (c//d,c%d) и выводит кортеж с полученными значениями
|
||||
```
|
||||
abs(-36)
|
||||
|
||||
pow(2,2)
|
||||
|
||||
max([1,2,3,4,33,3,2,1,5,0])
|
||||
|
||||
min([1,2,3,4,33,3,2,1,5,0])
|
||||
|
||||
sum([1,2,3,4,33,3,2,1,5,0])
|
||||
|
||||
divmod(7,3)
|
||||
|
||||
len([1,2,3,4,33,3,2,1,5,0])
|
||||
|
||||
o = [1,2,3,4,33,3,2,1,5,0]
|
||||
def f(x):
|
||||
return x*x*x
|
||||
list(map(f,o))
|
||||
```
|
||||
### 3. Функции из стандартного модуля math
|
||||
## Импортируем необходимую библеотеку
|
||||
```
|
||||
import math
|
||||
dir(math)
|
||||
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'cbrt', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'exp2', 'expm1', 'fabs', 'factorial', 'floor', 'fma', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'isqrt', 'lcm', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'nextafter', 'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'sumprod', 'tan', 'tanh', 'tau', 'trunc', 'ulp']
|
||||
```
|
||||
sin выдаёт синус аргумента в радианах
|
||||
acos выдает арккосинус аргумента в радианах
|
||||
degrees переводит число в радианах в градусы
|
||||
radians переводит число в градусах в радианы
|
||||
exp значение числа e, возведенного в степень указаную в аргументе
|
||||
log считает натуральный логарифм числа
|
||||
log10 считает десятичный логарифм числа
|
||||
sqrt рассчет корня числа
|
||||
ceil округление число вверх
|
||||
floor округление число вниз
|
||||
pi представление числа пи в питоне
|
||||
```
|
||||
help(math.factorial)
|
||||
Help on built-in function factorial in module math:
|
||||
factorial(n, /)
|
||||
Find n!.
|
||||
|
||||
math.factorial(5)
|
||||
120
|
||||
math.sin(1)
|
||||
0.8414709848078965
|
||||
math.acos(1)
|
||||
0.0
|
||||
math.degrees(36)
|
||||
2062.648062470964
|
||||
math.radians(2062.648062470964)
|
||||
36.00000000000001
|
||||
math.exp(2)
|
||||
7.38905609893065
|
||||
math.log(100)
|
||||
4.605170185988092
|
||||
math.log10(100)
|
||||
2.0
|
||||
math.sqrt(100)
|
||||
10.0
|
||||
math.ceil(58.3)
|
||||
59
|
||||
math.floor(58.3)
|
||||
58
|
||||
math.pi
|
||||
3.141592653589793
|
||||
math.sin(((2*math.pi)/7 + math.exp(0.23)))
|
||||
0.8334902641414562
|
||||
```
|
||||
### 4.Функции из модуля cmath
|
||||
Импортируем и рассмотрим использование функций для работы с комплексными числами.
|
||||
```
|
||||
import cmath
|
||||
dir(cmath)
|
||||
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'cos', 'cosh', 'e', 'exp', 'inf', 'infj', 'isclose', 'isfinite', 'isinf', 'isnan', 'log', 'log10', 'nan', 'nanj', 'phase', 'pi', 'polar', 'rect', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau']
|
||||
cmath.sqrt(1.2-0.5j)
|
||||
(1.118033988749895-0.22360679774997896j)
|
||||
cmath.phase(1-0.5j)
|
||||
-0.4636476090008061
|
||||
```
|
||||
|
||||
### 5.Стандартный модуль random
|
||||
```
|
||||
import random
|
||||
dir(random)
|
||||
['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', '_ONE', '_Sequence', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_accumulate', '_acos', '_bisect', '_ceil', '_cos', '_e', '_exp', '_fabs', '_floor', '_index', '_inst', '_isfinite', '_lgamma', '_log', '_log2', '_os', '_parse_args', '_pi', '_random', '_repeat', '_sha512', '_sin', '_sqrt', '_test', '_test_generator', '_urandom', 'betavariate', 'binomialvariate', 'choice', 'choices', 'expovariate', 'gammavariate', 'gauss', 'getrandbits', 'getstate', 'lognormvariate', 'main', 'normalvariate', 'paretovariate', 'randbytes', 'randint', 'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle', 'triangular', 'uniform', 'vonmisesvariate', 'weibullvariate']
|
||||
help(random.seed)
|
||||
Help on method seed in module random:
|
||||
|
||||
seed(a=None, version=2) method of random.Random instance
|
||||
Initialize internal state from a seed.
|
||||
|
||||
The only supported seed types are None, int, float,
|
||||
str, bytes, and bytearray.
|
||||
|
||||
None or no argument seeds from current time or from an operating
|
||||
system specific randomness source if available.
|
||||
|
||||
If *a* is an int, all bits are used.
|
||||
|
||||
For version 2 (the default), all of the bits are used if *a* is a str,
|
||||
bytes, or bytearray. For version 1 (provided for reproducing random
|
||||
sequences from older versions of Python), the algorithm for str and
|
||||
bytes generates a narrower range of seeds.
|
||||
```
|
||||
|
||||
## random равномерно распределенное случайное число
|
||||
```
|
||||
random.seed()
|
||||
r = random.random()
|
||||
r
|
||||
0.7602265821504725
|
||||
```
|
||||
## uniform равномерно распределенное случайное число в диапазоне, заданном двумя аргументам
|
||||
```
|
||||
a = random.uniform(1,3)
|
||||
a
|
||||
1.6506391388455899
|
||||
```
|
||||
## randint случайное целые число из заданного диапазона
|
||||
```
|
||||
b = random.randint(1, 19)
|
||||
b
|
||||
8
|
||||
```
|
||||
## gauss нормально распределенное случайное число с средним равным первому аргументу и стандартным отклонением равным второму аргументу
|
||||
```
|
||||
c = random.gauss()
|
||||
c
|
||||
-2.8896415965159985
|
||||
d = random.gauss(1,0)
|
||||
d
|
||||
1.0
|
||||
|
||||
d = random.gauss(1,1)
|
||||
|
||||
d
|
||||
0.05266125395944099
|
||||
```
|
||||
## choice случайный элемент из совокупности указанной в аргументе
|
||||
```
|
||||
b =[2,3,1,2,3,4,6]
|
||||
e = random.choice(b)
|
||||
e
|
||||
2
|
||||
```
|
||||
## shuffle случайная перестановка элементов списка в аргументе
|
||||
```
|
||||
random.shuffle(b)
|
||||
b
|
||||
[3, 2, 2, 6, 3, 1, 4]
|
||||
```
|
||||
## sample случайный выбор подмножества элементов из списка в первом аргументе
|
||||
```
|
||||
k = random.sample(b,4)
|
||||
k
|
||||
[3, 2, 2, 4]
|
||||
```
|
||||
## betavariate случайное число с бета-распределением
|
||||
```
|
||||
p = random.betavariate(1,2)
|
||||
p
|
||||
0.48596997669197367
|
||||
```
|
||||
## gammavariate случайное число с гамма-распределением
|
||||
```
|
||||
p = random.gammavariate(1,1)
|
||||
p
|
||||
1.2802780104125937
|
||||
```
|
||||
Создадим свой список с заданными в задании распределениями
|
||||
```
|
||||
f = [ random.uniform(1,3), random.gauss(1,2), random.betavariate(2,2), random.gammavariate(2,3)]
|
||||
|
||||
f
|
||||
[2.247730869060465, 3.871209301585315, 0.39715861559850196, 3.959028762460888]
|
||||
```
|
||||
### 6. Функции модуля time - работа с календарем и со временем
|
||||
Изучим и применим методы из модуля time:
|
||||
|
||||
time время в секундах,прошедшее с начала эпохи, за которое обычно принимается 01.01.1970г
|
||||
gmtime объект класса struct_time, содержащий полную информацию о текущем времени: год (tm_year), месяц (tm_mon), день tm_mday) и т.д.
|
||||
localtime получение «местного» времени
|
||||
asctime преобразовывает представление времени из кортежа в строку
|
||||
ctime преобразование времени в секундах,прошедшего с начала эпохи, в строку
|
||||
sleep преостановка работы программы на заданное время в секундах
|
||||
mktime преобразовает время из кортежа или struct_time в число секунд с начала эпохи.
|
||||
```
|
||||
import time
|
||||
dir(time)
|
||||
['_STRUCT_TM_ITEMS', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'altzone', 'asctime', 'ctime', 'daylight', 'get_clock_info', 'gmtime', 'localtime', 'mktime', 'monotonic', 'monotonic_ns', 'perf_counter', 'perf_counter_ns', 'process_time', 'process_time_ns', 'sleep', 'strftime', 'strptime', 'struct_time', 'thread_time', 'thread_time_ns', 'time', 'time_ns', 'timezone', 'tzname']
|
||||
c1=time.time()
|
||||
c1
|
||||
1761161531.581906
|
||||
c2=time.time()-c1
|
||||
c2
|
||||
20.391149044036865
|
||||
dat=time.gmtime()
|
||||
dat
|
||||
time.struct_time(tm_year=2025, tm_mon=10, tm_mday=22, tm_hour=19, tm_min=33, tm_sec=7, tm_wday=2, tm_yday=295, tm_isdst=0)
|
||||
dat.tm_mon
|
||||
10
|
||||
dat.tm_year
|
||||
2025
|
||||
dat.tm_hour
|
||||
19
|
||||
dat.tm_min
|
||||
33
|
||||
c1 = time.localtime
|
||||
c1
|
||||
<built-in function localtime>
|
||||
c1 = time.localtime()
|
||||
c1
|
||||
time.struct_time(tm_year=2025, tm_mon=10, tm_mday=22, tm_hour=22, tm_min=38, tm_sec=57, tm_wday=2, tm_yday=295, tm_isdst=0)
|
||||
c2 = time.asctime(c1)
|
||||
c2
|
||||
'Wed Oct 22 22:38:57 2025'
|
||||
t1 = time.ctime()
|
||||
t1
|
||||
'Wed Oct 22 22:44:33 2025'
|
||||
time.sleep(2)
|
||||
t2 = time.mktime(c1)
|
||||
t2
|
||||
1761161937.0
|
||||
```
|
||||
### 7. Графические функции.
|
||||
Произведем создание линейного графика,показывающего зависимость сигналов от времени
|
||||
```
|
||||
import pylab
|
||||
x=list(range(-3,55,4))
|
||||
t=list(range(15))
|
||||
pylab.plot(t,x)
|
||||
[<matplotlib.lines.Line2D object at 0x000001F66C044B90>]
|
||||
pylab.title('Первый график')
|
||||
Text(0.5, 1.0, 'Первый график')
|
||||
pylab.xlabel('время')
|
||||
Text(0.5, 0, 'время')
|
||||
pylab.ylabel('сигнал')
|
||||
Text(0, 0.5, 'сигнал')
|
||||
pylab.show()
|
||||
```
|
||||

|
||||
Создадим два линейных графика на одном фоне.
|
||||
```
|
||||
X1=[12,6,8,10,7]
|
||||
X2=[5,7,9,11,13]
|
||||
pylab.plot(X1)
|
||||
[<matplotlib.lines.Line2D object at 0x000001F66CE951D0>]
|
||||
pylab.plot(X2)
|
||||
[<matplotlib.lines.Line2D object at 0x000001F66CE95310>]
|
||||
pylab.show()
|
||||
```
|
||||

|
||||
Произведем создание круговой диаграммы
|
||||
```
|
||||
region=['Центр','Урал','Сибирь','Юг']
|
||||
naselen=[65,12,23,17]
|
||||
pylab.pie(naselen,labels=region)
|
||||
([<matplotlib.patches.Wedge object at 0x000001F66BB4DA90>, <matplotlib.patches.Wedge object at 0x000001F66C0FDD10>, <matplotlib.patches.Wedge object at 0x000001F66C0FE850>, <matplotlib.patches.Wedge object at 0x000001F66C0FE5D0>], [Text(-0.191013134139045, 1.0832885038559115, 'Центр'), Text(-0.861328292412156, -0.6841882582231001, 'Урал'), Text(0.04429273995539947, -1.0991078896938387, 'Сибирь'), Text(0.9873750693480946, -0.48486129194837324, 'Юг')])
|
||||
pylab.show()
|
||||
```
|
||||

|
||||
|
||||
Cоздадим собственную гистограмму(по оси у приведена частота повторения значений,по оси х сами значения)
|
||||
```
|
||||
a = [1,2,1,3,2,4,5,8,5,5,5,2,2,2,2,2]
|
||||
pylab.hist(a,bins = 6)
|
||||
(array([9., 1., 1., 4., 0., 1.]), array([1. , 2.16666667, 3.33333333, 4.5 , 5.66666667,
|
||||
6.83333333, 8. ]), <BarContainer object of 6 artists>)
|
||||
pylab.title('Гистограмма')
|
||||
Text(0.5, 1.0, 'Гистограмма')
|
||||
pylab.show()
|
||||
```
|
||||

|
||||
|
||||
Создадим собственную столбчатую диаграмму(x - категории, y - значения, относящиеся к конкретной категории)
|
||||
```
|
||||
marks = ['BMW','Audi','Lada','Reno']
|
||||
cost = [20,17,5,10]
|
||||
pylab.bar(marks,cost)
|
||||
<BarContainer object of 4 artists>
|
||||
pylab.title('Stolb')
|
||||
Text(0.5, 1.0, 'Stolb')
|
||||
pylab.show()
|
||||
```
|
||||

|
||||
|
||||
### 8. Модуль statistics
|
||||
Импортировав модуль, изучим ряд функций данного модуля.
|
||||
mean рассчёт среднего
|
||||
median рассчёт медианы
|
||||
mode рассчёт моды
|
||||
stdev рассчёт среднеквадратического отклонения
|
||||
variance рассчёт дисперсии
|
||||
```
|
||||
import statistics
|
||||
dir(statistics)
|
||||
['Counter', 'Decimal', 'Fraction', 'LinearRegression', 'NormalDist', 'StatisticsError', '_SQRT2', '__all__', '__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_coerce', '_convert', '_decimal_sqrt_of_frac', '_exact_ratio', '_fail_neg', '_float_sqrt_of_frac', '_integer_sqrt_of_frac_rto', '_isfinite', '_kernel_invcdfs', '_mean_stdev', '_newton_raphson', '_normal_dist_inv_cdf', '_quartic_invcdf', '_quartic_invcdf_estimate', '_random', '_rank', '_sqrt_bit_width', '_sqrtprod', '_ss', '_sum', '_triweight_invcdf', '_triweight_invcdf_estimate', 'acos', 'asin', 'atan', 'bisect_left', 'bisect_right', 'correlation', 'cos', 'cosh', 'count', 'covariance', 'defaultdict', 'erf', 'exp', 'fabs', 'fmean', 'fsum', 'geometric_mean', 'groupby', 'harmonic_mean', 'hypot', 'isfinite', 'isinf', 'itemgetter', 'kde', 'kde_random', 'linear_regression', 'log', 'math', 'mean', 'median', 'median_grouped', 'median_high', 'median_low', 'mode', 'multimode', 'namedtuple', 'numbers', 'pi', 'pstdev', 'pvariance', 'quantiles', 'random', 'reduce', 'repeat', 'sin', 'sqrt', 'stdev', 'sumprod', 'sys', 'tan', 'tau', 'variance']
|
||||
a = [1,2,3,4,5,6,7,8,9,10,9,8,7,6,5,4,3,2,1]
|
||||
statistics.mean(a)
|
||||
5.2631578947368425
|
||||
statistics.median(a)
|
||||
5
|
||||
b = [1,2,1,1,1,2,3,4,5,6,9]
|
||||
statistics.mode(b)
|
||||
1variance
|
||||
c = statistics.stdev(a)
|
||||
c
|
||||
2.8253240770486627
|
||||
d = [1,2,3,2,1]
|
||||
v = statistics.variance(d)
|
||||
v
|
||||
0.7
|
||||
```
|
||||
@ -0,0 +1,299 @@
|
||||
#Тема 4 <Лазарев Данил Вячеславович>
|
||||
import os
|
||||
os.chdir('C:\\Users\\Dannyan\\OneDrive\\Рабочий стол\\python-labs\\TEMA4\\')
|
||||
help(round)
|
||||
Help on built-in function round in module builtins:
|
||||
|
||||
round(number, ndigits=None)
|
||||
Round a number to a given precision in decimal digits.
|
||||
|
||||
The return value is an integer if ndigits is omitted or None. Otherwise
|
||||
the return value has the same type as the number. ndigits may be negative.
|
||||
|
||||
2.Стандартные функции.
|
||||
2.1
|
||||
round(123.456,1)
|
||||
123.5
|
||||
round(123.456,0)
|
||||
123.0
|
||||
type(round(123.456,0))
|
||||
<class 'float'>
|
||||
type(round(123.456,1))
|
||||
<class 'float'>
|
||||
round(123.456)
|
||||
123
|
||||
type(round(123.456))
|
||||
<class 'int'>
|
||||
2.2
|
||||
gg=range(76,123,9)
|
||||
list(gg)
|
||||
[76, 85, 94, 103, 112, 121]
|
||||
a = range(23)
|
||||
list(a)
|
||||
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]
|
||||
#значения от 0 до 22, шаг 1, границы 0 - 22
|
||||
2.3
|
||||
qq = 'Lazarev'
|
||||
ww = 'Anisenkov'
|
||||
rr = 'Fillipova'
|
||||
ee = 'Jalnin'
|
||||
ff=zip(gg,qq)
|
||||
tuple(ff)
|
||||
((76, 'L'), (85, 'a'), (94, 'z'), (103, 'a'), (112, 'r'), (121, 'e'))
|
||||
ff[1]
|
||||
Traceback (most recent call last):
|
||||
File "<pyshell#24>", line 1, in <module>
|
||||
ff[1]
|
||||
TypeError: 'zip' object is not subscriptable
|
||||
2.4
|
||||
fff=float(input('коэффициент усиления=')); dan=eval('5*fff-156')
|
||||
коэффициент усиления=5
|
||||
dan
|
||||
-131.0
|
||||
2.5
|
||||
exec(input('введите инструкции:'))
|
||||
введите инструкции:perem=-123.456;gg=round(abs(perem)+98,3)
|
||||
gg
|
||||
221.456
|
||||
2.6
|
||||
abs(-36)
|
||||
36
|
||||
pow(2,2)
|
||||
4
|
||||
max([1,2,3,4,33,3,2,1,5,0])
|
||||
33
|
||||
min([1,2,3,4,33,3,2,1,5,0])
|
||||
0
|
||||
sum([1,2,3,4,33,3,2,1,5,0])
|
||||
54
|
||||
divmod(7,3)
|
||||
(2, 1)
|
||||
len([1,2,3,4,33,3,2,1,5,0])
|
||||
10
|
||||
o = [1,2,3,4,33,3,2,1,5,0]
|
||||
def f(x):
|
||||
return x*x*x
|
||||
list(map(f,o))
|
||||
[1, 8, 27, 64, 35937, 27, 8, 1, 125, 0]
|
||||
3. Функции из стандартного модуля math
|
||||
import math
|
||||
dir(math)
|
||||
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'cbrt', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'exp2', 'expm1', 'fabs', 'factorial', 'floor', 'fma', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'isqrt', 'lcm', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'nextafter', 'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'sumprod', 'tan', 'tanh', 'tau', 'trunc', 'ulp']
|
||||
help(math.factorial)
|
||||
Help on built-in function factorial in module math:
|
||||
|
||||
factorial(n, /)
|
||||
Find n!.
|
||||
math.factorial(5)
|
||||
120
|
||||
math.sin(1)
|
||||
0.8414709848078965
|
||||
math.acos(1)
|
||||
0.0
|
||||
math.degrees(36)
|
||||
2062.648062470964
|
||||
math.radians(2062.648062470964)
|
||||
36.00000000000001
|
||||
math.exp(2)
|
||||
7.38905609893065
|
||||
math.log(100)
|
||||
4.605170185988092
|
||||
math.log10(100)
|
||||
2.0
|
||||
math.sqrt(100)
|
||||
10.0
|
||||
math.ceil(58.3)
|
||||
59
|
||||
math.floor(58.3)
|
||||
58
|
||||
math.pi
|
||||
3.141592653589793
|
||||
math.sin(((2*math.pi)/7 + math.exp(0.23)))
|
||||
|
||||
0.8334902641414562
|
||||
4.Функции из модуля cmath
|
||||
import cmath
|
||||
dir(cmath)
|
||||
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'cos', 'cosh', 'e', 'exp', 'inf', 'infj', 'isclose', 'isfinite', 'isinf', 'isnan', 'log', 'log10', 'nan', 'nanj', 'phase', 'pi', 'polar', 'rect', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau']
|
||||
cmath.sqrt(1.2-0.5j)
|
||||
(1.118033988749895-0.22360679774997896j)
|
||||
cmath.phase(1-0.5j)
|
||||
-0.4636476090008061
|
||||
5. Стандартный модуль random
|
||||
import random
|
||||
dir(random)
|
||||
['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', '_ONE', '_Sequence', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_accumulate', '_acos', '_bisect', '_ceil', '_cos', '_e', '_exp', '_fabs', '_floor', '_index', '_inst', '_isfinite', '_lgamma', '_log', '_log2', '_os', '_parse_args', '_pi', '_random', '_repeat', '_sha512', '_sin', '_sqrt', '_test', '_test_generator', '_urandom', 'betavariate', 'binomialvariate', 'choice', 'choices', 'expovariate', 'gammavariate', 'gauss', 'getrandbits', 'getstate', 'lognormvariate', 'main', 'normalvariate', 'paretovariate', 'randbytes', 'randint', 'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle', 'triangular', 'uniform', 'vonmisesvariate', 'weibullvariate']
|
||||
help(random.seed)
|
||||
Help on method seed in module random:
|
||||
|
||||
seed(a=None, version=2) method of random.Random instance
|
||||
Initialize internal state from a seed.
|
||||
|
||||
The only supported seed types are None, int, float,
|
||||
str, bytes, and bytearray.
|
||||
|
||||
None or no argument seeds from current time or from an operating
|
||||
system specific randomness source if available.
|
||||
|
||||
If *a* is an int, all bits are used.
|
||||
|
||||
For version 2 (the default), all of the bits are used if *a* is a str,
|
||||
bytes, or bytearray. For version 1 (provided for reproducing random
|
||||
sequences from older versions of Python), the algorithm for str and
|
||||
bytes generates a narrower range of seeds.
|
||||
random.seed()
|
||||
r = random.random()
|
||||
r
|
||||
0.7602265821504725
|
||||
a = random.uniform(1,3)
|
||||
|
||||
a
|
||||
1.6506391388455899
|
||||
|
||||
b = random.randint(1, 19)
|
||||
|
||||
b
|
||||
8
|
||||
|
||||
c = random.gauss()
|
||||
|
||||
c
|
||||
-2.8896415965159985
|
||||
|
||||
d = random.gauss(1,0)
|
||||
|
||||
d
|
||||
1.0
|
||||
|
||||
d = random.gauss(1,1)
|
||||
|
||||
d
|
||||
0.05266125395944099
|
||||
|
||||
b =[2,3,1,2,3,4,6]
|
||||
|
||||
e = random.choice(b)
|
||||
|
||||
e
|
||||
2
|
||||
|
||||
random.shuffle(b)
|
||||
|
||||
b
|
||||
[3, 2, 2, 6, 3, 1, 4]
|
||||
|
||||
k = random.sample(b,4)
|
||||
|
||||
k
|
||||
[3, 2, 2, 4]
|
||||
|
||||
p = random.betavariate(1,2)
|
||||
|
||||
p
|
||||
0.48596997669197367
|
||||
|
||||
p = random.gammavariate(1,1)
|
||||
|
||||
p
|
||||
1.2802780104125937
|
||||
|
||||
Создадим свой список с заданными распределениями
|
||||
f = [ random.uniform(1,3), random.gauss(1,2), random.betavariate(2,2), random.gammavariate(2,3)]
|
||||
|
||||
f
|
||||
[2.247730869060465, 3.871209301585315, 0.39715861559850196, 3.959028762460888]
|
||||
6. Функции модуля time - работа с календарем и со временем
|
||||
import time
|
||||
dir(time)
|
||||
['_STRUCT_TM_ITEMS', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'altzone', 'asctime', 'ctime', 'daylight', 'get_clock_info', 'gmtime', 'localtime', 'mktime', 'monotonic', 'monotonic_ns', 'perf_counter', 'perf_counter_ns', 'process_time', 'process_time_ns', 'sleep', 'strftime', 'strptime', 'struct_time', 'thread_time', 'thread_time_ns', 'time', 'time_ns', 'timezone', 'tzname']
|
||||
c1=time.time()
|
||||
c1
|
||||
1761161531.581906
|
||||
c2=time.time()-c1
|
||||
c2
|
||||
20.391149044036865
|
||||
dat=time.gmtime()
|
||||
dat
|
||||
time.struct_time(tm_year=2025, tm_mon=10, tm_mday=22, tm_hour=19, tm_min=33, tm_sec=7, tm_wday=2, tm_yday=295, tm_isdst=0)
|
||||
dat.tm_mon
|
||||
10
|
||||
dat.tm_year
|
||||
2025
|
||||
dat.tm_hour
|
||||
19
|
||||
dat.tm_min
|
||||
33
|
||||
c1 = time.localtime
|
||||
c1
|
||||
<built-in function localtime>
|
||||
c1 = time.localtime()
|
||||
c1
|
||||
time.struct_time(tm_year=2025, tm_mon=10, tm_mday=22, tm_hour=22, tm_min=38, tm_sec=57, tm_wday=2, tm_yday=295, tm_isdst=0)
|
||||
c2 = time.asctime(c1)
|
||||
c2
|
||||
'Wed Oct 22 22:38:57 2025'
|
||||
t1 = time.ctime()
|
||||
t1
|
||||
'Wed Oct 22 22:44:33 2025'
|
||||
time.sleep(2)
|
||||
t2 = time.mktime(c1)
|
||||
t2
|
||||
1761161937.0
|
||||
7. Графические функции.
|
||||
import pylab
|
||||
x=list(range(-3,55,4))
|
||||
t=list(range(15))
|
||||
pylab.plot(t,x)
|
||||
[<matplotlib.lines.Line2D object at 0x000001F66C044B90>]
|
||||
pylab.title('Первый график')
|
||||
Text(0.5, 1.0, 'Первый график')
|
||||
pylab.xlabel('время')
|
||||
Text(0.5, 0, 'время')
|
||||
pylab.ylabel('сигнал')
|
||||
Text(0, 0.5, 'сигнал')
|
||||
pylab.show()
|
||||
X1=[12,6,8,10,7]
|
||||
X2=[5,7,9,11,13]
|
||||
pylab.plot(X1)
|
||||
[<matplotlib.lines.Line2D object at 0x000001F66CE951D0>]
|
||||
pylab.plot(X2)
|
||||
[<matplotlib.lines.Line2D object at 0x000001F66CE95310>]
|
||||
pylab.show()
|
||||
region=['Центр','Урал','Сибирь','Юг']
|
||||
naselen=[65,12,23,17]
|
||||
pylab.pie(naselen,labels=region)
|
||||
([<matplotlib.patches.Wedge object at 0x000001F66BB4DA90>, <matplotlib.patches.Wedge object at 0x000001F66C0FDD10>, <matplotlib.patches.Wedge object at 0x000001F66C0FE850>, <matplotlib.patches.Wedge object at 0x000001F66C0FE5D0>], [Text(-0.191013134139045, 1.0832885038559115, 'Центр'), Text(-0.861328292412156, -0.6841882582231001, 'Урал'), Text(0.04429273995539947, -1.0991078896938387, 'Сибирь'), Text(0.9873750693480946, -0.48486129194837324, 'Юг')])
|
||||
pylab.show()
|
||||
a = [1,2,1,3,2,4,5,8,5,5,5,2,2,2,2,2]
|
||||
pylab.hist(a,bins = 6)
|
||||
(array([9., 1., 1., 4., 0., 1.]), array([1. , 2.16666667, 3.33333333, 4.5 , 5.66666667,
|
||||
6.83333333, 8. ]), <BarContainer object of 6 artists>)
|
||||
pylab.title('Гистограмма')
|
||||
Text(0.5, 1.0, 'Гистограмма')
|
||||
pylab.show()
|
||||
marks = ['BMW','Audi','Lada','Reno']
|
||||
cost = [20,17,5,10]
|
||||
pylab.bar(marks,cost)
|
||||
<BarContainer object of 4 artists>
|
||||
pylab.title('Stolb')
|
||||
Text(0.5, 1.0, 'Stolb')
|
||||
pylab.show()
|
||||
8. Модуль statistics.
|
||||
import statistics
|
||||
dir(statistics)
|
||||
['Counter', 'Decimal', 'Fraction', 'LinearRegression', 'NormalDist', 'StatisticsError', '_SQRT2', '__all__', '__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_coerce', '_convert', '_decimal_sqrt_of_frac', '_exact_ratio', '_fail_neg', '_float_sqrt_of_frac', '_integer_sqrt_of_frac_rto', '_isfinite', '_kernel_invcdfs', '_mean_stdev', '_newton_raphson', '_normal_dist_inv_cdf', '_quartic_invcdf', '_quartic_invcdf_estimate', '_random', '_rank', '_sqrt_bit_width', '_sqrtprod', '_ss', '_sum', '_triweight_invcdf', '_triweight_invcdf_estimate', 'acos', 'asin', 'atan', 'bisect_left', 'bisect_right', 'correlation', 'cos', 'cosh', 'count', 'covariance', 'defaultdict', 'erf', 'exp', 'fabs', 'fmean', 'fsum', 'geometric_mean', 'groupby', 'harmonic_mean', 'hypot', 'isfinite', 'isinf', 'itemgetter', 'kde', 'kde_random', 'linear_regression', 'log', 'math', 'mean', 'median', 'median_grouped', 'median_high', 'median_low', 'mode', 'multimode', 'namedtuple', 'numbers', 'pi', 'pstdev', 'pvariance', 'quantiles', 'random', 'reduce', 'repeat', 'sin', 'sqrt', 'stdev', 'sumprod', 'sys', 'tan', 'tau', 'variance']
|
||||
a = [1,2,3,4,5,6,7,8,9,10,9,8,7,6,5,4,3,2,1]
|
||||
statistics.mean(a)
|
||||
5.2631578947368425
|
||||
statistics.median(a)
|
||||
5
|
||||
b = [1,2,1,1,1,2,3,4,5,6,9]
|
||||
statistics.mode(b)
|
||||
1
|
||||
c = statistics.stdev(a)
|
||||
c
|
||||
2.8253240770486627
|
||||
d = [1,2,3,2,1]
|
||||
v =statistics.variance(d)
|
||||
v
|
||||
0.7
|
||||
@ -0,0 +1,51 @@
|
||||
### Общее контрольное задание по теме 4
|
||||
Лазарев Данил, А-01-23
|
||||
|
||||
### Задание
|
||||
Реализовать, записать в текстовый файл и проанализировать результаты последовательности инструкций, выполняющих следующие действия:
|
||||
|
||||
1)Напишите и исполните единое выражение, реализующее последовательное выполнение следующих операций: вычисление фазы комплексного числа 0.2+0.8j, округление результата до двух знаков после запятой, умножение полученного значения на 20, получение кортежа из двух значений: округленное вниз значение от деления результата на 3 и остатка от этого деления.
|
||||
|
||||
2)Создайте объект класса struct_time с временными параметрами для текущего московского времени. Создайте строку с текущим часом и минутами.
|
||||
|
||||
3)Создайте список с элементами – названиями дней недели. Сделайте случайную выборку из этого списка с тремя днями недели.
|
||||
|
||||
4)Напишите инструкцию случайного выбора числа из последовательности целых чисел от 14 до 32 с шагом 3.
|
||||
|
||||
5)Сгенерируйте нормально распределенное число N с математическим ожиданием 15 и стандартным отклонением 4 и округлите его до целого значения. Создайте список с N элементами – случайно выбранными буквами латинского алфавита.
|
||||
|
||||
6)Напишите инструкцию для определения временного интервала в минутах, прошедшего с момента предыдущего (из п.2) определения временных параметров.
|
||||
import cmath, math, random, time
|
||||
|
||||
### Решение
|
||||
```
|
||||
#1
|
||||
res = divmod(math.floor(round(cmath.phase(0.2+0.8j), 2) * 20), 3)
|
||||
print(res)
|
||||
|
||||
#2
|
||||
Msk = time.localtime()
|
||||
print(Msk)
|
||||
|
||||
stroka = Msk.tm_hour , Msk.tm_min
|
||||
print(stroka)
|
||||
|
||||
#3
|
||||
Week = ["Пн","Вт","Ср","Чт","Пт","Сб","Вс"]
|
||||
print(random.sample(Week, 3))
|
||||
|
||||
#4
|
||||
row = [14, 17, 20, 23, 26, 29, 32]
|
||||
hm = random.choice(row)
|
||||
print(hm)
|
||||
|
||||
#5
|
||||
G = round(random.gauss(15, 4))
|
||||
Alph = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
|
||||
Spisok = random.sample(Alph, G)
|
||||
print(Spisok)
|
||||
|
||||
#6
|
||||
minute = time.localtime().tm_min - Msk.tm_min
|
||||
print(minute)
|
||||
```
|
||||
@ -0,0 +1,35 @@
|
||||
import cmath, math, random, time
|
||||
|
||||
# 1.
|
||||
res = divmod(math.floor(round(cmath.phase(0.2+0.8j), 2) * 20), 3)
|
||||
print(res)
|
||||
|
||||
# 2.
|
||||
Msk = time.localtime()
|
||||
print(Msk)
|
||||
|
||||
stroka = Msk.tm_hour , Msk.tm_min
|
||||
print(stroka)
|
||||
|
||||
# 3.
|
||||
Week = ["Пн","Вт","Ср","Чт","Пт","Сб","Вс"]
|
||||
print(random.sample(Week, 3))
|
||||
|
||||
# 4.
|
||||
row = [14, 17, 20, 23, 26, 29, 32]
|
||||
hm = random.choice(row)
|
||||
print(hm)
|
||||
|
||||
# 5.
|
||||
|
||||
G = round(random.gauss(15, 4))
|
||||
|
||||
Alph = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
|
||||
|
||||
Spisok = random.sample(Alph, G)
|
||||
|
||||
print(Spisok)
|
||||
|
||||
# 6.
|
||||
minute = time.localtime().tm_min - Msk.tm_min
|
||||
print(minute)
|
||||
Загрузка…
Ссылка в новой задаче