Skip to content

Commit 04decde

Browse files
committedApr 2, 2025··
update content
Signed-off-by: Kirill Mokevnin <[email protected]>
1 parent a478598 commit 04decde

File tree

14 files changed

+256
-73
lines changed

14 files changed

+256
-73
lines changed
 
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
21
Выведите на экран результат деления числа `81` на `9`.
+60-28
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,81 @@
1-
На базовом уровне компьютеры оперируют только числами. Даже в прикладных программах на высокоуровневых языках внутри много чисел и операций над ними. Но для старта достаточно знать обычную арифметику — с нее и начнем.
1+
На базовом уровне компьютеры работают только с числами. Даже если вы пишете сложное приложение на современном языке программирования, внутри него всегда происходят многочисленные вычисления: сложение, вычитание, деление и т.д.
22

3-
Например, для сложения двух чисел в математике мы пишем: `3 + 4`. В программировании — то же самое. Вот программа, которая складывает два числа:
3+
К счастью, чтобы начать программировать, достаточно знать обычную школьную арифметику. С неё мы и начнём.
44

5-
```python
5+
## Сложение в Python
6+
7+
В математике для сложения мы пишем 3 + 4. В Python — всё точно так же:
8+
9+
```Python
610
3 + 4
711
```
812

9-
Арифметика в программировании практически не отличается от школьной арифметики.
13+
Этот код действительно можно запустить — интерпретатор выполнит вычисление.
14+
Но... он не сделает с результатом ничего. То есть 7 получится, но вы его не увидите.
1015

11-
Строчка кода `3 + 4` заставит интерпретатор сложить числа и узнать результат. Эта программа будет работать, но в ней нет смысла. По сути, мы не даем команду интерпретатору, мы просто говорим ему: «смотри, сумма трех и четырех». В реальной работе недостаточно сообщать интерпретатору о математическом выражении.
16+
## Чтобы увидеть результат, нужно его вывести
1217

13-
Например, если создавать интернет-магазин, недостаточно просить интерпретатор посчитать стоимость товаров в корзине. Нужно просить посчитать стоимость **И** показать цену покупателю.
18+
В реальной программе просто посчитать значение — недостаточно. Нужно сделать что-то с результатом, например, показать его пользователю.
1419

15-
Нам нужно попросить интерпретатор сложить `3 + 4` **И** дать команду сделать что-то с результатом. Например, вывести его на экран:
20+
Для этого используем функцию `print()`:
1621

17-
```python
18-
# Сначала вычисляется сумма,
19-
# затем она передается в функцию печати
22+
```Python
2023
print(3 + 4)
2124
```
2225

23-
После запуска на экране появится результат:
26+
💡 Здесь сначала вычисляется сумма, затем она передаётся в функцию печати.
27+
28+
Результат выполнения:
29+
30+
<pre class='hexlet-basics-output'> 7 </pre>
2431

25-
<pre class='hexlet-basics-output'>
26-
7
27-
</pre>
32+
## 🧮 Другие арифметические операции
2833

29-
Кроме сложения доступны следующие операции:
34+
Python поддерживает все привычные операции:
3035

31-
* `-` — вычитание
32-
* `*` — умножение
33-
* `**` — возведение в степень
34-
* `/` — деление
35-
* `//`[целочисленное деление](https://ru.wikipedia.org/wiki/Деление_с_остатком#В_программировании)
36-
* `%`[остаток от деления](https://ru.wikipedia.org/wiki/Деление_с_остатком)
36+
| Операция | Символ | Пример | Результат |
37+
|------------------------|--------|--------------|-----------|
38+
| Сложение | `+` | `2 + 3` | `5` |
39+
| Вычитание | `-` | `7 - 2` | `5` |
40+
| Умножение | `*` | `4 * 3` | `12` |
41+
| Деление | `/` | `8 / 2` | `4.0` |
42+
| Возведение в степень | `**` | `3 ** 2` | `9` |
43+
| Целочисленное деление | `//` | `7 // 3` | `2` |
44+
| Остаток от деления | `%` | `7 % 3` | `1` |
3745

38-
Теперь выведем на экран результат деления, а потом результат возведения в степень:
46+
🔍 Обратите внимание: В результате деления `/` мы получаем **число с точкой** (`4.0`), даже если на вид оно целое. Мы разберёмся с этим подробнее в уроках про **типы данных**.
3947

40-
```python
41-
print(8 / 2) # => 4.0 (При делении двух чисел получается тип данных float)
42-
print(3 ** 2) # => 9
48+
Вот как можно вывести результат деления и возведения в степень:
49+
50+
```Python
51+
print(8 / 2) # => 4.0
52+
print(3 ** 2) # => 9
4353
```
4454

45-
https://replit.com/@hexlet/python-basics-arithmetics-basics
55+
## ℹ️ Что такое остаток от деления (`%`)
56+
57+
Эта операция называется **взятие остатка от деления**. Она показывает, **что «остаётся»**, когда одно число делится на другое *не полностью*. Пример:
58+
59+
```Python
60+
print(7 % 3) # => 1
61+
```
62+
63+
📘 Почему результат — 1?
64+
65+
- 7 делится на 3 дважды: 3 * 2 = 6
66+
- До 7 остаётся 1 — это и есть остаток.
67+
68+
Другие примеры:
69+
70+
```Python
71+
print(10 % 4) # => 2 (10 делится на 4 дважды: 4 * 2 = 8, остаток 2)
72+
print(15 % 5) # => 0 (делится без остатка)
73+
```
74+
75+
76+
Операция % часто используется в программировании, например:
4677

47-
Иногда для удобства мы будем показывать в комментариях результат запуска строчек кода вот так: `=> РЕЗУЛЬТАТ`. Например, `# => 4`.
78+
- чтобы проверить, делится ли число нацело (если остаток 0)
79+
- чтобы выполнять циклические действия, например, поведение по чётным/нечётным индексам
4880

49-
Первая инструкция выведет на экран `4` (потому что 8 / 2 равно 4), а вторая инструкция выведет на экран 9 (потому что 3<sup>2</sup> равно 9).
81+
Мы ещё неоднократно встретим % в задачах и разберём его применение на практике.
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
21
Напишите программу, которая посчитает разность между числами `6` и `-81` и выведет ответ на экран.
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,40 @@
1+
В математике и программировании мы часто используем знаки операций, такие как `+`, `-`, `*` и другие. В программировании такие знаки называются операторами.
12

2-
Знак операции, такой как `+`, называют **оператором**. Операторы выполняют операции над определенными значениями, которые называются **операндами**. Сами операторы — это обычно один или несколько символов. Реже — слово. Подавляющее большинство операторов соответствуют математическим операциям.
3+
- Оператор — это символ или слово, которое обозначает действие.
4+
- Операнды — это значения, к которым применяется оператор.
5+
6+
Пример:
37

48
```python
59
print(8 + 2)
610
```
711

8-
https://replit.com/@hexlet/python-basics-arithmetics-operators
12+
Здесь:
13+
14+
- `-` — это оператор
15+
- `8` и `2` — это операнды
16+
- результат — `10`
17+
18+
## Бинарные операторы
919

10-
В этом примере `+`это оператор, а числа `8` и `2` — это **операнды**.
20+
Большинство операторов в Pythonбинарные, то есть они работают с двумя операндами: один слева, второй справа. Если вы напишете выражение с одним операндом, например `3 +`, то получите синтаксическую ошибку. Оператор не может работать без всех нужных данных.
1121

12-
Когда мы складываем, у нас есть два операнда: один слева, другой справа от знака `+`. Операции, которые требуют наличия двух операндов, называются **бинарными**. Если пропустить хотя бы один операнд, например, `3 +`, то программа завершится с синтаксической ошибкой.
22+
## Унарные операторы
1323

14-
Операции бывают не только бинарными, но и унарными — с одним операндом, и тернарными — с тремя операндами. Причем операторы могут выглядеть одинаково, но обозначать разные операции. Символы `+` и `-` используются не только как операторы. Когда речь идет про отрицательные числа, то знак минуса становится частью числа:
24+
Существуют и унарные операции — они работают с одним операндом. Пример:
1525

1626
```python
1727
print(-3) # => -3
1828
```
1929

20-
Выше пример применения унарной операции к числу `3`. Оператор минус перед тройкой говорит интерпретатору взять число `3` и найти противоположное, то есть `-3`. Это может сбить с толку, потому что `-3` — это одновременно и число само по себе, и оператор с операндом. Но у языков программирования такая структура.
30+
В этом случае `-` — унарный оператор, а `3` — операнд. Интерпретатор получает команду: «возьми число 3 и измени его знак». Важно понимать: `-3` — это не "отрицательное число как единое целое", а выражение, где `-` — оператор, а `3` — значение.
31+
32+
## Ошибки при вычислениях и парсинге
33+
34+
Если воспринимать `-3` как единое число, можно не заметить, что `-` — это активный оператор. Например:
35+
36+
```python
37+
print(-3**2)
38+
```
39+
40+
Кажется, что (-3) в квадрате даст 9, но результат будет `-9`. Почему? Потому что `-3**2 = -(3**2) = -9`, а не `(-3)**2`. Понимание того, что - — это отдельная операция, помогает избежать таких ошибок.
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
21
Напишите программу, которая считает и выводит на экран последовательно (по одному значению в каждой строчке) значения следующих математических выражений: «3 в степени 5» и «-8 разделить на -4».
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,37 @@
1-
«От перемены мест слагаемых сумма не меняется» — это один из базовых законов арифметики, который также называется **коммутативным законом**. Бинарная операция считается коммутативной, если вы получаете тот же самый результат, поменяв местами операнды. В этом случае сложение — это коммутативная операция: `3 + 2 = 2 + 3`.
1+
Фраза «от перемены мест слагаемых сумма не меняется» знакома каждому со школы. Этот принцип называется коммутативным законом и является одним из основных законов арифметики.
22

3-
Но вычитание — это не коммутативная операция: `2 - 3 ≠ 3 - 2`. В программировании этот закон работает точно так же, как в арифметике. Более того, большинство операций, с которыми мы сталкиваемся в реальной жизни, не являются коммутативными. Отсюда вывод: всегда обращайте внимание на порядок того, с чем работаете.
3+
## Что такое коммутативность
4+
5+
Операция называется коммутативной, если порядок операндов не влияет на результат. То есть, поменяв местами значения, вы получите тот же ответ. Пример с коммутативной операцией — сложением:
6+
7+
```python
8+
print(3 + 2) # => 5
9+
print(2 + 3) # => 5
10+
```
11+
12+
Результат одинаковый — значит, операция коммутативна.
13+
14+
## Некоммутативные операции
15+
16+
Но не все операции обладают таким свойством. Например, вычитание — уже не коммутативная операция:
17+
18+
```python
19+
print(2 - 3) # => -1
20+
print(3 - 2) # => 1
21+
```
22+
23+
Поменяли операнды — и получили другой результат.
24+
25+
## 🤖 В программировании — всё то же самое
26+
27+
Коммутативность в программировании работает точно так же, как в арифметике. Python строго следует математическим правилам.
28+
29+
Другие некоммутативные операции:
30+
31+
- Деление: _8 / 2 ≠ 2 / 8_
32+
- Возведение в степень: *2 **3 ≠ 3** 2*
33+
34+
Поэтому:
35+
36+
- Всегда внимательно проверяйте порядок аргументов, особенно при работе с незнакомыми операциями;
37+
- не предполагаете коммутативность «по умолчанию» — лучше убедиться экспериментально.

‎modules/20-arithmetics/30-composition/ru/EXERCISE.md

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
Реализуйте программу, которая вычисляет и выводит на экран значение выражения:
32

43
```
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,34 @@
1+
В Python (и в программировании вообще) можно объединять несколько операций в одну строку. Такие выражения интерпретатор обрабатывает шаг за шагом, по определённым правилам.
2+
13
Рассмотрим пример:
24

3-
```python
5+
```Python
46
print(2 * 4 * 5 * 10)
57
```
68

7-
https://replit.com/@hexlet/python-basics-arithmetics-composition
9+
Этот код состоит из нескольких операций умножения, объединённых в одно выражение. Python умеет последовательно выполнять такие вычисления. Чтобы понять, как интерпретатор выполняет выражение, разберём его по этапам:
10+
11+
- Сначала вычисляется `2 * 4`: `8 * 5 * 10`
12+
- Затем `8 * 5`: `40 * 10`
13+
- И наконец `40 * 10`: `400`
14+
15+
Итоговый результат — `400`.
16+
17+
## А если разные операции?
18+
19+
Всё просто, пока используются одинаковые операторы. Но что произойдёт, если объединить, например, умножение и сложение?
20+
21+
```Python
22+
print(2 + 3 * 4)
23+
```
24+
25+
Получится ли `20` или `14`? Ответ: `14`.
826

9-
Операции можно соединять друг с другом и вычислять все более сложные составные выражения. Чтобы представить, как происходят вычисления внутри интерпретатора, разберем пример: `2 * 4 * 5 * 10`.
27+
🔑 Почему? Потому что в Python, как и в математике, у операций есть приоритет.
28+
Умножение выполняется раньше сложения, если не использовать скобки. Мы разберём это подробнее в следующем уроке.
1029

11-
1. Сначала вычисляется `2 * 4` и получается выражение `8 * 5 * 10`
12-
2. Затем `8 * 5`. В итоге имеем `40 * 10`
13-
3. В итоге происходит последнее умножение, и получается результат `400`
30+
## 🧠 Что нужно запомнить
1431

15-
Операции могут содержать разные операторы, из-за чего появляется вопрос об их приоритете.
32+
- Выражения могут состоять из нескольких операций.
33+
- Python вычисляет их поэтапно — слева направо, соблюдая приоритет операций.
34+
- Скобки можно использовать, чтобы явно указать порядок вычислений.
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
Дано вычисление `70 * 3 + 4 / 8 + 2`.
32

43
Расставьте скобки так, чтобы оба сложения (`3 + 4`) и (`8 + 2`) высчитывались в первую очередь. Выведите на экран результат.

0 commit comments

Comments
 (0)
Please sign in to comment.