diff --git a/TEMA3/task.md b/TEMA3/task.md index c95a88d..56e5007 100644 --- a/TEMA3/task.md +++ b/TEMA3/task.md @@ -1,4 +1,4 @@ -# Общее контрольное задание по теме 2 +# Общее контрольное задание по теме 3 **Антонов Дмитрий, А-03-23** diff --git a/TEMA4/Ris1.png b/TEMA4/Ris1.png new file mode 100644 index 0000000..79a2973 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..a975fc9 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..0654f48 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..b20b890 Binary files /dev/null and b/TEMA4/Ris4.png differ diff --git a/TEMA4/Ris5.png b/TEMA4/Ris5.png new file mode 100644 index 0000000..06e45e7 Binary files /dev/null and b/TEMA4/Ris5.png differ diff --git a/TEMA4/report.md b/TEMA4/report.md new file mode 100644 index 0000000..34fe4aa --- /dev/null +++ b/TEMA4/report.md @@ -0,0 +1,541 @@ +# Отчет по теме 4 + +**Антонов Дмитрий, А-03-23** + +### 1.Начало работы, настройка текущего каталога +```py +Python 3.13.7 (v3.13.7:bcee1c32211, Aug 14 2025, 19:10:51) [Clang 16.0.0 (clang-1600.0.26.6)] on darwin +Enter "help" below or click "Help" above for more information. +import os +os.chdir('//Users//dmitrijantonov//Desktop//POAC//python-labs//TEMA4//') +os.getcwd() +'/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA4' +``` + +### 2. Изучаю стандартные функции в модуле builtins +#### 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 +round(123.456,5) +123.456 +round(123.456,2) +123.46 +type(round(123.456,1)) + +type(round(123.456,0)) + +round(123.456) +123 +type(round(123.456)) + +round(123.76) +124 +``` + +#### 2.2 Изучаю функцию range +- Правая граница в создаваемую последовательность включена не будет +```py +gg=range(76,123,9) +type(gg) + +``` +- Преобразую в список +```py +list(gg) +[76, 85, 94, 103, 112, 121] +``` +- Правая граница - 0, шаг по умолачнию 1. +```py +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 = ["Антонов"] +type(qq) + +type(qq[0]) + +qq.extend(['Корнеев','Ефимова','Гордиевских']) +qq +['Антонов', 'Корнеев', 'Ефимова', 'Гордиевских'] + +ff=zip(gg,qq) +ff + + +tuple(ff) +((76, 'Антонов'), (85, 'Корнеев'), (94, 'Ефимова'), (103, 'Гордиевских')) +``` +- Нельзя обратиться по индексу к объекту zip. Так как это «итерируемый объект» класса zip +```py +ff[0] +Traceback (most recent call last): + File "", line 1, in + ff[0] +TypeError: 'zip' object is not subscriptable + +list(ff) +[] +dict(ff) +{} +``` +#### 2.4 Функция eval и exec +- eval - выполненяет код, который был передан в параметрах функции в виде строки +```py +коэффициент усиления=100 +dan=eval('5*fff-156') +dan +344.0 +eval('5') +5 +``` +- exec - выполняет множество инструкций +```py +exec(input('введите инструкции:')) +введите инструкции:perem=-123.456;gg=round(abs(perem)+98,3) + +gg +221.456 + +perem +-123.456 + +exec("1") + +exec("o=1") +o +1 +#exec выполнит много команд, eval - одну +``` +#### 2.5 Применяю стандартные функции +```py +abs(-1) +1 +pow(2,2) +4 +max(5,555) +555 +min(5,555) +5 +``` +- Для sum можно использовать только итерируемый объект +```py +sum(5,555) +Traceback (most recent call last): + File "", line 1, in + sum(5,555) +TypeError: 'int' object is not iterable +sum([5,555]) +560 +``` +- divmod() принимает параметры a — делимое,b — делитель. Возвращает: кортеж (частное, остаток) +```py +divmod(9,9) +(1, 0) + +len([1]) +1 +``` +- map выполняет операцию (первый арумент) ко всем элементам второго аргумента +```py +numbers = [1, 2, 3, 4, 5] +result = map(str, numbers) +result + +list(result) +['1', '2', '3', '4', '5'] +``` +### 3. Функции из стандартного модуля math +- Импортировал модуль, получил его содержимое +```py +import math +dir(math) +['__doc__', '__file__', '__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!. +``` +- Применил часто встречающиеся функции +```py +math.factorial(5) +120 +math.sin(5) +-0.9589242746631385 +math.sin(90) +0.8939966636005579 +math.sin(0) +0.0 +math.sin(1800) +0.13220235275593667 +math.acos(1) +0.0 +math.acos(0) +1.5707963267948966 +math.degrees(math.sin(1)) +48.21273601220948 +math.degrees(1) +57.29577951308232 +math.degrees(9) +515.662015617741 +math.radians(90) +1.5707963267948966 +math.exp(1) +2.718281828459045 +math.e +2.718281828459045 +math.log(2) +0.6931471805599453 +math.log10(10) +1.0 +math.sqrt(25) +5.0 +``` +- Округление в большую и меньшую сторону +```py +math.ceil(2.2) +3 +math.floor(2.2) +2 +math.floor(2.9) +2 +math.pi +3.141592653589793 +``` +- Вычисляю значение функции sin(2π/7+e0.23). Проверил через ранее изученную функцию 'eval' +```py +eval("math.sin(2*math.pi/7+math.e**0.23)") +0.8334902641414562 +math.sin(2*math.pi/7+math.e**0.23) +0.8334902641414562 +math.sin(2*math.pi/7+pow(math.e,0.23)) +0.8334902641414562 +``` +### 4. Изучаю модуль для комплексных чисел - cmath +- Начал работу, импортировал +```py +import cmath +dir(cmath) +['__doc__', '__file__', '__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'] + +dir(cmath) +['__doc__', '__file__', '__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) + +math.sqrt(1.2) +1.0954451150103321 + +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'] +``` +- random.seed - инициализирует генератор случайных чисел +```py +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() + +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'] +``` +#### 5.1 Применяю некоторые функции +- random() Возвращает случайное число с плавающей точкой в диапазоне от 0.0 до 1.0 +```py +random.random() +0.008800222465144891 +random.random() +0.7757718646112775 +random.random() +0.6809534532050255 +random.random() +0.4430922828704329 +``` +- uniform() Возвращает случайное число с плавающей точкой в заданном диапазоне +```py +random.uniform(1,20) +3.5170563248621844 +random.uniform(1,20) +6.813290848556115 +random.uniform(1,20) +18.150692296322372 +``` +- randint() - только целые числа +```py +random.randint(1,20) +5 +random.randint(1,20) +6 +random.randint(1,20) +12 +``` +- Изучаю различные законы распределения +```py +random.gauss() +-0.6902407757014835 +random.gauss() +0.850255236263578 +random.gauss() +1.379056097779261 +random.gauss(10,0) #мат ожидание, дисперсия +10.0 + +random.choice([1,2,3,4,5]) +4 +random.choice([1,2,3,4,5]) +3 +random.choice([1,2,3,4,5]) +1 +random.choice((1,2,3,4,5)) +4 +``` +- shuffle - меняет местами числа в последовательности. Принимает только итерируемый объект +```py +x = [21,12] +random.shuffle(x) +x +[12, 21] + +x = (21,12) +random.shuffle(x) +Traceback (most recent call last): + File "", line 1, in + random.shuffle(x) + File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/random.py", line 361, in shuffle + x[i], x[j] = x[j], x[i] +TypeError: 'tuple' object does not support item assignment + +random.betavariate(1,1) +0.36329048486741 +random.gammavariate(1,1) +1.1185774335019822 + +lst = [random.random(),random.gauss(0,1),random.betavariate(0.1,1),random.gammavariate(0.1,1)] +lst +[0.5002931835956634, -1.6735958900161145, 1.7682636159174984e-12, 7.519855470126239e-06] +``` +### 6. Модуль time +```py +import time +dir(time) +['CLOCK_MONOTONIC', 'CLOCK_MONOTONIC_RAW', 'CLOCK_MONOTONIC_RAW_APPROX', 'CLOCK_PROCESS_CPUTIME_ID', 'CLOCK_REALTIME', 'CLOCK_THREAD_CPUTIME_ID', 'CLOCK_UPTIME_RAW', 'CLOCK_UPTIME_RAW_APPROX', '_STRUCT_TM_ITEMS', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'altzone', 'asctime', 'clock_getres', 'clock_gettime', 'clock_gettime_ns', 'clock_settime', 'clock_settime_ns', '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', 'tzset'] +``` +- Время (секунды) начиная с эпохи Unix - 1970 1 января +```py +time.time() +1760033586.4494689 +c1=time.time() +c2=time.time()-c1 +c2 +5.868124008178711 +``` +- Текущие сведения о времени UTC. Точка отсчета эпоха Unix +```py +time.gmtime() +time.struct_time(tm_year=2025, tm_mon=10, tm_mday=9, tm_hour=18, tm_min=15, tm_sec=47, tm_wday=3, tm_yday=282, tm_isdst=0) +``` +- m_wday день недели 0-6 (0 - понедельник) tm_yday день года 1-366 tm_isdst летнее время 0 +```py +dat=time.gmtime() +dat.tm_mon +10 + +time.gmtime().tm_year +2025 + +time.gmtime().tm_mday +9 +time.gmtime().tm_hour +18 +time.gmtime().tm_min +18 +time.gmtime().tm_sec +56 +time.gmtime().tm_wday +3 +time.gmtime().tm_yday +282 +time.gmtime().tm_isdst +0 + +time.localtime() +time.struct_time(tm_year=2025, tm_mon=10, tm_mday=9, tm_hour=21, tm_min=20, tm_sec=46, tm_wday=3, tm_yday=282, tm_isdst=0) +``` +- asctime() - принимает кортеж в формате (year, month, day, hour, minute, second, weekday, yearday, isdst). По умолчанию текущее время +```py +time.asctime() +'Thu Oct 9 21:22:52 2025' +time.asctime(time.gmtime()) +'Thu Oct 9 18:23:10 2025' + +time.asctime(((2025, 1, 1, 12, 0, 0, 2, 1,0))) +'Wed Jan 1 12:00:00 2025' +``` +- ctime() Вернет дату, с эпохи Unix. Принимает временя в секундах +```py +time.ctime(1) +'Thu Jan 1 03:00:01 1970' #прошло с начало эпохи в секундах + +time.sleep(1) +``` +- mktime покажет сколько прошло секунд сначала эпохи Unix +```py +time.mktime(time.localtime()) +1760034468.0 +time.localtime(c1) +time.struct_time(tm_year=2025, tm_mon=10, tm_mday=9, tm_hour=21, tm_min=14, tm_sec=40, tm_wday=3, tm_yday=282, tm_isdst=0) +time.localtime() +time.struct_time(tm_year=2025, tm_mon=10, tm_mday=9, tm_hour=21, tm_min=28, tm_sec=41, tm_wday=3, tm_yday=282, tm_isdst=0) +``` +- Посмотрел доступные модули для работы со временем +```py +import datetime +dir(datetime) +['MAXYEAR', 'MINYEAR', 'UTC', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'date', 'datetime', 'datetime_CAPI', 'time', 'timedelta', 'timezone', 'tzinfo'] +``` +### 7. Графические функции +#### 7.1 Построение одного графика +```py +import matplotlib +from matplotlib import pylab +x=list(range(-3,55,4));t=list(range(15)) +pylab.plot(t,x) +[] + +pylab.title('Первый график') +Text(0.5, 1.0, 'Первый график') + +pylab.xlabel('время') +Text(0.5, 23.52222222222222, 'время') + +pylab.ylabel('сигнал') +Text(42.722222222222214, 0.5, 'сигнал') + +pylab.show() +``` +![Полученный график](Ris1.png) +#### 7.2 Построение нескольких графиков на рисунке +```py +X1=[12,6,8,10,7];X2=[5,7,9,11,13] +pylab.plot(X1) +[] +pylab.plot(X2) +[] +pylab.show() +``` +![Несколько графиков на рисунке](Ris2.png) +#### 7.3 Построение круговой диаграммы +```py +region=['Центр','Урал','Сибирь','Юг'] +naselen=[65,12,23,17] +pylab.pie(naselen,labels=region) +([, , , ], [Text(-0.19101313413904503, 1.0832885038559115, 'Центр'), Text(-0.861328292412156, -0.6841882582231001, 'Урал'), Text(0.04429273995539947, -1.0991078896938387, 'Сибирь'), Text(0.9873750693480946, -0.4848612919483732, 'Юг')]) +pylab.show() +``` +![Круговая диаграмма](Ris3.png) +#### 7.4 Построение гистограммы +```py +data = list(range(1,50,10)) +pylab.hist(data,bins = 10,edgecolor='red',label='ТЕСТ') +(array([1., 0., 1., 0., 0., 1., 0., 1., 0., 1.]), array([ 1., 5., 9., 13., 17., 21., 25., 29., 33., 37., 41.]), ) +pylab.ylabel('количество попаданий в корзину') +Text(42.722222222222214, 0.5, 'количество попаданий в корзину') +pylab.xlabel('значения') +Text(0.5, 23.52222222222222, 'значения') +pylab.show() +``` +![Гистограмма](Ris4.png) +#### 7.5 Построение диаграммы +```py +data = list(range(1,50,10)) +categotia = [1,2,3,4,5] + +data +[1, 11, 21, 31, 41] + +pylab.xlabel('Категории') +Text(0.5, 23.52222222222222, 'Категории') + +pylab.ylabel('Значение каждой категории') +Text(47.097222222222214, 0.5, 'Значение каждой категории') + +pylab.bar(categotia,data,color='purple',label='TEST') + + +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'] +import statistics as st +help(st.sin) +Help on built-in function sin in module math: + +sin(x, /) + Return the sine of x (measured in radians). + +help(st.math) + +dir(st.math) +['__doc__', '__file__', '__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'] + +dir(st.tau) +['__abs__', '__add__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getformat__', '__getnewargs__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__int__', '__le__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__pos__', '__pow__', '__radd__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rmod__', '__rmul__', '__round__', '__rpow__', '__rsub__', '__rtruediv__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', 'as_integer_ratio', 'conjugate', 'fromhex', 'hex', 'imag', 'is_integer', 'real'] + +st.tau +6.283185307179586 +st.tau +6.283185307179586 + +math.pi*2 == st.tau +True + +data = list(st.repeat([1,2,3],5)) +data +[[1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3]] +``` \ No newline at end of file diff --git a/TEMA4/task.md b/TEMA4/task.md new file mode 100644 index 0000000..1c4818f --- /dev/null +++ b/TEMA4/task.md @@ -0,0 +1,82 @@ +# Общее контрольное задание по теме 4 + +**Антонов Дмитрий, А-03-23** + +## Задание 1 +1. Напишите и исполните единое выражение, реализующее последовательное выполнение следующих операций: вычисление фазы комплексного числа 0.2+0.8j, округление результата до двух знаков после запятой, умножение полученного значения на 20, получение кортежа из двух значений: округленное вниз значение от деления результата на 3 и остатка от этого деления. +## Решение +```py +import cmath as c +c.phase(0.2+0.8j) +1.3258176636680326 +round(c.phase(0.2+0.8j),2) +1.33 +round(c.phase(0.2+0.8j),2)*20 +26.6 +divmod(round(c.phase(0.2+0.8j),2)*20,3) +(8.0, 2.6000000000000014) +``` +## Задание 2 +2. Создайте объект класса struct_time с временными параметрами для текущего московского времени. Создайте строку с текущим часом и минутами. +## Решение +```py +import time as t +t.localtime() +time.struct_time(tm_year=2025, tm_mon=10, tm_mday=9, tm_hour=23, tm_min=34, tm_sec=33, tm_wday=3, tm_yday=282, tm_isdst=0) +type(t.localtime()) +str(t.localtime().tm_hour) + ":" + str(t.localtime().tm_min) +'23:34' + +``` +## Задание 3 +3. Создайте список с элементами – названиями дней недели. Сделайте случайную выборку из этого списка с тремя днями недели. +## Решение +```py +days = ['Пн','Вт','Ср','Чт','Пт','Сб','Вс'] +import random as r +NW = [r.choice(days),r.choice(days),r.choice(days)] +NW +['Чт', 'Сб', 'Ср'] + +r.sample(days,3) +['Чт', 'Пн', 'Пт'] +``` +## Задание 4 +4. Напишите инструкцию случайного выбора числа из последовательности целых чисел от 14 до 32 с шагом 3. +## Решение +```py +import random as r +r.choice(list(range(14,33,3))) +20 +``` +## Задание 5 +5. Сгенерируйте нормально распределенное число N с математическим ожиданием 15 и стандартным отклонением 4 и округлите его до целого значения. Создайте список с N элементами – случайно выбранными буквами латинского алфавита. +## Решение +```py +import random as r +round(r.gauss(15,4)) +17 + +import string +letters = string.ascii_lowercase +for i in range(0,11,1): + lst.append(r.choice(letters)) +lst +['u', 'g', 'l', 'j', 'x', 'n', 'w', 'v', 'w', 'u', 'f'] +``` +## Задание 6 +6. Напишите инструкцию для определения временного интервала в минутах, прошедшего с момента предыдущего (из п.2) определения временных параметров. +## Решение +```py +before = t.time() +before +1760044368.6590788 + +now_sec = t.time() - before +now_sec +13.17490816116333 + +now_sec*=(1/60) +now_sec +0.2195818026860555 +``` \ No newline at end of file diff --git a/TEMA4/test.md b/TEMA4/test.md new file mode 100644 index 0000000..c77c8b8 --- /dev/null +++ b/TEMA4/test.md @@ -0,0 +1,47 @@ +# Индивидуальное контрольное задание по теме 4 + +**Антонов Дмитрий, А-03-23** + +## Задание +M18 +1) Напишите инструкцию запоминания текущего Московского времени в некоторой переменной. +```py +import time as tm +current_t = tm.localtime() +current_t +time.struct_time(tm_year=2025, tm_mon=10, tm_mday=10, tm_hour=9, tm_min=56, tm_sec=50, tm_wday=4, tm_yday=283, tm_isdst=0) +``` +2) Создайте кортеж с целочисленными значениями от 0 до 136 с шагом 17. Подсчитайте число элементов в кортеже. +```py +tpl = tuple(range(0,137,17)) +tpl +(0, 17, 34, 51, 68, 85, 102, 119, 136) +len(tpl) +9 +``` +3) Создайте нормально распределенное число Z с математическим ожиданием 47 и стандартным отклонением 22. +```py +import random as r +z = r.gauss(47,22) +z +39.16778826775201 +z = round(z) +``` +4) Нацело разделите сумму элементов кортежа на округленное до целого значения Z. +```py +res = sum(tpl)//z +``` +5) Отобразите результат в виде символьной строки вида «Результат = ХХ» с использование формата. +```py +print("Результат = {}".format(res)) +Результат = 15 +``` +6) Определите время в минутах, прошедшее с начала выполнения данного задания. +```py +how_much = tm.time() - tm.mktime(current_t) +how_much +610.6642169952393 +how_much *= 1/60 +how_much +10.177736949920654 +``` \ No newline at end of file