Python: Типы данных

Программы работают с разной информацией: текст, числа, даты, списки, булевы значения. У каждого фрагмента данных в программе есть тип — его “категория”.

Например:

  • "Hello, World!" — это строка (набор символов)
  • 7, -198, 0 — это целые числа
  • 3.14, -0.01, 1.0 — это рациональные числа (или числа с плавающей точкой)

🔍 Что такое тип данных?

Тип данных определяет:

  • как интерпретировать значение;
  • какие операции с ним можно делать.

Например, числа можно складывать, делить и умножать. А вот строки складываются по-другому — при помощи конкатенации (склеивания). Но умножать строку на строку нельзя — это бессмысленно:

# Нельзя: 'мама' * 'блокнот'  ❌

🧮 Числа и строки — разные типы

Пример вывода числа:

print(5)  # => 5

Пример вывода строки:

print('5')  # => 5

На экране результат выглядит одинаково, но внутри программы это совершенно разные вещи:

ЗначениеТип данных
5int (целое число)
'5'str (строка)

Строку '5' нельзя сложить с числом 5, как и '10' / 2 не даст числа 5.0. Python будет ругаться, если вы попытаетесь смешать несовместимые типы без явного преобразования.

🔢 Целые и рациональные числа

Python различает два вида чисел:

  • int — целые числа: -3, 0, 7, 100000
  • float — вещественные (рациональные) числа: 1.0, -3.14, 2.718

Пример:

print(10.234)  # => 10.234

Числа с точкой Python воспринимает как float — с ними можно делать арифметику с десятичной точностью.

⚙️ Почему типы вообще нужны?

Типы помогают компьютеру понимать, как обрабатывать данные. Они:

  • определяют набор допустимых операций;
  • влияют на поведение функций и выражений;
  • позволяют языку выявлять ошибки ещё до выполнения программы.

Например, если вы случайно попытаетесь сложить строку с числом, Python остановит программу и покажет ошибку — именно благодаря строгой типизации.

🧱 Примитивные типы

Типы вроде:

  • str (строка),
  • int (целое число),
  • float (рациональное число)

называются примитивными — они встроены прямо в язык. Существуют и составные типы: списки, словари, кортежи и другие. С ними мы познакомимся позже. Более того, в Python можно создавать и свои собственные типы (например, классы), но для начала важно хорошо разобраться с примитивами.

📚 Терминология: строка или строчка?

В программировании есть терминологическая ловушка:

  • строка (string) — это тип данных, например 'hello'
  • строчка (line) — это строка текста в файле или в коде

Например, в коде ниже есть строчка, но не строка:

print(5)

Чтобы избежать путаницы, в этом курсе мы будем использовать:

  • строка — когда говорим о данных типа str;
  • строчка — когда речь идёт о строках кода (lines).

Задание

Выведите на экран число -0.304.

Определения

Тип данных
множество данных в коде (разновидность информации). Тип определяет, что можно делать с элементами конкретного множества. Например, целые числа, рациональные числа, строки — это разные типы данных.
Примитивные типы данных
простые типы, встроенные в сам язык программирования.
Строка (string)
тип данных, описывающий набор символов (иными словами — текст) например, `'text'` или `"text"`
Как с вами связаться? 🙃

Команда проекта находится в телеграм-сообществе по ссылке https://ttttt.me/HexletLearningBot. Там можно задать любой вопрос и повлиять на проект

Упражнение не проходит проверку — что делать? 😶

Если вы зашли в тупик, то самое время поговорить с нашим асситентом Тота во вкладке "ИИ-помощник". Как правильно задать вопрос:

В моей среде код работает, а здесь нет 🤨

Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.

Мой код отличается от решения учителя 🤔

Это нормально 🙆, в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи. В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.

Прочитал урок — ничего не понятно 🙄

Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в обратной связи нашего сообщества

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются

Привет! Я Тота и моя задача помочь в обучении. Чтобы активировать меня, нужно зарегистрироваться или залогиниться, если у вас уже есть аккаунт

Loading...

Ваше упражнение проверяется по этим тестам

1from hexlet.test import expect_output
2
3
4def test(capsys):
5    expected = "-0.304"
6    expect_output(capsys, expected)
7

Решение учителя откроется через:

20:00
waiting_clock