форкнуто от 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. Завершили сеанс работы
|
|
|
|
|