Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

305 строки
15 KiB
Markdown

# Отчет по теме 4
Ефимова Людмила, А-03-23
## 1. Запустила оболочку IDLE создала рабочий протокол
## 2. Стандартные функции.
### 2.1. Функция округления числа с заданной точностью round().
```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.
round(123.456,1)
123.5
round(123.456,0)
123.0
type(round(123.456,1)
<class 'float'>
type(round(123.456,0))
<class 'float'>
round(123.456)
123
type(round(123.456))
<class 'int'>
```
### 2.2. Функция создания последовательности целых чисел с заданным шагом range().
```py
gg=range(76,123,9)
gg
range(76, 123, 9)
list(gg)
[76, 85, 94, 103, 112, 121]
range(23)
range(0, 23) # создает последовательность целых чисел от 0 до 22 с шагом 1
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]
type(gg)
<class 'range'>
```
### 2.3. Функция создания общего объекта, элементами которого являются кортежи zip().
```py
qq = ["Ефимова", "Девятова", "Беженарь", "Антонов"]
ff=zip(gg,qq)
ff # итерируемый объект просто так нельзя увидеть
<zip object at 0x000001F7810C4340>
tuple(ff)
((76, 'Ефимова'), (85, 'Девятова'), (94, 'Беженарь'), (103, 'Антонов'))
ff[1] # нельзя обращаться с помощью индекса
Traceback (most recent call last):
File "<pyshell#12>", line 1, in <module>
ff[1]
TypeError: 'zip' object is not subscriptable
```
Длина результирующего объекта равна длине самого короткого объекта из переданных функции.
### 2.4. Функция вычисляющая значения выражения, корректно записанного на языке Python и представленного в виде символьной строки eval()
```py
fff=float(input('коэффициент усиления=')); dan=eval('5*fff-156')
коэффициент усиления=3
dan
-141.0
```
### 2.5. Похожая на eval() функция exec().
Xтение и выполнение объекта-аргумента функции.
Этот объект должен представлять собой строку символов с совокупностью инструкций на языке 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(-100) # Получение модуля числа
100
pow(2, 5) # Возведение чисда в степень
32
max(1, 2, 3, 10) # Получение максимального числа из переданной последовательности
10
min(1, 2, 3, 10) # Получение минимального числа из переданной последовательности
1
sum([1, 2, 3, 10]) # Суммирование элементов переданной последовательности
16
divmod(11, 4) # Получение кортежа с двумя элементами: результатами целочисленного деления и деления с остатком
(2, 3)
len([1, 2, 3, 10])
4
def cube(x):
return x ** 2
map(cube, [1, 2, 3, 10]) # Применение заданной функции ко всем элементам переданной последовательности
<map object at 0x000001F783989F60>
list(map(cube, [1, 2, 3, 10]))
[1, 4, 9, 100]
```
## 3. Функции из стандартного модуля math
```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.sin(math.pi / 6) # Расчет синуса числа
0.49999999999999994
math.acos(0.5) * 180 / math.pi # Расчет арккосинуса числа
60.00000000000001
math.degrees(math.pi / 6) # Перевод угла в радианах в градусы
29.999999999999996
math.radians(60) # Перевод угла в градусах в радианы
1.0471975511965976
math.exp(2) # Возведение числа Эйлера в определенную степень
7.38905609893065
math.log(8, 2) # Вычисление логарифма с определенным основанием
3.0
math.log10(100) # Вычисление десятичного логарифма
2.0
math.sqrt(64) # Вычисление квадратного корня
8.0
math.ceil(4.25) # Округление в большую сторону
5
math.floor(4.25) # Округление в меньшую сторону
4
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. Изучение стандартного модуля random.
```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.3956737606722922
random.uniform(1, 2) # Равномерно распределенное случайное число
1.2506275428676115
random.randint(5, 6) # Случайное целое число
5
random.gauss(5, 0.2) # Нормально распределенное случайное число
4.575306564580744
random.choice(["Apple", "Orange", "Pear"]) # Случайный выбор элемента из совокупности
'Orange'
fruits = ["Apple", "Orange", "Pear"]
random.shuffle(fruits) # Перемешивание элементов списка
fruits
['Orange', 'Apple', 'Pear']
random.sample(fruits, 2) # Получение выборки заданной размерности из совокупности
['Apple', 'Orange']
random.betavariate(1, 2) # Случайное число с бета-распределением
0.19723446300643666
random.gammavariate(1, 2) # Случайное число с гамма-распределением
0.004344283624993138
```
Cписок с 4 случайными значениями подчиняющимися равномерному, нормальному, бета и гамма – распределениям.
```py
[random.uniform(1, 5), random.gauss(2, 1), random.betavariate(1, 2), random.gammavariate(1, 2)]
[1.937226676440678, 1.2213894819097244, 0.9228424699324803, 0.8536430488572739]
```
## 6. Изучение функций из модуля 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() # Время в секундах, прошедшее с начала эпохи 1.1.1970
c1
1761258327.4259675
c2=time.time()-c1 # Получение времени со ввода предыдущей команды
c2
19.33849573135376
dat=time.gmtime() # Получение полной информации о текущем времени
dat
time.struct_time(tm_year=2025, tm_mon=10, tm_mday=23, tm_hour=22, tm_min=26, tm_sec=24, tm_wday=3, tm_yday=296, tm_isdst=0)
dat.tm_mon # Получение текущего месяца
10
dat.tm_hour # Получение текущего часа
22
datLocal = time.localtime() # Получение полной информации о текущем "местном" времени
datLocal
time.struct_time(tm_year=2025, tm_mon=10, tm_mday=24, tm_hour=1, tm_min=28, tm_sec=16, tm_wday=4, tm_yday=297, tm_isdst=0)
time.asctime(datLocal) # Преобразование представления времени из кортежа в строку
'Fri Oct 23 01:28:16 2025'
time.ctime(c1) # Преобразование времени в секундах, прошедшего с начала эпохи, в строку
'Fri Oct 23 01:25:27 2025'
time.sleep(10) # Прерывание работы программы на заданное количество секунд
time.mktime(datLocal) # Преобразование времени из кортежа или структуры в число секунд с начала эпохи
1761258496.0
```
## 7. Графические функции.
```py
import pylab
x=list(range(-3,55,4))
t=list(range(15))
pylab.plot(t,x) #Создание графика в оперативной памяти
pylab.title('Первый график')
pylab.xlabel('время')
pylab.ylabel('сигнал')
pylab.show() #Отображение графика на экране
```
![Скриншот графика](Ris1.png)
На одном рисунке можно изображать несколько графиков
```py
X1=[12,6,8,10,7]
X2=[5,7,9,11,13]
pylab.plot(X1)
pylab.plot(X2)
pylab.show()
```
![Скриншот графика](Ris2.png)
Построение круговой диаграммы
```py
region=['Центр','Урал','Сибирь','Юг'] #Метки для диаграммы
naselen=[65,12,23,17] # Значения для диаграммы
pylab.pie(naselen,labels=region) #Создание диаграммы в памяти
pylab.show() #Отображение диаграммы
```
![Скриншот графика](Ris3.png)
Построение гистограммы
```py
pylab.hist([1, 2, 3, 1, 1, 2, 2, 2, 2, 4, 4], bins = 4)
pylab.show()
```
![Скриншот графика](Ris4.png)
```py
pylab.bar(region, naselen)
pylab.show()
```
![Скриншот графика](Ris5.jpg)
## 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']
statistics.mean([1, 2, 3, 4, 5, 6, 7, 8, 9]) # Вычисление среднего
5
statistics.stdev([1, 2, 3, 4, 5, 6, 7, 8, 9]) # Вычисление среднеквадратичного отклонения
2.7386127875258306
statistics.median([1, 2, 3, 4, 5, 6, 7, 8]) # Вычисление медианы
4.5
```
## 9. Завершила работу со средой