форкнуто от main/python-labs
				
			Сравнить коммиты
	
		
			2 Коммитов 
		
	
	
		
			6140763048
			...
			1629e18087
		
	
	| Автор | SHA1 | Дата | 
|---|---|---|
|  | 1629e18087 | 1 неделю назад | 
|  | d2376df544 | 1 неделю назад | 
| После Ширина: | Высота: | Размер: 29 KiB | 
| После Ширина: | Высота: | Размер: 29 KiB | 
| После Ширина: | Высота: | Размер: 17 KiB | 
| После Ширина: | Высота: | Размер: 19 KiB | 
| После Ширина: | Высота: | Размер: 24 KiB | 
| @ -0,0 +1,305 @@ | ||||
| # Отчет по теме 3 | ||||
| Бережков Дмитрий, А-01-23 | ||||
| ## 1.Начало работы, настройка текущего каталога | ||||
| ```py | ||||
| >>> import os | ||||
| >>> os.chdir('C:\\MPEI\\PO_ASY\\BerezhkovGit\\python-labs\\Tema4') | ||||
| ``` | ||||
| ## 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,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) | ||||
| >>> 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] | ||||
| ``` | ||||
| Объект с какими значениями получится в этом случае? Каковы границы диапазона? Какой шаг? | ||||
| 
 | ||||
| Значения: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22] | ||||
| 
 | ||||
| Границы: [0, 23) | ||||
| 
 | ||||
| Шаг: 1 | ||||
| 
 | ||||
| 2.3 Функция zip: | ||||
| ```py | ||||
| >>> qq=['Berezhkov','Stepanischev','Tabolin','Krishtul'] | ||||
| >>> ff=zip(gg,qq) | ||||
| >>> fff = tuple(ff) | ||||
| >>> print(fff) | ||||
| ((76, 'Berezhkov'), (85, 'Stepanischev'), (94, 'Tabolin'), (103, 'Krishtul')) | ||||
| >>> print(len(fff)) | ||||
| 4 | ||||
| >>> len(gg), len(qq) | ||||
| (6, 4) | ||||
| >>> ff[0] | ||||
| Traceback (most recent call last): | ||||
|   File "<pyshell#34>", line 1, in <module> | ||||
|     ff[0] | ||||
| TypeError: 'zip' object is not subscriptable | ||||
| ``` | ||||
| Невозможно обратиться с указанием индекса, потому что объект является итерируемым. | ||||
| 
 | ||||
| 2.4  Функция eval:  | ||||
| ```py | ||||
| >>> fff=float(input('коэффициент усиления=')); dan=eval('5*fff-156') | ||||
| коэффициент усиления=3 | ||||
| >>> dan | ||||
| -141.0 | ||||
| ``` | ||||
| 2.5 Функция exec: | ||||
| ```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(-13) | ||||
| 13 | ||||
| >>> pow(2,4) | ||||
| 16 | ||||
| >>> max(42,54,33) | ||||
| 54 | ||||
| >>> min(1,3,5) | ||||
| 1 | ||||
| >>> sum([1,2,3]) | ||||
| 6 | ||||
| >>> divmod(5,3) | ||||
| (1, 2) | ||||
| >>>  | ||||
| >>> len(range(9)) | ||||
| 9 | ||||
| >>> r = map(lambda x: round(x) * (-1), [12.1245, 14.125234, 534.222]) | ||||
| >>> list(r) | ||||
| [-12, -14, -534] | ||||
| ``` | ||||
| ## 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!. | ||||
| 
 | ||||
|     Raise a ValueError if x is negative or non-integral. | ||||
| 
 | ||||
| >>> math.factorial(5) | ||||
| 120 | ||||
| ``` | ||||
| 3.1 Функции sin, acos, degrees, radians, exp, log, log10, sqrt, ceil, floor, pi: | ||||
| ```py | ||||
| >>> math.sin(90) | ||||
| 0.8939966636005579 | ||||
| >>> math.acos(0) | ||||
| 1.5707963267948966 | ||||
| >>> math.degrees(math.pi) | ||||
| 180.0 | ||||
| >>> math.radians(180) | ||||
| 3.141592653589793 | ||||
| >>> math.exp(4) | ||||
| 54.598150033144236 | ||||
| >>> math.log(10) | ||||
| 2.302585092994046 | ||||
| >>> math.log10(100) | ||||
| 2.0 | ||||
| >>> math.sqrt(16) | ||||
| 4.0 | ||||
| >>> math.ceil(3.14) | ||||
| 4 | ||||
| >>> math.floor(3.14) | ||||
| 3 | ||||
| >>> math.pi | ||||
| 3.141592653589793 | ||||
| ``` | ||||
| 3.2 Вычисление значения функции sin(2π/7+e0.23 ): | ||||
| ```py | ||||
| >>> 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.0 до 1.0 | ||||
| 0.022635313373460364 | ||||
| random.uniform(5, 15) # вещественное число от 5.0 до 15.0 | ||||
| 5.363612111162993 | ||||
| random.randint(1, 100) # целое число от 1 до 100 | ||||
| 2 | ||||
| random.gauss(0, 1) # mu - среднее значение, sigma - стандартное отклонение | ||||
| 0.8104264223845308 | ||||
| random.choice([1, 2, 3, 4]) # случайный выбор элемента из списка, кортежа, строки и т.д. | ||||
| 1 | ||||
| Num = [1, 2, 3, 4] | ||||
| random.shuffle(Num) | ||||
| Num | ||||
| [2, 1, 4, 3] | ||||
| random.sample(Num, 2) # случайный выбор двух элементов из Num | ||||
| [3, 1] | ||||
| random.betavariate(2, 5) # случайное число с плавающей точкой на основе бета-распределения | ||||
| 0.3506592878950909 | ||||
| random.gammavariate(2, 1) # случайное число с плавающей точкой на основе гамма-распределения | ||||
| 3.755676054491517 | ||||
| ``` | ||||
| ## 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() | ||||
| >>> c2=time.time()-c1 | ||||
| >>> c1 | ||||
| 1761120933.7341516 | ||||
| >>> c2 | ||||
| 5.980855703353882 | ||||
| >>> dat=time.gmtime() | ||||
| >>> dat | ||||
| time.struct_time(tm_year=2025, tm_mon=10, tm_mday=22, tm_hour=8, tm_min=16, tm_sec=5, tm_wday=2, tm_yday=295, tm_isdst=0) | ||||
| >>> dat.tm_mon | ||||
| 10 | ||||
| >>> time.asctime((2025, 10, 13, 20, 13, 54, 1, 345, 0)) #год, месяц, день, час, минута, секунда, день недели, день года, летнее время | ||||
| 'Tue Oct 13 20:13:54 2025' | ||||
| >>> time.ctime(time.time()) | ||||
| 'Wed Oct 22 11:19:57 2025' | ||||
| >>> time.mktime((2025, 12, 25, 15, 30, 0, 0, 0, 0)) | ||||
| 1766665800.0 | ||||
| ``` | ||||
| ## 7. Графические функции. | ||||
| ```py | ||||
| >>> import pylab | ||||
| >>> x=list(range(-3,55,4)) | ||||
| >>> t=list(range(15)) | ||||
| >>> pylab.plot(t,x)  #Создание графика в оперативной памяти | ||||
| [<matplotlib.lines.Line2D object at 0x000001890FC94910>] | ||||
| >>> pylab.title('Первый график') | ||||
| Text(0.5, 1.0, 'Первый график') | ||||
| >>> pylab.xlabel('время') | ||||
| Text(0.5, 0, 'время') | ||||
| >>> pylab.ylabel('сигнал') | ||||
| Text(0, 0.5, 'сигнал') | ||||
| >>> pylab.show() #Отображение графика на экране | ||||
| ``` | ||||
| Отображение графика: | ||||
| <image src="figure1.png"> | ||||
| 
 | ||||
| ```py | ||||
| >>> X1=[12,6,8,10,7]; X2=[5,7,9,11,13] | ||||
| >>> pylab.plot(X1) | ||||
| [<matplotlib.lines.Line2D object at 0x000001890FD35450>] | ||||
| >>> pylab.plot(X2) | ||||
| [<matplotlib.lines.Line2D object at 0x000001890FD35590>] | ||||
| >>> pylab.show() | ||||
| ``` | ||||
| Отображение графика: | ||||
| <image src="figure2.png"> | ||||
| 
 | ||||
| ```py | ||||
| >>> region=['Центр','Урал','Сибирь','Юг']  #Метки для диаграммы | ||||
| >>> naselen=[65,12,23,17]  # Значения для диаграммы | ||||
| >>> pylab.pie(naselen,labels=region) #Создание диаграммы в памяти | ||||
| ([<matplotlib.patches.Wedge object at 0x000001890E333E00>, <matplotlib.patches.Wedge object at 0x000001890F4DF110>, <matplotlib.patches.Wedge object at 0x000001890F4DF4D0>, <matplotlib.patches.Wedge object at 0x000001890F4DF750>], [Text(-0.191013134139045, 1.0832885038559115, 'Центр'), Text(-0.861328292412156, -0.6841882582231001, 'Урал'), Text(0.04429273995539947, -1.0991078896938387, 'Сибирь'), Text(0.9873750693480946, -0.48486129194837324, 'Юг')]) | ||||
| >>> pylab.show()  #Отображение диаграммы | ||||
| ``` | ||||
| Отображение диаграммы: | ||||
| <image src="figure3.png"> | ||||
| 
 | ||||
| ```py | ||||
| >>> pylab.bar(region, naselen) | ||||
| <BarContainer object of 4 artists> | ||||
| >>> pylab.title('Население по регионам') | ||||
| Text(0.5, 1.0, 'Население по регионам') | ||||
| >>> pylab.ylabel('Население (млн)') | ||||
| Text(0, 0.5, 'Население (млн)') | ||||
| >>> pylab.show() | ||||
| ``` | ||||
| Отбражение диаграммы: | ||||
| <image src="figure4.png"> | ||||
| 
 | ||||
| ```py | ||||
| >>> pylab.hist(naselen) | ||||
| (array([2., 0., 1., 0., 0., 0., 0., 0., 0., 1.]), array([12. , 17.3, 22.6, 27.9, 33.2, 38.5, 43.8, 49.1, 54.4, 59.7, 65. ]), <BarContainer object of 10 artists>) | ||||
| >>> pylab.title('Гистограмма распределения населения') | ||||
| Text(0.5, 1.0, 'Гистограмма распределения населения') | ||||
| >>> pylab.xlabel('Население (млн)') | ||||
| Text(0.5, 0, 'Население (млн)') | ||||
| >>> pylab.ylabel('Частота') | ||||
| Text(0, 0.5, 'Частота') | ||||
| >>> pylab.show() | ||||
| ``` | ||||
| Отображение гистограммы: | ||||
| <image src="figure5.png"> | ||||
| ## 8. Статистический модуль statistics. | ||||
| ```py | ||||
| >>> import statistics | ||||
| >>> numbers = [1,2,3,4,5,6,7,8,9] | ||||
| >>> statistics.mean(numbers) | ||||
| 5 | ||||
| >>> statistics.median(numbers) | ||||
| 5 | ||||
| >>> a = [-1,-2,-3,-4,-5,-6,-7,-8,-9] | ||||
| >>> statistics.correlation(numbers, a) | ||||
| -1.0 | ||||
| ``` | ||||
					Загрузка…
					
					
				
		Ссылка в новой задаче