# Отчет по теме 4
Хатюхин Евгений, А-02-23

## 1 Запуск IDLE
## 2 Изучил стандартные встроенные функции
### 2.1 Изучил функции округления
```py
round(123.456,1)
123.5
a = round(123.456,1)
b = round(123.456, 0)
a
123.5
b
123.0
type(a);type(b)
<class 'float'>
<class 'float'>
round(123.456)
123
c = round(123.456)
type(c)
<class 'int'>
```
### 2.2 Изучил функцию создания последовательности
```py
gg=range(76,123,9)
gg
range(76, 123, 9)
list(gg)
[76, 85, 94, 103, 112, 121]
range(23)
range(0, 23)
list(range(23))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]
```
## 2.3 Изучил функцию zip
```py
qq = ['Khatiukhin','Shabatov','Efremov','Turovec']
qq
['Khatiukhin', 'Shabatov', 'Efremov', 'Turovec']
ff = zip(gg,qq)
ff
<zip object at 0x000001D9754CB040>
tuple(ff)
((76, 'Khatiukhin'), (85, 'Shabatov'), (94, 'Efremov'), (103, 'Turovec')) #В итоге получилась последовательность из 4 элементов, так как в qq 4 элемента, а в gg 6. Длина равна длине самого короткого списка.
ff[1]
Traceback (most recent call last):
  File "<pyshell#25>", line 1, in <module>
    ff[1]
TypeError: 'zip' object is not subscriptable
```
## 2.4 Изучил функцию eval
```py
fff=float(input('коэффициент усиления=')); dan=eval('5*fff-156')
коэффициент усиления=40
dan
44.0
```
## 2.5 Изучил функцию exec
```py
exec(input('введите инструкции:'))
введите инструкции:perem=-123.456;gg=round(abs(perem)+98,3)
gg
221.456
```
## 2.6 Изучил ряд полезных функций (abs, pow, max, min, sum, divmod, len, map)
- abs - выдает значение по модулю; 
- len - выдает длину объекта; 
- max - выдает максимальное число из списка введенных в аргумент; 
- min - выдает минимальное число из списка введенных в аргумент; 
- pow - при двух аргументах: возводит первый в степень второго, при наличие третьего аргумента делит получившийся результат на третий аргумент и показывает остаток; 
- sum - суммирует числа; 
- divmod - возвращает кортеж (a // b, a % b), где а и b соответственно первый и второй аргумент; 
- map - применяет функцию из первого аргумента к каждому элементу итерируемого объекта, который указан во втором аргументе.
```py
abs(-2)
2
len('jhb')
3
max(1,2)
2
min(1,2)
1
pow(2,3
    )
8
pow(2,3,4)
0
pow(2,3,3)
2
sum([1,2])
3
divmod(10,4)
(2, 2)
list(map(lambda x: x**2, [1,2,3,4,5]))
[1, 4, 9, 16, 25]
```
## 3 Изучил функции из модуля math для работы с математическими выражениями и операциями.
- sin - считает и выдает синус аргумента в радианах; 
- acos - считает и выдает арккосинус аргумента в радианах; 
- degrees - переводит число в радианах в градусы; 
- radians - переводит число в градусах в радианы; 
- exp - выдает значение числа e возведенного в степень, которая указана в аргументе; 
- log - считает натуральный логарифм числа; 
- log10 - считает деcятичный логарифм числа; 
- sqrt - считает корень из числа в аргументе; 
- ceil - округляет число вверх; 
- floor - округляет число вниз; 
- pi - данная функция является представлением числа пи в питоне.
```py
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!.

    Raise a ValueError if x is negative or non-integral.

math.factorial(5)
120
math.sin(0.5)
0.479425538604203
math.acos(0.5)
1.0471975511965979
math.degrees(0.55)
31.51267873219528
math.radians(30)
0.5235987755982988
math.exp(1)
2.718281828459045
math.log(10)
2.302585092994046
math.log10(10)
1.0
math.sqrt(25)
5.0
math.ceil(4.3)
5
math.floor(4.8)
4
math.pi
3.141592653589793
math.sin((2*math.pi)/7+math.exp(0.23))
0.8334902641414562
```
## 4 Изучил модуль cmath для работы с комплексными числами
```py
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 Изучил стандартный модуль randon для работы с псевдослучайными числами
- random - равномерно распределенное случайное число;  
- uniform- равномерно распределенное случайное число в диапазоне, заданном двумя аргументами;  
- randint - случайные целые числа в диапазоне от значения первого аргумента до значения второго; 
- gauss - нормально распределенное случайное число с средним равным первому аргументу и стандартным отклонением равным второму аргументу; 
- choice - случайный выбор из совокупности указанной в аргументе; 
- shuffle - случайная перестановка элементов списка в аргументе; 
- sample - случайный выбор подмножества элементов из списка в первом аргументе (количество элементов равно числу, указанному во втором аргументе); 
- betavariate - случайное число с бета-распределением, где альфа равна первому аргументу, а бета равна второму аргументу; 
- gammavariate - случайное число с гамма-распределением, где альфа равна первому аргументу, а бета равна второму аргументу.
```py
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
<bound method Random.seed of <random.Random object at 0x000001D9756DE570>>
random.seed()
r = random.random()
r
0.6274277749743772
u = random.uniform(1, 10)
u
8.795217202035065
rnd = random.randint(1, 10)
rnd
4
g = random.gauss(0,5)
g
-10.142595842458078
g = random.gauss(0,1)
g
-1.2762551362834256
ls = ['a','b','c','d']
ch = random.choice(ls)
ch
'a'
random.shuffle(ls)
ls
['d', 'c', 'a', 'b']
s = random.sample(ls,3)
s
['c', 'b', 'd']
b = random.betavariate(2, 5)
b
0.2662037969664268
g = random.gammavariate(2,2)
g
4.673121545436751
rnd_ls = [random.uniform(1, 10), random.gauss(5, 2), random.betavariate(2, 5),  random.gammavariate(2, 2)]
rnd_ls
[4.085707425290092, 5.648252018761857, 0.05544308773047868, 5.588311173368095]
```
## 6 Изучил модуль time для работы со временем и календарями
- time - возвращает время в секундах, прошедшее с начала эпохи, за которое обычно принимается 1.01.1970г; 
- gmtime - возвращает объект класса struct_time, содержащий полную информацию о текущем времени (UTC): год (tm_year), месяц (tm_mon), день tm_mday); 
- localtime - для получения «местного» времени (которое стоит на компьютере); 
- asctime - преобразовывает представление времени из кортежа в строку (просто отображает время в формате строки); 
- ctime - преобразовывает время в секундах, прошедшего с начала эпохи, в строку; 
- sleep - прерывает работу программы на заданное время в секундах; 
- mktime - преобразовывает время из типа кортежа или struct_time в число секунд с начала эпохи.
```py
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
1760259525.185354
c2=time.time()-c1
c2
12.37006688117981
dat=time.gmtime()
dat
time.struct_time(tm_year=2025, tm_mon=10, tm_mday=12, tm_hour=8, tm_min=59, tm_sec=20, tm_wday=6, tm_yday=285, tm_isdst=0)
dat.tm_mon
10
dat.tm_year
2025
dat.tm_min
59
tm = time.localtime()
tm
time.struct_time(tm_year=2025, tm_mon=10, tm_mday=12, tm_hour=12, tm_min=20, tm_sec=40, tm_wday=6, tm_yday=285, tm_isdst=0)
time.asctime()
'Sun Oct 12 12:21:46 2025'
time.ctime()
'Sun Oct 12 12:21:56 2025'
time.sleep(5)
ti
time.mktime(tm)
1760260840.0
time.localtime(c1)
time.struct_time(tm_year=2025, tm_mon=10, tm_mday=12, tm_hour=11, tm_min=58, tm_sec=45, tm_wday=6, tm_yday=285, tm_isdst=0)
```
## 7 Изучил графические функции
```py
import pylab
x=list(range(-3,55,4))
x
[-3, 1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53]
t=list(range(15))
t
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
pylab.plot(t,x)  #Создание графика в оперативной памяти
[<matplotlib.lines.Line2D object at 0x000002CD3BC6EC10>]
pylab.title('Первый график')
Text(0.5, 1.0, 'Первый график')
pylab.xlabel('время')
Text(0.5, 0, 'время')
pylab.ylabel('сигнал')
Text(0, 0.5, 'сигнал')
pylab.show() #Отображение графика на экране
```
![[Pasted image 20251012124853.png]]
```py
X1=[12,6,8,10,7];X2=[5,7,9,11,13]
X1
[12, 6, 8, 10, 7]
X2
[5, 7, 9, 11, 13]
pylab.plot(X1)
[<matplotlib.lines.Line2D object at 0x000002CD3CD6F4D0>]
pylab.plot(X2)
[<matplotlib.lines.Line2D object at 0x000002CD3CD6F610>]
pylab.show()
```
![[Figure_1.png]]
```py
region=['Центр','Урал','Сибирь','Юг']  #Метки для диаграммы
naselen=[65,12,23,17]  # Значения для диаграммы
pylab.pie(naselen,labels=region) #Создание диаграммы в памяти
([<matplotlib.patches.Wedge object at 0x000002CD3BD38050>, <matplotlib.patches.Wedge object at 0x000002CD3CE14F50>, <matplotlib.patches.Wedge object at 0x000002CD3CE15310>, <matplotlib.patches.Wedge object at 0x000002CD3CE15590>], [Text(-0.191013134139045, 1.0832885038559115, 'Центр'), Text(-0.861328292412156, -0.6841882582231001, 'Урал'), Text(0.04429273995539947, -1.0991078896938387, 'Сибирь'), Text(0.9873750693480946, -0.48486129194837324, 'Юг')])
pylab.show()  #Отображение диаграммы
```
![[Ris2.png]]
```py
ls = [1, 5, 2, 3, 3, 3, 2, 4, 4, 3]
pylab.hist(ls, bins=5)
(array([1., 2., 4., 2., 1.]), array([1. , 1.8, 2.6, 3.4, 4.2, 5. ]), <BarContainer object of 5 artists>)
pylab.title('Гистограмма')
Text(0.5, 1.0, 'Гистограмма')
pylab.show()
```
![[Figure_2.png]]
```py
a = ['One', 'Two', 'Three']
b = [20, 50, 25]
pylab.bar(a, b)
<BarContainer object of 3 artists>
pylab.title("Столбиковая диаграмма")
Text(0.5, 1.0, 'Столбиковая диаграмма')
pylab.show()
```
![[Figure_3.png]]
## 8 Изучил модуль statistics для работы в сфере статистики
```py
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']
mean = statistics.mean(ls)
mean
3
med = statistics.median(ls)
med
3.0
mode = statistics.mode(ls)
mode
3
```
## 9 Завершил работу в IDLE
