# Отчет по теме 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)) #определение типа type(round(123.456,1)) round(123.456) 123 type(round(123.456)) ``` ## 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) 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 Функция eval Вычисление значения выражения, корректно записанного на языке Python и представленного в виде символьной строки ```py fff=float(input('коэффициент усиления=')); dan=eval('5*fff-156') коэффициент усиления=1 dan -151.0 type(dan) ``` ## 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 ``` Вычисление значения функции: ![I](ris/f1.png) ```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) t1=time.ctime(); type(t1) 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) [] pylab.title('Первый график') Text(0.5, 1.0, 'Первый график') pylab.xlabel('время') Text(0.5, 0, 'время') pylab.ylabel('сигнал') Text(0, 0.5, 'сигнал') pylab.show() ``` ![2](ris/ris1.png) ```py X1=[12,6,8,10,7]; X2=[5,7,9,11,13] pylab.plot(X1) [] pylab.plot(X2) [] pylab.show() ``` ![3](ris/ris2.png) ```py # Круговая диаграмма: region=['Центр','Урал','Сибирь','Юг'] naselen=[65,12,23,17] pylab.pie(naselen,labels=region) ([, , , ], [Text(-0.1910130855889933, 1.083288512416601, 'Центр'), Text(-0.8613283319035216, -0.6841882085072037, 'Урал'), Text(0.04429273729355889, -1.0991078898011077, 'Сибирь'), Text(0.9873752043868569, -0.4848610169543564, 'Юг')]) pylab.show() ``` ![4](ris/ris3.png) ```py c1 = [10,1,1000,843,2837, 34,34,65]; c2 = [10,51046,54,46,1, 1535, 7, 12435] plt.bar(c1, c2) pylab.show() ``` ![5](ris/ris4.png) ```py x1 = ['f', 'c', 'y'] x2 = [12, 4, 24] plt.bar(x1, x2) pylab.show() ``` ![6](ris/ris5.png) ## 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. Завершили сеанс работы