|
| 1 | +Программы работают с разной информацией: текст, числа, даты, списки, булевы значения. У каждого фрагмента данных в программе есть тип — его “категория”. |
1 | 2 |
|
2 |
| -Бывают разные способы представлять данные в программах. Есть **строки** — наборы символов в кавычках вроде `"Hello, World!"`. Есть **целые числа** — например, `7`, `-198`, `0`. Это две разные категории информации — два разных **типа данных**. Операция умножения имеет смысл для категории «целые числа», но не для категории «строки»: нет смысла умножать слово «мама» на слово «блокнот». |
| 3 | +Например: |
3 | 4 |
|
4 |
| -Тип данных определяет, что можно делать с элементами конкретного множества информации. В этом уроке мы изучим типы данных и узнаем, как работает типизация в Python. |
| 5 | +- "Hello, World!" — это строка (набор символов) |
| 6 | +- 7, -198, 0 — это целые числа |
| 7 | +- 3.14, -0.01, 1.0 — это рациональные числа (или числа с плавающей точкой) |
5 | 8 |
|
6 |
| -Язык программирования распознает типы данных, поэтому Python не позволит нам умножать строку на строку — нельзя умножать текст на текст. При этом можно умножать целое число на другое целое число. Наличие типов и таких ограничений в языке защищает программы от случайных ошибок. |
| 9 | +## 🔍 Что такое тип данных? |
7 | 10 |
|
8 |
| -В отличие от строк, числа оборачивать в кавычки не нужно. Чтобы напечатать число 5, достаточно написать: |
| 11 | +Тип данных определяет: |
| 12 | + |
| 13 | +- как интерпретировать значение; |
| 14 | +- какие операции с ним можно делать. |
| 15 | + |
| 16 | +Например, числа можно складывать, делить и умножать. А вот строки складываются по-другому — при помощи конкатенации (склеивания). Но умножать строку на строку нельзя — это бессмысленно: |
| 17 | + |
| 18 | +```python |
| 19 | +# Нельзя: 'мама' * 'блокнот' ❌ |
| 20 | +``` |
| 21 | + |
| 22 | +## 🧮 Числа и строки — разные типы |
| 23 | + |
| 24 | +Пример вывода числа: |
9 | 25 |
|
10 | 26 | ```python
|
11 | 27 | print(5) # => 5
|
12 | 28 | ```
|
13 | 29 |
|
14 |
| -Число `5` и строка `'5'` — совершенно разные вещи, хотя вывод у `print()` для этих данных идентичный. Целые числа (`1`, `34`, `-19` и т.д.) и рациональные числа (`1.3`, `1.0`, `-14.324` и т.д.) — это два отдельных **типа данных**. Такое разделение связано с особенностями устройства компьютеров. Есть и другие типы, с ними мы познакомимся позже. |
| 30 | +Пример вывода строки: |
| 31 | + |
| 32 | +```python |
| 33 | +print('5') # => 5 |
| 34 | +``` |
| 35 | + |
| 36 | +На экране результат выглядит одинаково, но внутри программы это совершенно разные вещи: |
| 37 | + |
| 38 | +| Значение | Тип данных | |
| 39 | +|----------|------------------| |
| 40 | +| `5` | `int` (целое число) | |
| 41 | +| `'5'` | `str` (строка) | |
| 42 | + |
| 43 | +Строку '5' нельзя сложить с числом 5, как и '10' / 2 не даст числа 5.0. |
| 44 | +Python будет ругаться, если вы попытаетесь смешать несовместимые типы без явного преобразования. |
| 45 | + |
| 46 | +## 🔢 Целые и рациональные числа |
| 47 | + |
| 48 | +Python различает два вида чисел: |
| 49 | + |
| 50 | +- int — целые числа: -3, 0, 7, 100000 |
| 51 | +- float — вещественные (рациональные) числа: 1.0, -3.14, 2.718 |
15 | 52 |
|
16 |
| -Вот еще один пример, но уже с рациональным числом: |
| 53 | +Пример: |
17 | 54 |
|
18 | 55 | ```python
|
19 | 56 | print(10.234) # => 10.234
|
20 | 57 | ```
|
21 | 58 |
|
22 |
| -Типы данных «строка», «целое число» и «рациональное число» — это *примитивные типы*, то есть они встроены в сам язык Python. В язык встроены также и некоторые составные типы, но пока мы будем работать только с примитивными. Программисты также могут создавать собственные типы данных. |
| 59 | +Числа с точкой Python воспринимает как float — с ними можно делать арифметику с десятичной точностью. |
| 60 | + |
| 61 | +## ⚙️ Почему типы вообще нужны? |
| 62 | + |
| 63 | +Типы помогают компьютеру понимать, как обрабатывать данные. Они: |
| 64 | + |
| 65 | +- определяют набор допустимых операций; |
| 66 | +- влияют на поведение функций и выражений; |
| 67 | +- позволяют языку выявлять ошибки ещё до выполнения программы. |
| 68 | + |
| 69 | +Например, если вы случайно попытаетесь сложить строку с числом, Python остановит программу и покажет ошибку — именно благодаря строгой типизации. |
| 70 | + |
| 71 | +🧱 Примитивные типы |
| 72 | + |
| 73 | +Типы вроде: |
| 74 | + |
| 75 | +- str (строка), |
| 76 | +- int (целое число), |
| 77 | +- float (рациональное число) |
| 78 | + |
| 79 | +называются примитивными — они встроены прямо в язык. Существуют и составные типы: списки, словари, кортежи и другие. С ними мы познакомимся позже. Более того, в Python можно создавать и свои собственные типы (например, классы), но для начала важно хорошо разобраться с примитивами. |
| 80 | + |
| 81 | +## 📚 Терминология: строка или строчка? |
| 82 | + |
| 83 | +В программировании есть терминологическая ловушка: |
| 84 | + |
| 85 | +- строка (string) — это тип данных, например 'hello' |
| 86 | +- строчка (line) — это строка текста в файле или в коде |
| 87 | + |
| 88 | +Например, в коде ниже есть строчка, но не строка: |
| 89 | + |
| 90 | +```python |
| 91 | +print(5) |
| 92 | +``` |
| 93 | + |
| 94 | +Чтобы избежать путаницы, в этом курсе мы будем использовать: |
23 | 95 |
|
24 |
| -По-английски строки в программировании называются strings, а строчки текстовых файлов — lines. Например, в коде кода выше есть строчка (line), но нет никаких строк (strings). В русском иногда может быть путаница, поэтому во всех уроках мы будем говорить **строка** для обозначения типа данных «строка», и **строчка** для обозначения строчек кода (lines) в файлах. |
| 96 | +- строка — когда говорим о данных типа str; |
| 97 | +- строчка — когда речь идёт о строках кода (lines). |
0 commit comments