Skip to content

Commit 457a3d8

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

4 files changed

Lines changed: 123 additions & 19 deletions

File tree

modules/10-basics/10-hello-world/ru/README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,7 @@ print("Хекслет - школа программирования")
2929
Программирование — это не просто текст на английском. Код состоит из команд, и каждая из них должна быть написана в определённой форме. Для этого используются не только буквы, но и специальные символы: кавычки `'` и `"`, скобки `()`, запятая `,`, восклицательный знак `!`. Они не случайные — каждый символ имеет своё значение. Если пропустить знак или перепутать его, программа не запустится.
3030

3131
Даже небольшое отличие, например одна лишняя буква или другой знак, может привести к тому, что программа не будет работать. Это относится и к такому понятию, как регистр — различию между большими и маленькими буквами. Если в обычном тексте `Привет` и `привет` выглядят одинаково, то для Python (как и других языков) это разные слова. Поэтому `print`, `Print` и `PRINT` — это разные команды, и сработает только первый вариант.
32+
33+
## Где практиковаться
34+
35+
Обучение программированию происходит эффективнее, когда помимо чтении теории и выполнении заданий, вы будете практиковаться вызывая код в специальной среде, где можно выполнять код на Python построчно. Регулярно повторяйте все что вы видите в уроке [тут](https://pyodide.org/en/stable/console.html)
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
2-
В коде программы определены две переменные, содержащие имена компаний. Посчитайте их общую длину в символах и выведите ее на экран.
1+
В коде программы определены две переменные, содержащие имена компаний. Посчитайте их общую длину в символах используя функцию `len()` и выведите ее на экран.
Lines changed: 118 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,135 @@
1+
Программирование нужно для того, чтобы выполнять самые разные операции. Иногда это простые действия, например сложение чисел или объединение строк. Но чаще речь идёт о сложных процессах: перевод денег со счёта на счёт, оформление заказа в интернет-магазине, расчёт налогов или подготовка отчёта.
12

2-
Сложение, конкатенация, нахождение остатка от деления и остальные рассмотренные операции — это базовые возможности языков программирования. Математика не ограничена арифметикой, кроме нее есть и другие разделы со своими операциями ⎯ например, геометрия. То же самое касается и строк: их можно переворачивать, менять регистр букв, удалять лишние символы — и это только самое простое.
3+
Такие операции невозможно выразить одной командой. За действием вроде «перевести деньги» может скрываться десятки, сотни и даже тысячи строк кода: проверка баланса, списание суммы, учёт комиссии, обновление базы данных, отправка уведомления пользователю.
34

4-
Еще на более высоком уровне есть прикладная логика конкретного приложения. Программы списывают деньги, считают налоги, формируют отчеты. Количество подобных операций бесконечно и индивидуально для каждой программы. И их нужно уметь выражать в коде.
5+
Чтобы управлять этим кодом и не теряться в деталях, используют функции. Функция объединяет блок кода в единое целое, прячет реализацию и позволяет сосредоточиться на смысле. Для программиста достаточно вызвать функцию и доверить ей всю внутреннюю работу.
56

6-
Чтобы выразить любую произвольную операцию, в программировании существует понятие **функция**. Функции бывают встроенные и добавленные программистом. С одной встроенной функцией мы уже знакомы ⎯ это `print()`.
7+
Представим функцию, которая переводит деньги с одного счёта на другой. В реальности внутри неё может быть сотни строк кода, но мы этого не видим. Снаружи всё выглядит как одна простая команда:
78

8-
Функции — одна из ключевых конструкций в программировании. Без них невозможно сделать практически ничего. Знакомство с ними нужно начинать как можно раньше, так как весь дальнейший материал оперирует функциями по максимуму. Сначала мы научимся пользоваться уже созданными функциями, а потом научимся создавать собственные.
9+
```python
10+
transfer_money('Alice', 'Bob', 100)
11+
```
12+
13+
Эта строка означает: вызвать функцию с именем `transfer_money()`, передать ей три значения — отправителя `Alice`, получателя `Bob` и сумму `100`.
14+
15+
Вот ещё несколько примеров вызова функций, которые мы могли бы реализовать. У каждой функции своё имя и свой набор данных для работы.
16+
17+
```python
18+
# Да-да, print тоже функция
19+
print('Хекслет!')
20+
21+
# Отправка письма пользователю
22+
send_email('bob@example.com', 'Добро пожаловать!')
23+
24+
# Вычисление налога с указанной суммы
25+
calculate_tax(5000, 'Florida')
26+
27+
# Проверка, есть ли пользователь в системе
28+
is_registered('Alice')
29+
30+
# Получение случайного числа от 1 до 10
31+
random_number(1, 10)
32+
33+
# Создание резервной копии базы данных
34+
backup_database()
35+
```
936

10-
Начнем с простых функций для работы над строками.
37+
## Как устроен вызов функции
1138

12-
Функция `len()` считает количество символов в строке. Ниже пример ее вызова:
39+
Вызов функции всегда выглядит одинаково: сначала пишется её **имя**, затем круглые **скобки**. Скобки показывают, что это именно вызов, а не просто имя. Так мы понимаем, что перед нами функция, а не переменная.
40+
41+
Внутри скобок указываются **аргументы** — данные, которые функция получает для работы. Их может быть несколько, один или вовсе ни одного.
42+
43+
```python
44+
# имя функции — transfer_money
45+
# аргументы — 'Alice', 'Bob', 100
46+
transfer_money('Alice', 'Bob', 100)
47+
48+
# имя функции — backup_database
49+
# аргументов нет, скобки остаются пустыми
50+
backup_database()
51+
```
52+
53+
## Откуда берутся функции?
54+
55+
Функции бывают двух видов: встроенные в язык (built-in) и созданные программистами.
56+
57+
**Встроенные функции** — это те, что идут вместе с языком Python. Их можно использовать сразу, без дополнительных действий. Пример — функция `print()`, которая выводит данные на экран:
1358

1459
```python
15-
# Вызов функции len с параметром 'Hello!'
16-
result = len('Hello!')
17-
print(result) # => 6
60+
print('Hello, World!')
61+
```
62+
63+
**Функции, определяемые программистами**, создаются тогда, когда нужно оформить свою логику в отдельный блок. Такую функцию можно назвать любым именем и использовать в коде так же, как встроенные. Мы научимся этому позже.
64+
65+
Кроме того, существуют функции, которые находятся в отдельных библиотеках. Чтобы ими пользоваться, их нужно подключать с помощью механизма импорта. Подробно импорт мы пока не разбираем, но в двух словах: это способ «подключить» внешний набор функций и сделать их доступными в программе.
66+
67+
## Функция с одним параметром
68+
69+
Одной из самых часто используемых встроенных функций является `len()`. Она возвращает размер переданных данных, если это строка, то длину строки, то есть количество символов:
70+
71+
```python
72+
message = 'Hello!'
73+
count = len(message)
74+
print(count) # => 6
75+
```
76+
77+
Здесь в строке `'Hello!'` шесть символов, поэтому вызов `len(message)` вернёт число `6`.
78+
79+
## Возврат значения
80+
81+
Возврат значения — один из ключевых принципов работы функций. Благодаря ему мы можем соединять результаты разных действий и строить более сложную логику. Если функция возвращает значение, то мы можем сохранить его в переменную, передать в другую функцию или использовать в вычислениях. Именно так работает `len()`: она считает количество элементов и отдаёт результат «наружу».
82+
83+
```python
84+
message1 = 'Hello!'
85+
length1 = len(message1) # сохраняем результат
86+
87+
message2 = 'World!'
88+
length2 = len(message2)
89+
90+
combined_length = length1 + length2 # используем результат в выражении
91+
print(combined_length)
92+
```
93+
94+
Если бы `len()` сразу печатала результат на экран (как делает `print()`), то мы бы увидели число, но не смогли бы его использовать:
95+
96+
```python
97+
# воображаемая функция, которая только печатает результат
98+
fake_len('Hello!') # напечатает 6
99+
100+
# но дальше это число уже недоступно
101+
# мы не можем его прибавить, сохранить или сравнить
102+
result = fake_len('Hello!') # здесь в result ничего нет
103+
```
104+
105+
Вот почему возврат значения — настолько важная концепция. Он позволяет связывать функции между собой: одни функции возвращают данные, другие используют их в своей работе. Именно так из маленьких шагов строятся большие и сложные программы.
106+
107+
## Функция с несколькими параметрами
108+
109+
Некоторые функции принимают сразу несколько данных для работы. Пример — встроенная функция `pow()`. Она возводит число в степень: первый параметр — это основание, второй — показатель степени.
110+
111+
```python
112+
# 2 возводим в 3-ю степень: 2 * 2 * 2
113+
result = pow(2, 3)
114+
print(result) # => 8
115+
116+
# 5 во 2-й степени: 5 * 5
117+
print(pow(5, 2)) # => 25
18118
```
19119

20-
**Параметры или аргументы** — это информация, которую функция получает при вызове. На основе этой информации функция обычно вычисляет и выдает результат.
120+
Вызов функции с несколькими параметрами работает так же, как и с одним: имя функции, круглые скобки и перечисленные внутри аргументы через запятую.
21121

22-
Мы создали переменную `result` и указали интерпретатору конкретное действие: надо записать в нее результат, который возвращается функцией `len()` при ее вызове. В этом смысле функции подобны операциям — они всегда возвращают результат своей работы. Запись `len('Hello!')` означает, что вызывается функция с именем *len*, в которую передали параметр `'Hello!'`. Функция `len()` считает длину той строки, которую ей передали.
122+
## Параметры и аргументы
23123

24-
Вызов функции всегда обозначается скобками `()`, которые идут сразу за именем функции. В скобках может быть любое количество параметров, а иногда ни одного. Количество зависит от используемой функции.
124+
Часто вместе с функциями упоминают два слова: **параметры** и **аргументы**. Они связаны, но не одно и то же.
25125

26-
Возьмем для примера функцию `pow()`, которая возводит указанное число в нужную степень. Она принимает на вход два параметра: берет первый параметр и возводит его в степень, переданную вторым параметром:
126+
- **Параметры** — это имена «мест для данных», которые ожидает функция.
127+
- **Аргументы** — это конкретные значения, которые мы передаём в эти места при вызове.
27128

28129
```python
29-
result = pow(2, 3) # 2 * 2 * 2
30-
print(result) # => 8
130+
# функция pow ожидает два параметра: основание и степень
131+
# при вызове мы передаём им аргументы — числа 2 и 3
132+
print(pow(2, 3)) # => 8
31133
```
32134

33-
Мы разобрались, как пользоваться простыми встроенными функциями. Но это не весь их перечень. Больше о функциях вы узнаете в следующих уроках
135+
Таким образом, параметры описывают, какие данные нужны функции, а аргументы — это фактические значения, которые мы передаём в момент вызова. Запоминать это не обязательно, скорее, это пригодится при чтении англоязычной литературы.

modules/35-calling-functions/120-function-signature/ru/README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
Функция `pow()` возводит число в степень. Она принимает два параметра: **какое число возводить** и **в какую степень возводить**. Если вызывать `pow()` без параметров, то Python выдаст следующее: `"TypeError: pow expected at least 2 arguments, got 0"`. Интерпретатор сообщает, что функция ожидает два параметра, а вы вызвали ее без них.
32

43
Функция `pow()` всегда имеет два обязательных параметра, поэтому ее невозможно вызвать с другим количеством параметров.

0 commit comments

Comments
 (0)