форкнуто от main/python-labs
				
			
			Вы не можете выбрать более 25 тем
			Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
		
		
		
		
		
			
		
			
				
	
	
		
			369 строки
		
	
	
		
			18 KiB
		
	
	
	
		
			Markdown
		
	
			
		
		
	
	
			369 строки
		
	
	
		
			18 KiB
		
	
	
	
		
			Markdown
		
	
# Отчет по теме 4
 | 
						|
 | 
						|
Криви Анастасия, А-02-23
 | 
						|
 | 
						|
## 1 Запуск IDLE 
 | 
						|
Встроенные функции – это готовые к использованию функции, реализующие различные полезные операции, необходимость в которых часто возникает при решении прикладных задач. Часть из них имеется в виде стандартных функций – то есть они не требуют дополнительных усилий (готовы к употреблению сразу после запуска среды Python и относятся к классу 'builtin_function_or_method').
 | 
						|
 | 
						|
## 2 Стандартные функции
 | 
						|
```py
 | 
						|
import builtins
 | 
						|
dir(builtins)
 | 
						|
['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BaseExceptionGroup', 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning', 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError', 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EncodingWarning', 'EnvironmentError', 'Exception', 'ExceptionGroup', 'False', 'FileExistsError', 'FileNotFoundError', 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning', 'IndentationError', 'IndexError', 'InterruptedError', 'IsADirectoryError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'ModuleNotFoundError', 'NameError', 'None', 'NotADirectoryError', 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning', 'PermissionError', 'ProcessLookupError', 'PythonFinalizationError', 'RecursionError', 'ReferenceError', 'ResourceWarning', 'RuntimeError', 'RuntimeWarning', 'StopAsyncIteration', 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'TimeoutError', 'True', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning', 'ValueError', 'Warning', 'WindowsError', 'ZeroDivisionError', '_', '_IncompleteInputError', '__build_class__', '__debug__', '__doc__', '__import__', '__loader__', '__name__', '__package__', '__spec__', 'abs', 'aiter', 'all', 'anext', 'any', 'ascii', 'bin', 'bool', 'breakpoint', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'exec', 'exit', 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'quit', 'range', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars', 'zip']
 | 
						|
```
 | 
						|
## 2.1 Функция round
 | 
						|
Округление числа с заданной точностью. Cправка по назначению этой функции:
 | 
						|
```py
 | 
						|
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.
 | 
						|
```
 | 
						|
Использование функции на примерах
 | 
						|
```py
 | 
						|
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
 | 
						|
```py
 | 
						|
gg=range(76,123,9)
 | 
						|
gg
 | 
						|
range(76, 123, 9) #«итерируемый объект» класса range. Чтобы увидеть получившуюся последовательность чисел, его надо преобразовать, например, в список, обычным способом
 | 
						|
list(gg)
 | 
						|
[76, 85, 94, 103, 112, 121]
 | 
						|
```
 | 
						|
где 76 - левая граница, 123 - правая граница, а 9 - шаг
 | 
						|
```py
 | 
						|
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]
 | 
						|
```
 | 
						|
по умолчанию отсчет от нуля с шагом 1 жо заданного 23(не включительно!)
 | 
						|
 | 
						|
## 2.3 Функция zip
 | 
						|
Создание общего объекта, элементами которого являются кортежи, составленные из  элементов двух или более объектов-последовательностей 
 | 
						|
(zip – застежка-«молния»)
 | 
						|
 | 
						|
Длина результирующего объекта равна длине самого короткого объекта из двух аргументов функции!
 | 
						|
```py
 | 
						|
qq = ['Криви','Заленкина', 'Капитонов', 'Киреев']; type(qq)
 | 
						|
<class 'list'>
 | 
						|
ff=zip(gg,qq)
 | 
						|
ff
 | 
						|
<zip object at 0x00000151590F1740>
 | 
						|
tuple(ff)
 | 
						|
((76, 'Криви'), (85, 'Заленкина'), (94, 'Капитонов'), (103, 'Киреев'))
 | 
						|
ff[1] # нельзя обратиться по индексу
 | 
						|
    Traceback (most recent call last):
 | 
						|
      File "<pyshell#5>", line 1, in <module>
 | 
						|
        ff[1]
 | 
						|
    TypeError: 'zip' object is not subscriptable
 | 
						|
```
 | 
						|
## 2.4 Функция eval 
 | 
						|
Вычисление значения выражения, корректно записанного на языке Python и представленного в виде символьной строки
 | 
						|
```py
 | 
						|
fff=float(input('коэффициент усиления=')); dan=eval('5*fff-156')
 | 
						|
коэффициент усиления=1
 | 
						|
dan
 | 
						|
-151.0
 | 
						|
type(dan)
 | 
						|
<class 'float'>
 | 
						|
```
 | 
						|
## 2.5 Функция exec
 | 
						|
Чтение и выполнение объекта-аргумента функции. Этот объект должен представлять собой строку символов  с совокупностью инструкций на языке Python
 | 
						|
 | 
						|
```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
 | 
						|
```py
 | 
						|
abs(-10) # Модуль числа
 | 
						|
10
 | 
						|
pow(2, 2) # Возведение числа в степень
 | 
						|
4
 | 
						|
max(1426, 54312, 335, 140)
 | 
						|
54312
 | 
						|
min(0, 346, 3531, 1450)
 | 
						|
0
 | 
						|
sum([1, 12, 0, 6])
 | 
						|
19
 | 
						|
divmod(10,2) # Кортеж с двумя элементами: результатами целочисленного деления и остатком
 | 
						|
(5, 0) 
 | 
						|
len([261, 25426, 23])
 | 
						|
3
 | 
						|
list(map(abs,[-12038, -231974]))
 | 
						|
[12038, 231974]
 | 
						|
```
 | 
						|
## 3 Функции из стандартного модуля math.
 | 
						|
Cовокупность разнообразных математических функций
 | 
						|
```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!.
 | 
						|
math.factorial(5)
 | 
						|
120
 | 
						|
math.log10(1)
 | 
						|
0.0
 | 
						|
math.acos(1)
 | 
						|
0.0
 | 
						|
math.degrees(100) #из радиан в градусы
 | 
						|
5729.5779513082325
 | 
						|
math.radians(1029) #из градусов в радианы
 | 
						|
17.959438003021653
 | 
						|
math.log(0.321846)
 | 
						|
-1.1336821087105013
 | 
						|
math.sqrt(90)
 | 
						|
9.486832980505138
 | 
						|
math.ceil(10.1) #округление вверх
 | 
						|
11
 | 
						|
math.floor(10.9) #округление вниз
 | 
						|
10
 | 
						|
```
 | 
						|
Вычисление значения функции:
 | 
						|

 | 
						|
```py
 | 
						|
math.sin((2*math.pi)/7 + math.exp(0.23))
 | 
						|
0.8334902641414562
 | 
						|
```
 | 
						|
## 4 Функции из модуля cmath
 | 
						|
Cовокупность функций для работы с комплексными числами.
 | 
						|
 | 
						|
```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 Стандартный модуль random
 | 
						|
Cовокупность функций для выполнения операций с псевдослу-чайными числами и выборками
 | 
						|
 | 
						|
```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() #функция, задающая случайное начальное состояние для псевдослучайных чисел
 | 
						|
random.random() #равномерно распределенное случайное число
 | 
						|
0.07336031762583761
 | 
						|
random.uniform(1,2) #равномерно распределенное случайное число
 | 
						|
1.137488979303296
 | 
						|
random.randint(1,10) #случайное целое число
 | 
						|
9
 | 
						|
random.gauss() #нормально распределенное случайное число
 | 
						|
0.014238556699878042
 | 
						|
help(random.choice)
 | 
						|
Help on method choice in module random:
 | 
						|
 | 
						|
choice(seq) method of random.Random instance
 | 
						|
    Choose a random element from a non-empty sequence.
 | 
						|
 | 
						|
random.choice([10,104,2,23]) #случайный выбор элемента из совокупности
 | 
						|
10
 | 
						|
s = ['12','212','kjd','134nh']
 | 
						|
random.shuffle(s) #перемешивание элементов списка
 | 
						|
s
 | 
						|
['kjd', '212', '12', '134nh'] 
 | 
						|
random.sample(s,2) #получение выборки заданной размерности из совокупности
 | 
						|
['134nh', '12']
 | 
						|
random.betavariate(1, 232) #cлучайное число с бета-распределением
 | 
						|
0.003122288899067793
 | 
						|
random.gammavariate(1, 21)  #cлучайное число с гамма-распределением
 | 
						|
30.78691787356758
 | 
						|
```
 | 
						|
Создание списка с 4 случайными значениями, подчиняющимися равномерному, нормальному, бета и гамма - рапределениям соответственно
 | 
						|
 | 
						|
```py
 | 
						|
s=[random.random(), random.gauss(), random.betavariate(1,10), random.gammavariate(1,10)]; s
 | 
						|
[0.10166127692065208, -0.9624978096753845, 0.00956693409670233, 3.1161536544662676]
 | 
						|
```
 | 
						|
## 6 Функции из модуля time
 | 
						|
Работа с календарем и со временем
 | 
						|
 | 
						|
```py
 | 
						|
c1=time.time() #время в секундах, прошедшее с начала эпохи, за которое обычно принимается 1.01.1970г
 | 
						|
c1
 | 
						|
1760880089.5032163
 | 
						|
c2=time.time()-c1 #временной интервал в секундах, со времени ввода предыдущей инструкции
 | 
						|
c2
 | 
						|
15.655876636505127
 | 
						|
```
 | 
						|
с помощью этой функции можно измерять временные промежутки в секундах
 | 
						|
 | 
						|
Функция, возвращающая объект класса struct_time, содержащий полную информацию о текущем времени: год (tm_year), месяц (tm_mon), день (tm_mday).
 | 
						|
```py
 | 
						|
dat=time.gmtime()
 | 
						|
dat
 | 
						|
time.struct_time(tm_year=2025, tm_mon=10, tm_mday=19, tm_hour=14, tm_min=9, tm_sec=24, tm_wday=6, tm_yday=292, tm_isdst=0) #Эта функция возвращает, так называемое, «Всемирное координированное время» (UTC). Москов-ское время MSK опережает UTC на 3 часа
 | 
						|
 | 
						|
dat.tm_mon
 | 
						|
10
 | 
						|
dat.tm_hour
 | 
						|
14
 | 
						|
dat.tm_year
 | 
						|
2025
 | 
						|
 | 
						|
dat=time.localtime(); dat  #получение «местного» времени
 | 
						|
time.struct_time(tm_year=2025, tm_mon=10, tm_mday=19, tm_hour=17, tm_min=13, tm_sec=35, tm_wday=6, tm_yday=292, tm_isdst=0)
 | 
						|
 | 
						|
l=time.localtime()
 | 
						|
time.asctime(l)
 | 
						|
'Sun Oct 19 17:20:49 2025' #преобразование представления времени из кортежа в строку
 | 
						|
time.ctime() #преобразование времени в секундах, прошедшего с начала эпохи, в строку
 | 
						|
'Sun Oct 19 17:15:49 2025'
 | 
						|
t=time.asctime();type(t)
 | 
						|
<class 'str'>
 | 
						|
t1=time.ctime(); type(t1)
 | 
						|
<class 'str'>
 | 
						|
time.sleep(3) #прерывание работы программы на заданное время
 | 
						|
time.mktime(l) #из кортежа в секунды с начала эпохи
 | 
						|
1760883649.0
 | 
						|
time.localtime(c1) #обратное преобразование из секунд в местное время осуществляется той же функцией
 | 
						|
time.struct_time(tm_year=2025, tm_mon=10, tm_mday=19, tm_hour=16, tm_min=21, tm_sec=29, tm_wday=6, tm_yday=292, tm_isdst=0)
 | 
						|
```
 | 
						|
## 7 Графические функции
 | 
						|
 | 
						|
В развернутой версии Python должны быть установлены модули пакета matplotlib, в состав которого входит модуль pylab, содержащий ряд полезных вычислительных функций и графических возможностей.
 | 
						|
Импорт модуля инструкции
 | 
						|
 | 
						|
```py
 | 
						|
import matplotlib
 | 
						|
import pylab
 | 
						|
 | 
						|
x=list(range(-3,55,4))
 | 
						|
t=list(range(15))
 | 
						|
 | 
						|
pylab.plot(t,x)
 | 
						|
[<matplotlib.lines.Line2D object at 0x000001BC059DA5D0>]
 | 
						|
 | 
						|
pylab.title('Первый график')
 | 
						|
Text(0.5, 1.0, 'Первый график')
 | 
						|
pylab.xlabel('время')
 | 
						|
Text(0.5, 0, 'время')
 | 
						|
pylab.ylabel('сигнал')
 | 
						|
Text(0, 0.5, 'сигнал')
 | 
						|
pylab.show()
 | 
						|
```
 | 
						|
 | 
						|

 | 
						|
 | 
						|
```py
 | 
						|
X1=[12,6,8,10,7]; X2=[5,7,9,11,13]
 | 
						|
pylab.plot(X1)
 | 
						|
[<matplotlib.lines.Line2D object at 0x000001BC05A8D590>]
 | 
						|
pylab.plot(X2)
 | 
						|
[<matplotlib.lines.Line2D object at 0x000001BC05A8D6D0>]
 | 
						|
pylab.show()
 | 
						|
```
 | 
						|
 | 
						|

 | 
						|
 | 
						|
```py
 | 
						|
# Круговая диаграмма:
 | 
						|
 | 
						|
region=['Центр','Урал','Сибирь','Юг']
 | 
						|
naselen=[65,12,23,17]
 | 
						|
pylab.pie(naselen,labels=region)
 | 
						|
([<matplotlib.patches.Wedge object at 0x00000158DBCC8820>, <matplotlib.patches.Wedge object at 0x00000158DBCC8760>, <matplotlib.patches.Wedge object at 0x00000158DBCC8FD0>, <matplotlib.patches.Wedge object at 0x00000158DBCDE490>], [Text(-0.1910130855889933, 1.083288512416601, 'Центр'), Text(-0.8613283319035216, -0.6841882085072037, 'Урал'), Text(0.04429273729355889, -1.0991078898011077, 'Сибирь'), Text(0.9873752043868569, -0.4848610169543564, 'Юг')])
 | 
						|
pylab.show()
 | 
						|
```
 | 
						|
 | 
						|

 | 
						|
 | 
						|
```py
 | 
						|
 | 
						|
c1 = [10,1,1000,843,2837, 34,34,65]; c2 = [10,51046,54,46,1, 1535, 7, 12435]
 | 
						|
plt.bar(c1, c2)
 | 
						|
<BarContainer object of 8 artists>
 | 
						|
pylab.show()
 | 
						|
```
 | 
						|
 | 
						|

 | 
						|
 | 
						|
```py
 | 
						|
x1 = ['f', 'c', 'y']
 | 
						|
x2 = [12, 4, 24]
 | 
						|
plt.bar(x1, x2)
 | 
						|
<BarContainer object of 3 artists>
 | 
						|
pylab.show()
 | 
						|
```
 | 
						|

 | 
						|
 | 
						|
 | 
						|
## 8. Статистический модуль statistics
 | 
						|
 | 
						|
```py
 | 
						|
dir(s)
 | 
						|
['Counter', 'Decimal', 'Fraction', 'NormalDist', 'StatisticsError', '__all__',
 | 
						|
 '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__',
 | 
						|
 '__package__', '__spec__', '_coerce', '_convert', '_exact_ratio', '_fail_neg',
 | 
						|
 '_find_lteq', '_find_rteq', '_isfinite', '_normal_dist_inv_cdf', '_ss', '_sum',
 | 
						|
 'bisect_left', 'bisect_right', 'erf', 'exp', 'fabs', 'fmean', 'fsum', 'geometric_mean',
 | 
						|
 'groupby', 'harmonic_mean', 'hypot', 'itemgetter', 'log', 'math', 'mean', 'median',
 | 
						|
 'median_grouped', 'median_high', 'median_low', 'mode', 'multimode', 'numbers', 'pstdev',
 | 
						|
 'pvariance', 'quantiles', 'random', 'sqrt', 'stdev', 'tau', 'variance']
 | 
						|
 | 
						|
data = [10, 20, 30, 40, 50]
 | 
						|
s.mean(data)
 | 
						|
30
 | 
						|
 | 
						|
s.median(data)
 | 
						|
30
 | 
						|
s.stdev(data)
 | 
						|
15.811388300841896
 | 
						|
 | 
						|
s.variance(data)
 | 
						|
250
 | 
						|
 | 
						|
data = [10, 56, 73, 7, 20, 30, 40, 50, 56, 77, 3]
 | 
						|
s.quantiles(data)
 | 
						|
[10.0, 40.0, 56.0]
 | 
						|
```
 | 
						|
 | 
						|
## 9. Завершили сеанс работы
 | 
						|
 | 
						|
 |