Skip to content

Commit c498f6d

Browse files
committed
update
Signed-off-by: Kirill Mokevnin <mokevnin@gmail.com>
1 parent c653e8a commit c498f6d

File tree

20 files changed

+71
-220
lines changed

20 files changed

+71
-220
lines changed
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
21
Посчитайте программно (а не в голове) минимальное число среди 3, 10, 22, -3, 0 — и выведите его на экран. Воспользуйтесь функцией `min()`, которая работает аналогично `max()`.
Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,32 @@
1+
У некоторых функций есть особенность — они принимают переменное число аргументов. Это не связано со значениями по умолчанию, как в случае с `round()`. Речь идёт о том, что количество передаваемых данных не ограничено фиксированным числом.
12

2-
В этом уроке мы разберем функцию `max()`, а также посмотрим, как она работает в Python.
3-
4-
У некоторых функций есть особенность — они принимают переменное число параметров. И мы говорим не о значениях по умолчанию. Посмотрите на этот пример:
3+
Рассмотрим функцию `max()`. Она находит наибольшее значение из переданных данных.
54

65
```python
7-
max(1, 10, 3) # 10
6+
print(max(1, 10, 3)) # => 10
7+
print(max(1, -3, 2, 3, 2)) # => 3
88
```
99

10-
В примере выше функция `max()` находит максимальное значение среди переданных параметров. Чтобы узнать, сколько параметров можно передавать на вход, нужно изучить [документацию](https://docs.python.org/3/library/functions.html?highlight=pow#max) этой функции. Там мы увидим такую конструкцию:
10+
В документации можно встретить несколько вариантов описания `max()`. Чтобы упростить понимание, сосредоточимся на одном, который нам сейчас нужен:
1111

1212
```python
13-
max(arg1, arg2, *args[, key])
13+
max(arg1, arg2, /, *args, key=None)
1414
```
1515

16-
Это значит, что `max()` принимает на вход два параметра и больше:
16+
Это значит:
17+
- функция требует как минимум два значения (`arg1` и `arg2`);
18+
- дальше можно передавать ещё сколько угодно значений (`*args`);
19+
- функция вернёт наибольшее из переданных.
20+
21+
Если среди аргументов есть несколько одинаковых максимальных значений, возвращается первый из них.
1722

1823
```python
19-
max(1, -3, 2, 3, 2) # 3
24+
print(max(5, 5, 2)) # => 5
2025
```
2126

22-
Если функция найдет несколько параметров с максимальным значением, значит, она вернет самый первый из них.
27+
Аналогично работает функция `min()`, только она ищет наименьшее значение:
28+
29+
```python
30+
print(min(1, 10, 3)) # => 1
31+
print(min(1, -3, 2, 3, 2)) # => -3
32+
```

modules/35-calling-functions/270-deterministic/ru/EXERCISE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
Функция `random()` возвращает случайное число от 0 до 1 с большим количеством знаков после запятой. Реализуйте код, который выводит на экран случайное целое число в диапазоне от 0 до 10. Для этой задачи вам понадобится функция `random()` и функция [round()](https://docs.python.org/3/library/functions.html#round), которая округляет переданное ей значение
32

43
```python
@@ -8,4 +7,5 @@ round(2.320000789855705) # 2
87
Попробуйте решить это задание в одну строчку
98

109
## Алгоритм
10+
1111
Так как функция `random()` возвращает числа в диапазоне от 0 до 1, то чтобы получить числа от 0 до 10, нам нужно выполнить умножение на 10. Затем получившиеся число округляется и так мы получаем то, что нужно.
Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1+
У функций в любом языке программирования есть фундаментальные свойства. Эти свойства помогают понимать, как функция будет вести себя в разных ситуациях, как её тестировать и где применять. Одно из таких свойств — **детерминированность**.
12

2-
У функций внутри каждого языка программирования есть фундаментальные свойства. Эти свойства помогают прогнозировать поведение функций, способы их тестирования и место использования. К таким свойствам относится детерминированность.
3-
4-
Детерминированная функция возвращает один и тот же результат для одинаковых входных параметров. Например, детерминированной можно назвать функцию, которая считает количество символов:
3+
**Детерминированная функция** всегда возвращает один и тот же результат при одинаковых входных данных. Например, детерминированной можно назвать функцию, которая считает количество символов:
54

65
```python
76
len('hexlet') # 6
@@ -11,9 +10,11 @@ len('wow') # 3
1110
len('wow') # 3
1211
```
1312

14-
Можно бесконечно вызывать эту функцию и передавать туда значение `'hexlet'` — она всегда вернет `6`.
13+
Функцию `len()` можно вызывать бесконечно с одним и тем же аргументом, и она всегда вернёт один и тот же результат.
14+
15+
## Недетерминированные функции
1516

16-
Посмотрим и обратный случай — недетерминированные функции. Например, к этой категории относится функция, которая возвращает случайное число: у одного и того же входа мы получим всегда разный результат. Если хотя бы один из миллиона вызовов функция вернет другой результат, она считается недетерминированной. Это работает и в том случае, если параметры не принимаются:
17+
Есть и обратные примеры**недетерминированные функции**. Это функции, которые могут возвращать разные результаты при одинаковых входных данных или при их отсутствии (функции без параметров). Хороший пример — функция, которая возвращает случайное число:
1718

1819
```python
1920
# Синтаксис импортов будет изучаться позже на Хекслете
@@ -24,4 +25,14 @@ random() # 0.09856613113197676
2425
random() # 0.8839904367241888
2526
```
2627

27-
Детерминированность — это важное свойство функции, так как она влияет на многие аспекты. Например, детерминированные функции удобны в работе — их легко оптимизировать и тестировать. Если возможно, то лучше сделать функцию детерминированной.
28+
У этой функции нет аргументов, но её результат каждый раз разный. Если хотя бы один вызов среди миллионов даст другой результат, функция считается недетерминированной.
29+
30+
## Почему это важно
31+
32+
Детерминированность влияет на то, как мы работаем с функциями:
33+
34+
- детерминированные функции легко тестировать и предсказывать;
35+
- их проще оптимизировать и использовать повторно;
36+
- недетерминированные функции сложнее проверять, потому что результат меняется.
37+
38+
Поэтому там, где это возможно, лучше стремиться к тому, чтобы функция была детерминированной.

modules/35-calling-functions/900-stdlib/Makefile

Lines changed: 0 additions & 2 deletions
This file was deleted.

modules/35-calling-functions/900-stdlib/description.es.yml

Lines changed: 0 additions & 38 deletions
This file was deleted.

modules/35-calling-functions/900-stdlib/en/EXERCISE.md

Lines changed: 0 additions & 8 deletions
This file was deleted.

modules/35-calling-functions/900-stdlib/en/README.md

Lines changed: 0 additions & 14 deletions
This file was deleted.

modules/35-calling-functions/900-stdlib/en/data.yml

Lines changed: 0 additions & 5 deletions
This file was deleted.

modules/35-calling-functions/900-stdlib/es/EXERCISE.md

Lines changed: 0 additions & 8 deletions
This file was deleted.

0 commit comments

Comments
 (0)