Coming Soon!
This is going to be another great website hosted by PythonAnywhere.
PythonAnywhere lets you host, run, and code Python in the cloud. Our free plan gives you access to machines with everything already set up for you. You can develop and host your website or any other code directly from your browser without having to install software or manage your own server.
Need more power? Upgraded plans start at $5/month.
Developer info
Hi! If this is your PythonAnywhere-hosted site, then you’re almost there — you just need to create a web app to handle this domain.
Типы данных в Python
Тип данных определяет, что может храниться внутри переменной. Например:
Здесь 24 (целое число) присваивается переменной num . Таким образом, тип данных num относится к классу int .
Типы данных в Python
| Тип данных | Класс | Описание |
| Числа | int, float, complex | Содержит числовые значения. |
| Строки | str | Содержит последовательность символов. |
| Списки | list, tuple, range | Содержит последовательность элементов. |
| Словари | dict | Содержит данные в виде пары ключ-значение. |
| Логический | bool | Содержит True или False. |
| Множество | set, frozeenset | Содержит последовательность уникальных элементов. |
Поскольку в Python всё является объектом, типы данных на самом деле являются классами, а переменные — экземплярами (объектами) этих классов.
Числовые типы данных в Python
Числовой тип данных используется для хранения числовых значений. Целые числа, числа типа с плавающей точкой и составные числа попадают в категорию чисел в Python и определяются как int , float и complex .
int — содержит целые числа со знаком неограниченной длины.
float — содержит числа с плавающей десятичной точкой с точностью до 15 знаков после точки.
Мы можем использовать функцию type(), чтобы узнать, к какому классу принадлежит переменная или значение. Например:
Типы данных в Python для начинающих: какие бывают и как с ними работать
Готовимся к собеседованию на должность Python-разработчика. Знакомимся с системой типов в Python, встроенными типами данных и правилами работы с ними.


Иллюстрация: Оля Ежак для Skillbox Media

Python — объектно-ориентированный язык программирования, его основу составляют объекты и классы. Объект — это область памяти компьютера, которая описывается типом (он же класс) и значением. При этом от типа зависит область значений объекта, операции и методы, которые к нему можно применять.
Python предоставляет богатый набор встроенных типов данных. Поэтому при решении стандартных задач питонист реже пишет собственные классы, чем, например, разработчик на Java.
Из этой статьи вы узнаете:
Что такое строгая динамическая типизация
Python — язык программирования со строгой динамической типизацией.
«Строгая» означает, что язык не производит неявные преобразования типов и не создаёт сюрпризов при их случайном смешении.
Чтобы понять, о чём идёт речь, запустите этот код на Python и JavaScript, а затем сравните результаты:
JavaScript любезно выдаст строку ’11’, а Python выругается такой фразой:
TypeError: unsupported operand type (s) for +: ‘int’ and ‘str’
Можно подумать, что JavaScript лучше, чем Python, — ведь он даёт больше свободы разработчикам. Но не всё так однозначно: в больших скриптах, на 3–5 тысяч строк, такая свобода может сыграть злую шутку. Например, если банковская программа вместо 100 + 100 = 200 долларов спишет со счёта 100100 🙂
К счастью, в Python такой трюк не пройдёт. Строгий интерпретатор забьёт тревогу и не позволит разработчику смешать типы.
«Динамическая» означает, что типы объектов определяются в процессе исполнения программы (runtime). Поэтому питонисты могут не указывать типы переменных. Переменные в Python — это всего лишь указатели на объекты, они не содержат информации о типе.
Вы можете создавать и изменять переменные в любой момент, главное — присвойте значение:
А вот в языках со статической типизацией, таких как C++, C# и Java, типы объектов определяются ещё на этапе компиляции. Поэтому при попытке запустить такой код, например, в C++ компилятор выдаст ошибку:
«невозможно преобразовать „const char [20]“ в „int“»
Придётся объявлять новую переменную:
Мы оставим детальное сравнение статической и динамической типизации для другой статьи. На практике и та, и другая имеют свои плюсы и минусы.

Изменяемые и неизменяемые типы данных
Типы данных в Python можно разделить на изменяемые и неизменяемые.
Когда мы присваиваем новое значение неизменяемому объекту, Python не перезаписывает его, а создаёт новый объект с тем же именем. Чтобы в этом убедиться, достаточно проверить id — уникальный номер, который присваивается каждому объекту в Python:
Когда мы прибавляем 5 к переменной int_obj, на её месте создаётся новый объект с тем же именем. Заметьте: при первом выводе id равен 140717895746096, а после выполнения операции сложения — 140717895746256.
А вот идентификатор списка list_obj не меняется, потому что списки в Python — это изменяемые объекты:
К неизменяемым объектам относятся числа, строки и кортежи, а к изменяемым — списки, словари и множества. Это свойство нужно учитывать при передаче объектов в функцию. Например, если вы не хотите, чтобы функция изменила исходный список, передайте в неё копию этого списка.
Теперь рассмотрим встроенные типы данных языка Python.
Какие встроенные типы данных есть в Python
В недрах интерпретатора Python зашито много типов данных. Их можно разделить на три группы:
- Простые — числа и строки.
- Коллекции — списки, кортежи и словари.
- Остальные — файлы, итераторы, сокеты, NaN.
Отдавайте предпочтение встроенным типам. Они упрощают разработку и более эффективны, чем пользовательские классы, потому что представляют собой оптимизированные структуры данных на языке C.
Числа
Программы на Python умеют работать с целыми числами (int), числами с плавающей точкой (float) и комплексными числами (complex). В целом числовые объекты в Python поддерживают те же операции, что и числа в других языках программирования:
Также в стандартной библиотеке Python есть модуль math, который подключается директивой import math, — он содержит широкий набор функций для работы с числовыми данными:
А теперь получим какое-нибудь очень большое число. Например, возведём 27 в 560-ю степень:
Для таких объектов в Python есть специальный тип — long. Но если в том же C++ самый большой тип long long ограничен 64 битами (самое большое положительное число равно 18 446 744 073 709 551 615), то «длинные числа» в Python не ограничены.
Строки
Строки (string) — это последовательности символов, поэтому к ним применимы многие методы других последовательностей: списков и кортежей. Например, обращение к элементу по индексу, вычисление количества символов, конкатенация и получение среза.
Рассмотрим основные операции со строками в Python:
Строки поддерживают работу с отрицательными индексами. Их удобно использовать, когда нужно обратиться к элементу с конца:
Кроме того, у типа string есть ряд методов, уникальных для него:
Списки
Список (list) — это упорядоченная коллекция объектов. Списки могут иметь сколько угодно уровней вложенности и хранить неограниченное количество объектов. Кроме того, в одном списке могут одновременно храниться объекты разных типов.
Над списками можно производить те же операции, что и над строками:
Но у списков есть и специфические методы, которые присущи только им. Например, можно добавить новый элемент в конце списка, удалить i-й элемент или отсортировать список:
Кортежи
Кортежи (tuple) — это те же списки, только неизменяемые. Над ними можно производить те же операции, что и над списками, — кроме тех, которые изменяют кортеж:
При попытке заменить элемент ‘p’ на ‘c’ Python выдаст сообщение об ошибке:
TypeError: ‘tuple’ object does not support item assignment
Вы спросите: зачем нужны кортежи, когда есть списки с более широким набором методов и операций? Как мы уже сказали выше, иногда программистам важно быть уверенными, что функция не изменит значение объекта. Как раз для таких случаев и годятся кортежи.
Словари
Словарь (dict) — это неупорядоченная коллекция пар «ключ — значение». В качестве ключей могут выступать любые неизменяемые объекты (числа, строки и даже кортежи).
Получать доступ к элементам, удалять и создавать новые довольно просто:
В качестве значений словарь может хранить объекты совершенно разных типов — даже другие словари. Глубина вложенности не ограничена.
Так как словари являются отображениями, а не последовательностями, то элементы в них не упорядочены. Это значит, что при выводе элементов в цикле for их порядок не всегда будет совпадать с порядком, заданным при инициализации словаря.
Файлы
Объекты-файлы позволяют работать с файловой системой компьютера. Чтобы создать такой объект, нужно передать функции open имя файла и режим доступа (чтение или запись).
Допустим, вы собрались написать книгу о Python. Тогда нужно создать файловый объект в режиме записи — w write, а затем записывать в него строки текста с помощью метода write ():
А теперь проверим, всё ли сохранилось как надо. Для этого создадим новый объект-файл с помощью той же функции open, но в режиме чтения — r read:
Как вы можете убедиться, все строки, которые мы записали в файл, на месте.
Для закрепления — небольшая шпаргалка по базовым типам в Python:

Что почитать про типы данных в Python
Теперь вы знаете о типах в Python достаточно, чтобы решать простейшие задачи и даже ответить на вопросы на собеседовании. Если хотите узнать о системе типов ещё больше — почитайте классические источники:
- «Изучаем Python 3», Часть II. Типы и операции, М. Лутц;
- «Программирование на Python 3», Глава 2. Типы данных, М. Саммерфилд;
- документацию Python, раздел «Built-in Types».
Больше интересного про код в нашем телеграм-канале. Подписывайтесь!
Читайте также:
Числа, состоящие из действительной и мнимой части. Применяются в теории колебаний, квантовой механике и при обработке сигналов.
На Python пишут веб-приложения и нейросети, проводят научные вычисления и автоматизируют процессы. Язык просто выучить, даже если вы никогда не программировали. На курсе вы создадите Telegram-бота, полноценный магазин и аналог популярной соцсети для портфолио, а Центр карьеры поможет найти работу Python-разработчиком.
Узнать про курс
Профессии с трудоустройством
- Графический дизайнер
- Python-программист
- Инженер по тестированию
- Бизнес-аналитик
- Интернет-маркетолог 2023
Новости
+7 (499) 444-90-36 Отдел заботы о пользователях
Москва, Ленинский проспект, дом 6, строение 20
- Премии Рунета 2018, 2019, 2020
- Все направления
- О Skillbox
- Вебинары
Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies
Операторы, типы данных и переменные¶
Мы использовали язык Python для создания интересных программ, рисующих картинки за счет всего нескольких строк кода, но наши программы были ограничены в возможностях. Мы просто запускали их и наблюдали, как они сами создают картинки.
А что если бы мы захотели взаимодействовать с нашими программами на Python? На этом занятии мы узнаем, как заставить Python запросить имя пользователя, а также попробуем применение операторов при рисовании картин, на один большой шаг приблизившись к созданию динамических анимаций!
Переменные: место, где мы храним данные¶
В предыдущем уроке, мы использовали переменную name для записи в неё имени «Вася». Теперь давайте посмотрим, что такое в действительности переменные и как они работают.
Переменная¶
Переменная — это нечто такое, что нужно запомнить вашему ком-ьютеру на время работы программы.
Когда Python «запоминает» что-либо, он сохраняет эту информацию в памяти компьютера. Python может запоминать значения нескольких типов данных, например числовые значения (такие как 7, 42 или даже дробные числа, вроде 3.1415) и строки (буквы, символы, слова, предложения — все, что вы можете набрать на клавиатуре). А также и пользовательские типы данных, но это уже забегая далеко вперёд.
В Python, как и в большинстве других современных языков программирования, мы присваиваем значение переменной с помощью знака равенства ( = ).
Например, в примере с именем «Вася» мы сделали это вот так:
Если мы присваиваем строку, то нужно не забыть взять её в кавычки ( "" )!
Также мы можем присваивать переменным и другие типы данных. Например, числа:
Если это число, то кавычки ( "" ) не нужны. Если мы возмём в кавычки, например "3.1415" , то это уже будет не число, а строка!
Как Python различает типы данных?
Python — язык с динамичекой типизацией. Это означает, что он может сам, то есть без указания программиста, динамически адаптировать те или иные переменные к нужному типу данных. То есть, например, если мы сначала запишем в переменную число var = 42 , то ничто нам не помешает потом записать в неё строку var = "Hello" — Python всё сделает!
Имена переменных¶
Каждый раз при присвоении переменной какого-либо значения сначала (слева от знака равенства) необходимо указать имя этой переменной (чтобы мы могли к ней потом обращаться), а затем (справа от знака равенства) — присваиваемое значение.
Как правило, переменные называются простыми именами, описывающими содержащееся в переменной значение (как в случае с переменной name , хранящей имя).
Такой подход упрощает понимание предназначения переменных и их последующее использование. Однако следует запомнить несколько правил, которым должны соответствовать имена создаваемых переменных.
- Используевые буквы должны быть латинскими.
- Остальные символы в имени переменной должны быть буквами, цифрами или нижним подчеркиванием («_«). Внутри имени переменной пробелы не допускаются (например, имя my name приведет к появлению сообщения о синтаксической ошибке, так как Python подумает, что вы перечислили две пе ременные и разделили их пробелом).
- Имена переменных в Python чувствительны к регистру (БОЛЬШИЕ или маленькие буквы). Это значит, что если в имени переменной мы использовали только буквы нижнего регистра (например, abc ), то воспользоваться значением, сохраненном в переменной, мы можем, только указав имя переменной в точно таком же виде, в том же регистре. Таким образом, переменная My_Name отличается от my_name , а MY_NAME от них обеих.
Использование переменных¶
Использовать переменные очень легко! Как присвоить (записать) значение переменной ты уже знаешь. А чтобы использовать её, то есть обратиться к тому значению, что в нём находится — нужно просто использовать её имя.
Например, как в программе приветствия Васи.
print("Привет", name) — здесь мы ввели строку "Привет" вместе с тем, что хранилось в name .
Чтобы лучше понять этот механизм — запусти интерпретатор Python и попробуй создать свои переменные и взять из них значения.
Пользовательский ввод¶
Чтобы улучшить нашу программу, можно сделать так, чтобы в переменную сохранялось то значение, которое введёт пользователь.
Выглядеть это будет так:
name = input("Введите своё имя: ") — создаём переменную name и записываем в неё результат выполнения команды (функции) input , а в скобочках к команде () передаём то, какую строку вывести в консоль при запросе.
print("Привет", name) — вывести в консоль «Привет» вместе с name , вставив между ними пробел.
- Переменные нужны, чтобы запоминать фрагменты данных, используемых в программе.
- Использовать в имени переменной мы можем только латинские буквы, цифры, знак подчёркивания ( _ ) и имя должно начинаться с буквы.
- Python может динамически адаптировать те или иные переменные для нужного типа данных.
Числа и математика¶
Компьютеры очень хороши в математических операциях (сложение, вычитание и так далее). Ваш компьютер способен совершать более одного миллиарда (1’000’000’000, или тысячи миллионов) математических операций в секунду!
Язык Python дает нам доступ к этому мощному ресурсу математических вычислений, предоставляя для этого числа двух основных видов:
- Целые числа. Например, 1, 2, 42, 1234 и тд.
- Вещественные (дробные) числа. Например, 1.5, 3.1415, 2.67842356 и тд. Их ещё называют числа с плавающей точкой
Но чтобы от чисел было больше пользы, мы должны уметь ими совершать с ними операции. И здесь Python предоставляет нам множество возможностей!
Операторы¶
Оператор — это символ, или несколько символов — в отличие от имени переменной или функции (команды). Например, «+» умеет брать два числа слева и справа от себя(они называются операнды), складывать и подставлять вместо себя и операндов то, что получается.
Математические символы, такие как + (плюс) и − (минус), являются операторами, так как они оперируют (или выполняют вычисления) числами в уравнении. Когда мы говорим вслух «4 + 2», чтобы ввести это на калькуляторе, мы хотим сложить числа 4 и 2, чтобы получить их сумму, 6.
В языке Python используется большинство операторов, которыми вы пользуетесь на уроках математики, в том числе +, -, скобки () и другие, которые показаны в таблице ниже.

Задания¶
Ну, самое время попробовать это всё в деле! Далее будут задания, с помощью которых ты сможешь опробовать и закрепить полученные знания.
Processing¶
- Напиши код, который объяснит Processing, как нарисовать дом с крышей, окном и дверью. Можешь добавить больше деталей: печную трубу, траву, облака — выбор не ограничен. Не забудь раскрасить! Чтобы было легче позиционировать объекты, используй переменные и операторы.
- По желанию, можешь попробовать изобразить более сложные или перейти к другим заданиям.
Стандартный Python¶
Чепуха¶
Вместо того чтобы спрашивать имя пользователя, мы попросим ввести прилагательное, существительное и глагол прошедшего времени мужского рода единственного числа и сохраним введенные данные в трех разных переменных точно так же, как мы поступали с переменной name в исходной программе. Потом мы выведем на печать какое-нибудь предложение, например «Этот прилагательное существительное глагол на ленивую рыжую собаку».
Результат работы программы должен выглядеть примерно следующим образом:
Попробуй придумать ещё что-нибудь забавное 😉
И не забудь сохранить свою программу!
Новая чепуха!¶
Давайте сделаем нашу игру чуть более интересной.
- Создай новый файл для кода, сохрани под тем именем, которое тебе больше понравится.
- Добавьте строку, которая бы запрашивала ввод названия животного с предлогом «на».
- Затем измени команду print() , убрав слово собаку и добавив переменную animal после предложения, взятого в кавычки (не забудь в команде print() добавить запятую перед новой переменной).
При желании вы можете изменить предложение еще сильнее. К примеру, Эта весёлая меловая доска рыгнула на ленивого коричневого геккона! , или что-нибудь еще более забавное!
И не забудь сохранить свою программу!
Пиццерия¶
Давайте представим, что мы не только программисты, но и владельцы нашей собственной пиццерии.
Чтобы нам было удобно расчитывать общую стоимость заказа, с учетом налога, напишем небольшую программу, которая подсчитает это.
Предположим, что у нас заказывают одну или несколько пицц одинаковой стоимости, а налог в нашей стране составляет 8% с общей стоимости покупки. То есть за каждый рубль, уплаченный за пиццу, мы должны заплатить восемь копеек налога с продаж. На словах мы можем смоделировать данную программу следующим образом:
- Спросить человека, сколько пицц он желает заказать.
- Запросить стоимость каждой пиццы, указанную в меню.
- Подсчитать стоимость каждой пиццы как подытог.
- Подсчитать начисляемый налог с продаж по ставке 8 процентов от подытога.
- Добавить сумму налога с продаж к подытогу и получить итоговую стоимость.
- Показать пользователю общую сумму к оплате, в том числе налог.
Рефлексия¶
А теперь, давай подумаем над тем, как прошло занятие, что ты узнал нового, какие были трудности и что можно было бы сделать лучше.