Пользователь № 11 аудитории К-522 2 недель назад
Родитель c29ce51b81
Сommit 80b9b9d9de

@ -0,0 +1,272 @@
# Отчет по теме 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)) #определение типа
<class 'float'>
type(round(123.456,1))
<class 'float'>
round(123.456)
123
type(round(123.456))
<class 'int'>
```
## 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)
<class 'list'>
ff=zip(gg,qq)
ff
<zip object at 0x00000151590F1740>
tuple(ff)
((76, 'Криви'), (85, 'Заленкина'), (94, 'Капитонов'), (103, 'Киреев'))
ff[1] # нельзя обратиться по индексу
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
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)
<class 'float'>
```
## 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](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)
<class 'str'>
t1=time.ctime(); type(t1)
<class 'str'>
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, содержащий ряд полезных вычислительных функций и графических возможностей.
Импорт модуля инструкции

Двоичные данные
TEMA4/ris/f1.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.3 KiB

Двоичные данные
TEMA4/ris/ris1.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 20 KiB

Двоичные данные
TEMA4/ris/ris2.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 26 KiB

Двоичные данные
TEMA4/ris/ris3.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 15 KiB

Двоичные данные
TEMA4/ris/ris4.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 6.9 KiB

Двоичные данные
TEMA4/ris/ris5.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 5.1 KiB

@ -0,0 +1,51 @@
# Общее контрольное задание по теме 4
Криви Анастасия А-02-23
## Задание
Реализовать, записать в текстовый файл и проанализировать результаты последовательности инструкций, выполняющих следующие действия:
1. Напишите и исполните единое выражение, реализующее последовательное выполнение следующих операций: вычисление фазы комплексного числа 0.2+0.8j, округление результата до двух знаков после запятой, умножение полученного значения на 20, получение кортежа из двух значений: округленное вниз значение от деления результата на 3 и остатка от этого деления.
2. Создайте объект класса struct_time с временными параметрами для текущего московского времени. Создайте строку с текущим часом и минутами.
3. Создайте список с элементами – названиями дней недели. Сделайте случайную выборку из этого списка с тремя днями недели.
4. Напишите инструкцию случайного выбора числа из последовательности целых чисел от 14 до 32 с шагом 3.
5. Сгенерируйте нормально распределенное число N с математическим ожиданием 15 и стандартным отклонением 4 и округлите его до целого значения. Создайте список с N элементами – случайно выбранными буквами латинского алфавита.
6. Напишите инструкцию для определения временного интервала в минутах, прошедшего с момента предыдущего (из п.2) определения временных параметров.
## Решение
1. Напишите и исполните единое выражение, реализующее последовательное выполнение следующих операций: вычисление фазы комплексного числа 0.2+0.8j, округление результата до двух знаков после запятой, умножение полученного значения на 20, получение кортежа из двух значений: округленное вниз значение от деления результата на 3 и остатка от этого деления
```py
import cmath
divmod(round(cmath.phase(0.2+0.8j),2)*20,3)
(8.0, 2.6000000000000014)
```
2. Создайте объект класса struct_time с временными параметрами для текущего московского времени. Создайте строку с текущим часом и минутами.
```py
MosTime = time.gmtime()
print("Current time: {}:{}".format(MosTime.tm_hour + 3, MosTime.tm_min))
Current time: 10:02
```
3. Создайте список с элементами – названиями дней недели. Сделайте случайную выборку из этого списка с тремя днями недели.
```
D = ['ПН', 'ВТ', 'СР','ЧТ', 'ПТ', 'СБ', 'ВС']
random.sample(D,3)
['СБ', 'ПТ', 'ЧТ']
```
4. Напишите инструкцию случайного выбора числа из последовательности целых чисел от 14 до 32 с шагом 3.
```py
random.choice(range(14, 33, 3))
20
```
5. Сгенерируйте нормально распределенное число N с математическим ожиданием 15 и стандартным отклонением 4 и округлите его до целого значения. Создайте список с N элементами – случайно выбранными буквами латинского алфавита.
```py
N = math.floor(random.gauss(15, 4)); N
15
l=random.sample(string.ascii_letters, N); l
['P', 'H', 'X', 'B', 's', 'T', 'z', 'N', 'E', 'l', 'I', 'w', 'o', 'u', 'C']
```
6.Напишите инструкцию для определения временного интервала в минутах, прошедшего с момента предыдущего (из п.2) определения временных параметров.
```py
t = round(time.time() - time.mktime(localTime))
t // 60
6 minutes
```
Загрузка…
Отмена
Сохранить