diff --git a/TEMA4/Figure_1.png b/TEMA4/Figure_1.png new file mode 100644 index 0000000..f1a2ae4 Binary files /dev/null and b/TEMA4/Figure_1.png differ diff --git a/TEMA4/Ris1.png b/TEMA4/Ris1.png new file mode 100644 index 0000000..f1a2ae4 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..e5e0673 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..978bd25 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..0fec5af 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..114289e Binary files /dev/null and b/TEMA4/Ris5.png differ diff --git a/TEMA4/iz.md b/TEMA4/iz.md new file mode 100644 index 0000000..2f892c5 --- /dev/null +++ b/TEMA4/iz.md @@ -0,0 +1,29 @@ +## Напишите инструкцию запоминания в переменной текущего времени в секундах с начала эпохи. Преобразуйте это время в Московское региональное время. Создайте кортеж с элементами – целыми числами от 27 до 147 через 15. Рассчитайте сумму элементов кортежа и определите значение отношения синуса этой суммы к корню квадратному из неё. Отобразите полученное значение в виде: «Результат = ХХХ» с округлением до 5 знаков после точки. +```py +import time + +# Текущее время в секундах +time.time() +1759145565.96384 + +# Московское время +time.localtime(секунды + 3*3600) +time.struct_time(tm_year=2025, tm_mon=9, tm_mday=29, tm_hour=17, tm_min=30, tm_sec=34, tm_wday=0, tm_yday=272, tm_isdst=0) +# или +print(f"Московское время: {time.asctime(мск_время)}") +Московское время: Mon Sep 29 17:30:34 2025 + +# Кортеж с целыми числами +кортеж = tuple(range(27, 148, 15)) +кортеж +(27, 42, 57, 72, 87, 102, 117, 132, 147) +sum(кортеж) +783 +сумма = sum(кортеж) + +# Отношение синуса суммы к корню +import math +результат=round(math.sin(сумма) / math.sqrt(сумма), 5) +print("Результат =", результат) +Результат = -0.02419 +``` \ No newline at end of file diff --git a/TEMA4/iz.py b/TEMA4/iz.py new file mode 100644 index 0000000..712fca9 --- /dev/null +++ b/TEMA4/iz.py @@ -0,0 +1,2 @@ +Python 3.13.7 (tags/v3.13.7:bcee1c3, Aug 14 2025, 14:15:11) [MSC v.1944 64 bit (AMD64)] on win32 +Enter "help" below or click "Help" above for more information. diff --git a/TEMA4/obsheekz.md b/TEMA4/obsheekz.md new file mode 100644 index 0000000..cd2b099 --- /dev/null +++ b/TEMA4/obsheekz.md @@ -0,0 +1,57 @@ +## Общее контрольное задание Снегура Дана +```py +import math +import cmath +import time +import random +import string +import statistics +``` +# 1. Комплексное число и операции +```py +math.floor((round(cmath.phase(0.2+0.8j), 2) * 20) / 3), (round(cmath.phase(0.2+0.8j), 2) * 20) % 3 +(8, 2.6000000000000014) +``` +# 2. Текущее московское время +```py +moscow_time = time.localtime(time.time() + 3 * 3600) # UTC+3 для Москвы +current_time_str = f"{moscow_time.tm_hour:02d}:{moscow_time.tm_min:02d}" +moscow_time +time.struct_time(tm_year=2025, tm_mon=9, tm_mday=19, tm_hour=20, tm_min=43, tm_sec=20, tm_wday=4, tm_yday=262, tm_isdst=0) +current_time_str +'20:43' +``` +# 3. Случайная выборка дней недели +```py +week_days = ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'] +random_days = random.sample(week_days, 3) +random_days +['Вторник', 'Пятница', 'Воскресенье'] +``` +# 4. Случайный выбор числа из последовательности +```py +sequence = list(range(14, 33, 3)) +random_number = random.choice(sequence) +random_number +20 +sequence +[14, 17, 20, 23, 26, 29, 32] +``` +# 5. Генерация нормально распределенного числа и списка букв +```py +N = round(random.gauss(15, 4)) +N = max(1, N) # Гарантируем хотя бы 1 элемент +random_letters = random.choices(string.ascii_uppercase, k=N) +N +11 +random_letters +['O', 'U', 'J', 'Y', 'U', 'Y', 'Y', 'S', 'D', 'K', 'G'] +``` +# 6. Временной интервал в минутах +```py +current_time = time.time() +time_interval_seconds = current_time - time.mktime(moscow_time) +time_interval_minutes = round(time_interval_seconds / 60, 2) +time_interval_minutes +-170.05 +``` \ No newline at end of file diff --git a/TEMA4/obsheekz.py b/TEMA4/obsheekz.py new file mode 100644 index 0000000..9bde9a7 --- /dev/null +++ b/TEMA4/obsheekz.py @@ -0,0 +1,40 @@ +Python 3.13.7 (tags/v3.13.7:bcee1c3, Aug 14 2025, 14:15:11) [MSC v.1944 64 bit (AMD64)] on win32 +Enter "help" below or click "Help" above for more information. +import math +import cmath +import time +import random +import string +import statistics +math.floor((round(cmath.phase(0.2+0.8j), 2) * 20) / 3), (round(cmath.phase(0.2+0.8j), 2) * 20) % 3 +(8, 2.6000000000000014) +time.localtime(time.time() + 3 * 3600) +time.struct_time(tm_year=2025, tm_mon=9, tm_mday=19, tm_hour=20, tm_min=42, tm_sec=40, tm_wday=4, tm_yday=262, tm_isdst=0) +moscow_time = time.localtime(time.time() + 3 * 3600) # UTC+3 для Москвы +current_time_str = f"{moscow_time.tm_hour:02d}:{moscow_time.tm_min:02d}" +moscow_time +time.struct_time(tm_year=2025, tm_mon=9, tm_mday=19, tm_hour=20, tm_min=43, tm_sec=20, tm_wday=4, tm_yday=262, tm_isdst=0) +>>> current_time_str +'20:43' +>>> week_days = ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'] +>>> random_days = random.sample(week_days, 3) +>>> random_days +['Вторник', 'Пятница', 'Воскресенье'] +>>> sequence = list(range(14, 33, 3)) +>>> random_number = random.choice(sequence) +>>> random_number +20 +>>> sequence +[14, 17, 20, 23, 26, 29, 32] +>>> N = round(random.gauss(15, 4)) +>>> N = max(1, N) # Гарантируем хотя бы 1 элемент +>>> random_letters = random.choices(string.ascii_uppercase, k=N) +>>> N +11 +>>> random_letters +['O', 'U', 'J', 'Y', 'U', 'Y', 'Y', 'S', 'D', 'K', 'G'] +>>> current_time = time.time() +>>> time_interval_seconds = current_time - time.mktime(moscow_time) +>>> time_interval_minutes = round(time_interval_seconds / 60, 2) +>>> time_interval_minutes +-170.05 diff --git a/TEMA4/otch.py b/TEMA4/otch.py new file mode 100644 index 0000000..e617834 --- /dev/null +++ b/TEMA4/otch.py @@ -0,0 +1,114 @@ +Python 3.13.7 (tags/v3.13.7:bcee1c3, Aug 14 2025, 14:15:11) [MSC v.1944 64 bit (AMD64)] on win32 +Enter "help" below or click "Help" above for more information. +time_tuple = (2025, 9, 18, 16, 12, 46, 3, 261, 0) +time_obj = time.struct_time(time_tuple) +Traceback (most recent call last): + File "", line 1, in + time_obj = time.struct_time(time_tuple) +NameError: name 'time' is not defined. Did you forget to import 'time'? +import time +time_obj = time.struct_time(time_tuple) +time_obj +time.struct_time(tm_year=2025, tm_mon=9, tm_mday=18, tm_hour=16, tm_min=12, tm_sec=46, tm_wday=3, tm_yday=261, tm_isdst=0) +seconds = time.mktime(time_obj) +seconds +1758201166.0 +back_to_time = time.localtime(seconds + ) +back_to_time +time.struct_time(tm_year=2025, tm_mon=9, tm_mday=18, tm_hour=16, tm_min=12, tm_sec=46, tm_wday=3, tm_yday=261, tm_isdst=0) +import pylab +Traceback (most recent call last): + File "", line 1, in + import pylab +ModuleNotFoundError: No module named 'pylab' +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, 0, 'время') +pylab.ylabel('сигнал') +Text(0, 0.5, 'сигнал') +pylab.show() #Отображение графика на экране +X1=[12,6,8,10,7] +X2=[5,7,9,11,13] +pylab.plot(X1) +[] +pylab.plot(X2) +[] +pylab.show() +pylab.hist(grades, bins=5, edgecolor='black', alpha=0.7, color='skyblue') +Traceback (most recent call last): + File "", line 1, in + pylab.hist(grades, bins=5, edgecolor='black', alpha=0.7, color='skyblue') +NameError: name 'grades' is not defined +grades = [85, 92, 78, 65, 90, 85, 88, 72, 95, 81, 85, 90, 78, 85, 92] +categories = ['A', 'B', 'C', 'D', 'F'] +values = [3, 7, 8, 2, 1] +pylab.hist(grades, bins=5, edgecolor='black', alpha=0.7, color='skyblue') +(array([1., 1., 3., 5., 5.]), array([65., 71., 77., 83., 89., 95.]), ) +pylab.title('Гистограмма распределения оценок') +Text(0.5, 1.0, 'Гистограмма распределения оценок') +pylab.xlabel('Оценки') +Text(0.5, 0, 'Оценки') +pylab.ylabel('Частота') +Text(0, 0.5, 'Частота') +pylab.grid(axis='y', alpha=0.75) +pylab.show() +pylab.show() +pylab.hist(grades, bins=5, edgecolor='black', alpha=0.7, color='skyblue') +(array([1., 1., 3., 5., 5.]), array([65., 71., 77., 83., 89., 95.]), ) +pylab.title('Гистограмма распределения оценок') +Text(0.5, 1.0, 'Гистограмма распределения оценок') +pylab.xlabel('Оценки') +Text(0.5, 0, 'Оценки') +pylab.ylabel('Частота') +Text(0, 0.5, 'Частота') +pylab.grid(axis='y', alpha=0.75) +pylab.show() +data = [23, 45, 67, 34, 89, 56, 72, 41, 58, 64, 39, 51, 47, 62, 55] +pylab.bar(categories, values, color=['red', 'orange', 'yellow', 'green', 'blue'], alpha=0.7) + +pylab.title('Столбчатая диаграмма распределения по категориям') +Text(0.5, 1.0, 'Столбчатая диаграмма распределения по категориям') +pylab.xlabel('Категории') +Text(0.5, 0, 'Категории') +pylab.ylabel('Количество') +Text(0, 0.5, 'Количество') +pylab.grid(axis='y', alpha=0.75) +pylab.show() +mean_value = statistics.mean(data) +Traceback (most recent call last): + File "", line 1, in + mean_value = statistics.mean(data) +NameError: name 'statistics' is not defined. Did you forget to import 'statistics'? +import statistics +>>> mean_value = statistics.mean(data) +>>> median_value = statistics.median(data) +>>> mode_value = statistics.mode(data) +>>> stdev_value = statistics.stdev(data) +>>> variance_value = statistics.variance(data) +>>> quantiles_value = statistics.quantiles(data, n=4) +>>> harmonic_mean_value = statistics.harmonic_mean(data) +>>> pylab.hist(data, bins=6, edgecolor='black', alpha=0.7, color='lightgreen', label='Распределение данных') +(array([1., 3., 4., 4., 2., 1.]), array([23., 34., 45., 56., 67., 78., 89.]), ) +>>> pylab.axvline(mean_value, color='red', linestyle='--', linewidth=2, label=f'Среднее: {mean_value:.2f}') + +>>> pylab.axvline(median_value, color='blue', linestyle='--', linewidth=2, label=f'Медиана: {median_value}') + +>>> pylab.axvline(mode_value, color='green', linestyle='--', linewidth=2, label=f'Мода: {mode_value}') + +>>> pylab.title('Гистограмма данных со статистическими показателями') +Text(0.5, 1.0, 'Гистограмма данных со статистическими показателями') +>>> pylab.xlabel('Значения') +Text(0.5, 0, 'Значения') +>>> pylab.ylabel('Частота') +Text(0, 0.5, 'Частота') +>>> pylab.legend() + +>>> pylab.grid(alpha=0.3) +>>> pylab.show() diff --git a/TEMA4/otche.py b/TEMA4/otche.py new file mode 100644 index 0000000..af6ae09 --- /dev/null +++ b/TEMA4/otche.py @@ -0,0 +1,244 @@ +Python 3.13.7 (tags/v3.13.7:bcee1c3, Aug 14 2025, 14:15:11) [MSC v.1944 64 bit (AMD64)] on win32 +Enter "help" below or click "Help" above for more information. +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. + +type(round) + +range(23) +range(0, 23) +gg=range(76,123,9) +qq=["Снегура", "Туровец", "Хатюхин", "Шабатов"] +ff=zip(gg,qq) +tuple(ff) +((76, 'Снегура'), (85, 'Туровец'), (94, 'Хатюхин'), (103, 'Шабатов')) +a=tuple(ff) +a[1] +Traceback (most recent call last): + File "", line 1, in + a[1] +IndexError: tuple index out of range +b=list(ff) +b[1] +Traceback (most recent call last): + File "", line 1, in + b[1] +IndexError: list index out of range +gg +range(76, 123, 9) +tuple(gg) +(76, 85, 94, 103, 112, 121) +list(gg) +[76, 85, 94, 103, 112, 121] +c= list(zip(gg, qq)) +c[1] +(85, 'Туровец') +exec(input('введите инструкции:')) +введите инструкции:perem=-123.456;gg=round(abs(perem)+98,3) +gg +221.456 +numbers = [1, 2, 3, 4, 5] +list(map(str, numbers)) +['1', '2', '3', '4', '5'] +divmod(3,7) +(0, 3) +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(180) +-0.8011526357338304 +heip(math.sin) +Traceback (most recent call last): + File "", line 1, in + heip(math.sin) +NameError: name 'heip' is not defined. Did you mean: 'help'? +help(math.sin) +Help on built-in function sin in module math: + +sin(x, /) + Return the sine of x (measured in radians). + +help(math.acos) +Help on built-in function acos in module math: + +acos(x, /) + Return the arc cosine (measured in radians) of x. + + The result is between 0 and pi. + +math.acos(-0.8011526357338304) +2.500015072176682 +heip(math.degrees) +Traceback (most recent call last): + File "", line 1, in + heip(math.degrees) +NameError: name 'heip' is not defined. Did you mean: 'help'? +help(math.degrees) +Help on built-in function degrees in module math: + +degrees(x, /) + Convert angle x from radians to degrees. + +math.degrees(180) +10313.240312354817 +hep(math.exp) +Traceback (most recent call last): + File "", line 1, in + hep(math.exp) +NameError: name 'hep' is not defined. Did you mean: 'hex'? +help(math.exp) +Help on built-in function exp in module math: + +exp(x, /) + Return e raised to the power of x. + +math.exp(2) +7.38905609893065 +math.log(10) +2.302585092994046 +math.log(8, 2) +3.0 +math.log10(10) +1.0 +math.sqrt(4) +2.0 +math.ceil(2.3) +3 +math.ceil(2.3) +3 +math.floor(2.3) +2 +math.floor(-2.3) +-3 +math.ceil(-2.3) +-2 +math.pi +3.141592653589793 +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 +dir(random) +Traceback (most recent call last): + File "", line 1, in + dir(random) +NameError: name 'random' is not defined. Did you forget to import 'random'? +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.seed(42) +random.random() +0.6394267984578837 +random.uniform(5, 15) +5.25010755222667 +random.randint(1, 100) +36 +random.gauss(0, 1) +0.017593105583573694 +a=[1,2,3,4,5,6,7] +random.choice(a) +1 +random.shuffle(a) +a +[4, 2, 3, 1, 5, 7, 6] +random.sample(range(100), 5) +[4, 3, 11, 27, 29] +random.betavariate(2, 5) +0.3918844780644009 +random.gammavariate(2, 1) +2.219353519271194 +random_values = [ + # 1. Равномерное распределение [0, 10) + random.uniform(0, 10), + + # 2. Нормальное распределение (mu=50, sigma=10) + random.gauss(50, 10), + + # 3. Бета-распределение (alpha=2, beta=5) + random.betavariate(2, 5), + + # 4. Гамма-распределение (alpha=3, beta=2) + random.gammavariate(3, 2) +] +random_values +[5.892656838759088, 55.47961646339978, 0.5314696353281997, 2.163791803055314] +distributions = [ + "Равномерное [0, 10)", + "Нормальное (μ=50, σ=10)", + "Бета (α=2, β=5)", + "Гамма (α=3, β=2)" +] +list(zip(random_values, distributions)) +[(5.892656838759088, 'Равномерное [0, 10)'), (55.47961646339978, 'Нормальное (μ=50, σ=10)'), (0.5314696353281997, 'Бета (α=2, β=5)'), (2.163791803055314, 'Гамма (α=3, β=2)')] +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() +c1 +1758211745.990668 +c2=time.time()-c1 +с2 +Traceback (most recent call last): + File "", line 1, in + с2 +NameError: name 'с2' is not defined +>>> c2 +87.25691390037537 +>>> dat=time.gmtime() +>>> dat +time.struct_time(tm_year=2025, tm_mon=9, tm_mday=18, tm_hour=16, tm_min=12, tm_sec=46, tm_wday=3, tm_yday=261, tm_isdst=0) +>>> dat.tm_mon +9 +>>> dat.tm_year +2025 +>>> dat.tm_mday +18 +>>> dat.tm_hour +16 +>>> dat.tm_min +12 +>>> dat.tm_sec +46 +>>> dat.tm_wday +3 +>>> dat.tm_yday +261 +>>> dat.tm_isdst +0 diff --git a/TEMA4/otchet.py b/TEMA4/otchet.py new file mode 100644 index 0000000..8a769b0 --- /dev/null +++ b/TEMA4/otchet.py @@ -0,0 +1,39 @@ +Python 3.13.7 (tags/v3.13.7:bcee1c3, Aug 14 2025, 14:15:11) [MSC v.1944 64 bit (AMD64)] on win32 +Enter "help" below or click "Help" above for more information. +round(123.456,1) +123.5 +round(123.456,0) +123.0 +dir(round) +['__call__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__name__', '__ne__', '__new__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__text_signature__'] +type(123.5) + +type(round(123.0) + ) + +type(round(123.456,1)) + +>>> type(round(123.456,0)) + +>>> type(123.0) + +>>> round(123.456) +123 +>>> type(123) + +>>> gg=range(76,123,9) +>>> type(gg) + +>>> list(gg) +[76, 85, 94, 103, 112, 121] +>>> range(23) +range(0, 23) +>>> qq="Снегура" +>>> qq=["Снегура", "Туровец", "Хатюхин", "Шабатов"] +>>> ff=zip(gg,qq) +>>> ff + +>>> type(ff) + +>>> tuple(ff) +((76, 'Снегура'), (85, 'Туровец'), (94, 'Хатюхин'), (103, 'Шабатов')) diff --git a/TEMA4/report.md b/TEMA4/report.md new file mode 100644 index 0000000..0a6cc55 --- /dev/null +++ b/TEMA4/report.md @@ -0,0 +1,373 @@ +#Тема 4 Туровец Евгений +## 2. Стандартные функции. Находятся в модуле builtins, который становится доступным без импорта при запуске среды IDLE. +### 2.1. Функция round – округление числа с заданной точностью. +```py +round(123.456,1) +123.5 +round(123.456,0) +123.0 +type(round(123.456,1)) + +type(round(123.456,0)) + +type(123.0) + +type(123.5) + +round(123.456) +123 +type(123) + +type(round) + +``` +### 2.2. Функция range – создание последовательности целых чисел с заданным шагом или, по умолчанию, с шагом 1. +```py +gg=range(76,123,9) #генерирует числа, начиная с 76 и прибавляя 9, пока не достигнет числа, которое больше или равно 123 +type(gg) + +list(gg) +[76, 85, 94, 103, 112, 121] +range(23) #функция создаст последовательность чисел от 0 до 22 включительно с шагом 1 +range(0, 23) +``` +### 2.3. Функция zip – создание общего объекта, элементами которого являются кортежи, составленные из элементов двух или более объектов-последовательностей (zip – застежка-«молния»). Длина результирующего объекта равна длине самого короткого объекта из двух аргументов функции. +```py +qq=["Снегура", "Туровец", "Хатюхин", "Шабатов"] +list(gg) +[76, 85, 94, 103, 112, 121] +ff=zip(gg,qq) +ff + +type(ff) #количество элементов-кортежей в объекте определяется размерностью меньшего объекта + +tuple(ff) +((76, 'Снегура'), (85, 'Туровец'), (94, 'Хатюхин'), (103, 'Шабатов')) +ff[1] #непосредственно объект ff, возвращаемый функцией zip, является итератором. У итераторов нет метода __getitem__, который позволяет обращаться к элементам по индексу. Попытка сделать это вызовет ошибку TypeError. +Traceback (most recent call last): + File "", line 1, in + ff[1] +TypeError: 'zip' object is not subscriptable +c= list(zip(gg, qq)) #для обращения по индексу можно преобразовать в другой тип +c[1] +(85, 'Туровец') +``` +### 2.4. Функция eval – вычисление значения выражения, корректно записанного на языке Python и пред-ставленного в виде символьной строки. +```py +fff=float(input('коэффициент усиления=')); dan=eval('5*fff-156') +коэффициент усиления=4 +dan +-136.0 +``` +### 2.5. Функция exec – чтение и выполнение объекта-аргумента функции. Этот объект должен представ-лять собой строку символов с совокупностью инструкций на языке Python. +```py +exec(input('введите инструкции:')) #ввела perem=-123.456;gg=round(abs(perem)+98,3) после инструкции +введите инструкции:perem=-123.456;gg=round(abs(perem)+98,3) +gg +221.456 +``` +### 2.6. Самостоятельно изучите и попробуйте применить функции abs, pow, max, min, sum, divmod, len, map. +```py +abs(-5) +5 +``` +```py +len('Длина строки') +12 +``` +```py +max(2,3,4) +4 +``` +```py +min(2,3,4) +2 +``` +```py +pow(2,3) +8 +``` +```py +sum(a) +22 +``` +```py +numbers = [1, 2, 3, 4, 5] +list(map(str, numbers)) +['1', '2', '3', '4', '5'] +``` +```py +#divmod() — это встроенная функция, которая принимает два числа и возвращает пару чисел (кортеж), состоящую из результата целочисленного деления (частного) и остатка от деления. +divmod(3,7) +(0, 3) +``` +## 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(180) #из радиан в значение синуса +-0.8011526357338304 +math.acos(-0.8011526357338304) #из радиан в значение косинуса +2.500015072176682 +math.degrees(180) #из радиан в градусы +10313.240312354817 +math.exp(2) #e в степени 2 +7.38905609893065 +math.log(10) #натуральный логарифм по основанию e +2.302585092994046 +math.log(8, 2) #логарифм 8 по основанию 2 +3.0 +math.log10(10) #логарифм 10 по основанию 10 +1.0 +math.sqrt(4) +2.0 +math.ceil(2.3) #наименьшее целое число, большее или равное 2.3(округление вверх) +3 +math.ceil(-2.3) +-2 +math.floor(2.3) #округление вниз +2 +math.floor(-2.3) +-3 +math.pi +3.141592653589793 +``` +## 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(42) # Фиксируем seed для одинаковых результатов +#random() - равномерное распределение [0, 1) +random.random() +0.6394267984578837 +# uniform(a, b) - равномерное распределение [a, b] +random.uniform(5, 15) +5.25010755222667 +# randint(a, b) - случайное целое [a, b] +random.randint(1, 100) +36 +# gauss(mu, sigma) - нормальное распределение +random.gauss(0, 1) +0.017593105583573694 +# choice(sequence) - случайный выбор +a=[1,2,3,4,5,6,7] +random.choice(a) +1 +# shuffle(sequence) - перемешивание +random.shuffle(a) +a +[4, 2, 3, 1, 5, 7, 6] +# sample(population, k) - выборка без повторений +random.sample(range(100), 5) +[4, 3, 11, 27, 29] +# betavariate(alpha, beta) - бета-распределение +random.betavariate(2, 5) +0.3918844780644009 +# gammavariate(alpha, beta) - гамма-распределение +random.gammavariate(2, 1) +2.219353519271194 +``` +## 5.1. Создание списка с 4 случайными значениями +```py +random_values = [ + # 1. Равномерное распределение [0, 10) + random.uniform(0, 10), + + # 2. Нормальное распределение (mu=50, sigma=10) + random.gauss(50, 10), + + # 3. Бета-распределение (alpha=2, beta=5) + random.betavariate(2, 5), + + # 4. Гамма-распределение (alpha=3, beta=2) + random.gammavariate(3, 2) +] +random_values +[5.892656838759088, 55.47961646339978, 0.5314696353281997, 2.163791803055314] +distributions = [ + "Равномерное [0, 10)", + "Нормальное (μ=50, σ=10)", + "Бета (α=2, β=5)", + "Гамма (α=3, β=2)" +] +list(zip(random_values, distributions)) +[(5.892656838759088, 'Равномерное [0, 10)'), (55.47961646339978, 'Нормальное (μ=50, σ=10)'), (0.5314696353281997, 'Бета (α=2, β=5)'), (2.163791803055314, 'Гамма (α=3, β=2)')] +``` +## 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() #функция time возвращает время в секундах, прошедшее с начала эпохи, за которое обычно принимается 1.01.1970г. +c1 +1758211745.990668 +c2=time.time()-c1 #временной интервал в секундах, со времени ввода предыдущей инструкции +c2 +87.25691390037537 +dat=time.gmtime() #получение объекта класса struct_time, содержащего полную информацию о текущем времени. Эта функция возвращает, так называемое, «Всемирное координированное время» (UTC). Московское время MSK опережает UTC на 3 часа +dat +time.struct_time(tm_year=2025, tm_mon=9, tm_mday=18, tm_hour=16, tm_min=12, tm_sec=46, tm_wday=3, tm_yday=261, tm_isdst=0) +dat.tm_mon +9 +dat.tm_year +2025 +dat.tm_mday +18 +dat.tm_hour +16 +dat.tm_min +12 +dat.tm_sec +46 +dat.tm_wday #День недели - четверг (дни недели: 0=понедельник, 1=вторник, 2=среда, 3=четверг, 4=пятница, 5=суббота, 6=воскресенье) +3 +dat.tm_yday #День года - 261-й день в году (считая с 1 января = 1) +261 +dat.tm_isdst #Летнее время - не действует (0 = зимнее время, 1 = летнее время, -1 = неизвестно) +0 +``` +```py +time.localtime() #Получение местного времени +time.struct_time(tm_year=2025, tm_mon=9, tm_mday=18, tm_hour=19, tm_min=22, tm_sec=25, tm_wday=3, tm_yday=261, tm_isdst=0) +time.asctime() #Получение текущего времени, представление времени из кортежа в строку +'Thu Sep 18 19:26:35 2025' +time.ctime() #Преобразование времени в секундах, прошедшего с начала эпохи, в строку +'Thu Sep 18 19:28:56 2025' +time.sleep(3) #Прерывание работы программы на заданное время(3 секунды) +time_tuple = (2025, 9, 18, 16, 12, 46, 3, 261, 0) +time_obj = time.struct_time(time_tuple) +time_obj +time.struct_time(tm_year=2025, tm_mon=9, tm_mday=18, tm_hour=16, tm_min=12, tm_sec=46, tm_wday=3, tm_yday=261, tm_isdst=0) +seconds = time.mktime(time_obj) #Преобразование времени из типа кортежа или struct_time в число секунд с начала эпохи +seconds +1758201166.0 +back_to_time = time.localtime(seconds) #Обратное преобразование +back_to_time +time.struct_time(tm_year=2025, tm_mon=9, tm_mday=18, tm_hour=16, tm_min=12, tm_sec=46, tm_wday=3, tm_yday=261, tm_isdst=0) +``` +## 7. Графические функции. +```py +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, 0, 'время') +pylab.ylabel('сигнал') +Text(0, 0.5, 'сигнал') +pylab.show() #Отображение графика на экране +``` +![alt text]({58781A87-6633-474F-A77A-BE36643822E4}.png) +```py +X1=[12,6,8,10,7] +X2=[5,7,9,11,13] +pylab.plot(X1) +[] +pylab.plot(X2) +[] +pylab.show() +``` +![alt text]({32B82522-D8D5-43AA-9C7F-4991CE02A603}.png) +```py +# Данные для гистограмм и столбчатых диаграмм +grades = [85, 92, 78, 65, 90, 85, 88, 72, 95, 81, 85, 90, 78, 85, 92] +categories = ['A', 'B', 'C', 'D', 'F'] +values = [3, 7, 8, 2, 1] +pylab.hist(grades, bins=5, edgecolor='black', alpha=0.7, color='skyblue') +(array([1., 1., 3., 5., 5.]), array([65., 71., 77., 83., 89., 95.]), ) +pylab.title('Гистограмма распределения оценок') +Text(0.5, 1.0, 'Гистограмма распределения оценок') +pylab.xlabel('Оценки') +Text(0.5, 0, 'Оценки') +pylab.ylabel('Частота') +Text(0, 0.5, 'Частота') +pylab.grid(axis='y', alpha=0.75) +pylab.show() +``` +![alt text]({A5B2DC00-DB40-42EF-B410-DAA0781F2422}.png) +```py +pylab.bar(categories, values, color=['red', 'orange', 'yellow', 'green', 'blue'], alpha=0.7) + +pylab.title('Столбчатая диаграмма распределения по категориям') +Text(0.5, 1.0, 'Столбчатая диаграмма распределения по категориям') +pylab.xlabel('Категории') +Text(0.5, 0, 'Категории') +pylab.ylabel('Количество') +Text(0, 0.5, 'Количество') +pylab.grid(axis='y', alpha=0.75) +pylab.show() +``` +![alt text]({7D368B80-7126-4808-B3BC-84E476BAECC5}.png) +```py +# Данные для статистического анализа +data = [23, 45, 67, 34, 89, 56, 72, 41, 58, 64, 39, 51, 47, 62, 55] +import statistics +mean_value = statistics.mean(data) +median_value = statistics.median(data) +mode_value = statistics.mode(data) +stdev_value = statistics.stdev(data) +variance_value = statistics.variance(data) +quantiles_value = statistics.quantiles(data, n=4) +harmonic_mean_value = statistics.harmonic_mean(data) +pylab.hist(data, bins=6, edgecolor='black', alpha=0.7, color='lightgreen', label='Распределение данных') +(array([1., 3., 4., 4., 2., 1.]), array([23., 34., 45., 56., 67., 78., 89.]), ) +pylab.axvline(mean_value, color='red', linestyle='--', linewidth=2, label=f'Среднее: {mean_value:.2f}') + +pylab.axvline(median_value, color='blue', linestyle='--', linewidth=2, label=f'Медиана: {median_value}') + +pylab.axvline(mode_value, color='green', linestyle='--', linewidth=2, label=f'Мода: {mode_value}') + +pylab.title('Гистограмма данных со статистическими показателями') +Text(0.5, 1.0, 'Гистограмма данных со статистическими показателями') +pylab.xlabel('Значения') +Text(0.5, 0, 'Значения') +pylab.ylabel('Частота') +Text(0, 0.5, 'Частота') +pylab.legend() + +pylab.grid(alpha=0.3) +pylab.show() +``` +![alt text]({30B6F251-3FE2-4A0E-9F0D-99FBE95923B5}.png) diff --git a/TEMA4/{30B6F251-3FE2-4A0E-9F0D-99FBE95923B5}.png b/TEMA4/{30B6F251-3FE2-4A0E-9F0D-99FBE95923B5}.png new file mode 100644 index 0000000..8c438a1 Binary files /dev/null and b/TEMA4/{30B6F251-3FE2-4A0E-9F0D-99FBE95923B5}.png differ diff --git a/TEMA4/{32B82522-D8D5-43AA-9C7F-4991CE02A603}.png b/TEMA4/{32B82522-D8D5-43AA-9C7F-4991CE02A603}.png new file mode 100644 index 0000000..0f4f01d Binary files /dev/null and b/TEMA4/{32B82522-D8D5-43AA-9C7F-4991CE02A603}.png differ diff --git a/TEMA4/{58781A87-6633-474F-A77A-BE36643822E4}.png b/TEMA4/{58781A87-6633-474F-A77A-BE36643822E4}.png new file mode 100644 index 0000000..fbc28ce Binary files /dev/null and b/TEMA4/{58781A87-6633-474F-A77A-BE36643822E4}.png differ diff --git a/TEMA4/{7D368B80-7126-4808-B3BC-84E476BAECC5}.png b/TEMA4/{7D368B80-7126-4808-B3BC-84E476BAECC5}.png new file mode 100644 index 0000000..5c21df8 Binary files /dev/null and b/TEMA4/{7D368B80-7126-4808-B3BC-84E476BAECC5}.png differ diff --git a/TEMA4/{A5B2DC00-DB40-42EF-B410-DAA0781F2422}.png b/TEMA4/{A5B2DC00-DB40-42EF-B410-DAA0781F2422}.png new file mode 100644 index 0000000..c1d68ff Binary files /dev/null and b/TEMA4/{A5B2DC00-DB40-42EF-B410-DAA0781F2422}.png differ