форкнуто от main/python-labs
Родитель
42c87ab613
Сommit
573a86dc11
@ -0,0 +1,151 @@
|
|||||||
|
# Отчёт по теме 4
|
||||||
|
|
||||||
|
Киреев Юрий А-02-23
|
||||||
|
|
||||||
|
## 1. Запуск интерактивной оболочки IDLE
|
||||||
|
|
||||||
|
В задании просят создать файл протокола, отчёт по лабораторной работе записан в файле report.md, который Вы сейчас читаете.
|
||||||
|
|
||||||
|
## 2. Стандартные функции
|
||||||
|
|
||||||
|
Они находятся в модуле builtins, который становится доступным без импорта при запуске среды IDLE.
|
||||||
|
|
||||||
|
### 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.
|
||||||
|
```
|
||||||
|
Попробуем использовать эту функцию на примерах:
|
||||||
|
```py
|
||||||
|
>>> round(123.456,1)
|
||||||
|
123.5
|
||||||
|
>>> round(123.456,0)
|
||||||
|
123.0
|
||||||
|
>>> type(round(123.456,1))
|
||||||
|
<class 'float'> #вещественный тип
|
||||||
|
>>> type(round(123.456,0))
|
||||||
|
<class 'float'>
|
||||||
|
```
|
||||||
|
Вычисления данной функции имеют вещественный тип, отличие в округлении.
|
||||||
|
Первое вычисление - округление до 1го знака после запятой, а второе - округление до запятой.
|
||||||
|
|
||||||
|
Попробуем выполнить такую инструкцию:
|
||||||
|
```py
|
||||||
|
>>> round(123.456)
|
||||||
|
123
|
||||||
|
>>> type(round(123.456))
|
||||||
|
<class 'int'> #целый тип
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2.2. Функция range
|
||||||
|
|
||||||
|
Пример
|
||||||
|
|
||||||
|
```py
|
||||||
|
>>> gg=range(76,123,9)
|
||||||
|
>>> gg
|
||||||
|
range(76, 123, 9)
|
||||||
|
```
|
||||||
|
Аргументами функции являются границы диапазона значений и шаг. При этом правая граница в создаваемую последовательность включена не будет.
|
||||||
|
Чтобы увидеть получившуюся последовательность чисел, его надо преобразовать, например, в список, обычным способом:
|
||||||
|
```py
|
||||||
|
>>> list(gg)
|
||||||
|
[76, 85, 94, 103, 112, 121]
|
||||||
|
```
|
||||||
|
Обратим внимание на возможность вызова функции range с одним аргументом:
|
||||||
|
```py
|
||||||
|
>>> range(23)
|
||||||
|
>>> range(0, 23)
|
||||||
|
>>> type(range(0, 23))
|
||||||
|
<class 'range'>
|
||||||
|
>>> list(range(0, 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 до 22, границы - от 0 до 23, где 23 - не включительно, шаг - 1.
|
||||||
|
Аргументами range(23) является граница и шаг 1.
|
||||||
|
|
||||||
|
### 2.3. Функция zip
|
||||||
|
|
||||||
|
Пример использования:
|
||||||
|
```py
|
||||||
|
>>> qq = ['Kireev', 'Bezhenar', 'Kuzmenko','Dobrovolska']
|
||||||
|
>>> ff=zip(gg,qq)
|
||||||
|
>>> ff
|
||||||
|
<zip object at 0x0000023822FEA700>
|
||||||
|
>>> tuple(ff)
|
||||||
|
((76, 'Kireev'), (85, 'Bezhenar'), (94, 'Kuzmenko'), (103, 'Dobrovolska'))
|
||||||
|
```
|
||||||
|
Здесь получается «итерируемый объект» класса zip, поэтому, чтобы увидеть результат вычисления функции, превратили его в кортеж.
|
||||||
|
В кортеже получилось 4 элемента, что является минимальным числом элементов из gg и qq.
|
||||||
|
|
||||||
|
К объекту zip нельзя обратиться по индексу поскольку он не является последовательностью.
|
||||||
|
```py
|
||||||
|
>>> ff[1]
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "<pyshell#25>", line 1, in <module>
|
||||||
|
ff[1]
|
||||||
|
TypeError: 'zip' object is not subscriptable
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2.4. Функция eval
|
||||||
|
|
||||||
|
Пример использования
|
||||||
|
```py
|
||||||
|
>>> fff=float(input('коэффициент усиления=')); dan=eval('5*fff-156')
|
||||||
|
коэффициент усиления=3.4
|
||||||
|
>>> dan
|
||||||
|
-139.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(-5) #Абсолютное значение
|
||||||
|
5
|
||||||
|
>>> pow(2,3) #Возведение в степень
|
||||||
|
8
|
||||||
|
>>> max(1,5,2,8) #Нахождение максимального значения
|
||||||
|
8
|
||||||
|
>>> min(1,5,2,8) #Нахождение минимального значения
|
||||||
|
1
|
||||||
|
>>> sum([1,5,2,8]) #Нахождение суммы
|
||||||
|
16
|
||||||
|
>>> divmod(15,4) #Нахождение частного и остатка от делния
|
||||||
|
(3, 3)
|
||||||
|
>>> len('Hello') #Нахождение длины объекта
|
||||||
|
5
|
||||||
|
>>> numbers = [1,2,3,4,5]
|
||||||
|
>>> string_numbers = list(map(str, numbers)) #map-применяет функцию (в данном случае str) к каждому элементу
|
||||||
|
>>> string_numbers
|
||||||
|
['1', '2', '3', '4', '5']
|
||||||
|
```
|
||||||
|
|
||||||
|
## 3. Функции из стандартного модуля math
|
||||||
|
|
||||||
|
Запустим модуль 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', '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', 'tan', 'tanh', 'tau', 'trunc', 'ulp']
|
||||||
|
```
|
||||||
|
|
||||||
Загрузка…
Ссылка в новой задаче