diff --git a/TEMA4/Ris1.png b/TEMA4/Ris1.png new file mode 100644 index 0000000..dab8c85 Binary files /dev/null and b/TEMA4/Ris1.png differ diff --git a/TEMA4/Ris2.png b/TEMA4/Ris2.png new file mode 100644 index 0000000..410485f Binary files /dev/null and b/TEMA4/Ris2.png differ diff --git a/TEMA4/Ris3.png b/TEMA4/Ris3.png new file mode 100644 index 0000000..c672a4a Binary files /dev/null and b/TEMA4/Ris3.png differ diff --git a/TEMA4/Ris4.png b/TEMA4/Ris4.png new file mode 100644 index 0000000..03e4597 Binary files /dev/null and b/TEMA4/Ris4.png differ diff --git a/TEMA4/report4.md b/TEMA4/report4.md new file mode 100644 index 0000000..0d33ccc --- /dev/null +++ b/TEMA4/report4.md @@ -0,0 +1,304 @@ +# Отчет по теме 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) + +type(round(123.456,0)) + +round(123.456) +123 +type(round(123.456)) + +``` +### 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) + +``` +### 2.3. Функция создания общего объекта, элементами которого являются кортежи zip(). + +```py +qq = ["Ефимова", "Девятова", "Беженарь", "Антонов"] +ff=zip(gg,qq) +ff # итерируемый объект просто так нельзя увидеть + +tuple(ff) +((76, 'Ефимова'), (85, 'Девятова'), (94, 'Беженарь'), (103, 'Антонов')) +ff[1] # нельзя обращаться с помощью индекса +Traceback (most recent call last): + File "", line 1, in + 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]) # Применение заданной функции ко всем элементам переданной последовательности + +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.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'] +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. Завершила работу со средой + +