Типы данных в Python
Каждая переменная в Python — объект с определенным типом данных. Тип данных — это класс, а переменные являются экземплярами (объектами) этих классов.
В Python множество различных типов данных, мы поговорим о самых важных из них.
Числа
К этому классу относятся: целые, комплексные и числа с плавающей точкой. Определены они в Python так: int , complex и float соответственно.
С помощью функции type() можно узнать класс, к которому принадлежит переменная. А функция isinstance() проверяет принадлежность объекта к определенному классу.
a = 5 print(a, "относится к типу", type(a)) a = 2.0 print(a, "относится к типу", type(a)) a = 1+2j print(a, "комплексное число?", isinstance(1+2j,complex))
Вывод:
5 относится к типу
2.0 относится к типу
(1+2j) комплексное число? True
Целые числа могут быть любой длины — ограничивает их лишь память вашего компьютера.
Число с плавающей точкой имеет точность до 15 знаков после запятой. Целая и десятичная части разделяются точками. 1 — целое число, 1.0 — число с плавающей точкой.
Комплексные числа записываются так: x + yj . Здесь x — действительная часть, а y — мнимая. Несколько примеров:
>>> a = 1234567890123456789 >>> a 1234567890123456789 >>> b = 0.1234567890123456789 >>> b 0.12345678901234568 >>> c = 1+2j >>> c (1+2j)
Обратите внимание, что float-переменная b усекается.
Списки
Список — это упорядоченная последовательность элементов. Это наиболее часто используемый тип данных в Python. И это не просто так: список — очень гибкий тип данных. Хотя бы потому, что элементы списка не обязательно должно быть одного типа.
Объявить список довольно просто — элементы в нем разделяются запятыми и заключены в квадратные скобки [ ] .
a = [1, 2.2, 'python']
Чтобы получить элемент или ряд элементов из списка, воспользуйтесь срезами. Индексация начинается с 0.
a = [5,10,15,20,25,30,35,40] # a[2] = 15 print("a[2] = ", a[2]) # a[0:3] = [5, 10, 15] print("a[0:3] = ", a[0:3]) # a[5:] = [30, 35, 40] print("a[5:] language-python">a = [1, 2, 3] a[2] = 4 print(a)
Вывод:
[1, 2, 4]
Кортежи
Кортеж — это упорядоченная последовательность элементов, похожая на список. Единственное отличие — кортежи неизменяемы. После их объявления вы не сможете изменить значения внутри кортежа.
Кортежи гарантируют, что данные в нем не будут изменяться. Благодаря этому кортежи быстрее списков.
Объявляются кортежи с помощью круглых скобок — () , а его элементы разделяются запятыми.
t = (5, 'программа', 1+3j)
Чтобы извлечь элемент из кортежа, вы можете использовать оператор среза — [] . Но не забывайте — значения кортежа менять нельзя.
t = (5,'программа', 1+3j) # t[1] = 'программа' print("t[1] = ", t[1]) # t[0:3] = (5, 'программа', (1+3j)) print("t[0:3] test.py", line 11, in
t[0] = 10
TypeError: 'tuple' object does not support item assignment
Строки
Строка — последовательность символов Юникода. Для объявления строк можно использовать двойные или одинарные кавычки. Многострочные блоки текста объявляются так — ''' или """ .
s = "Это строка" print(s) s = '''Многострочная строка''' print(s)
Вывод:
Это строка
Многострочная
строка
Со строками можно использовать срезы, но сами строки изменять нельзя.
s = 'Привет, мир!' # s[4] = 'е' print("s[4] =", s[4]) # s[8:11] = 'мир' print("s[8:11] ", line 11, in
TypeError: 'str' object does not support item assignment
Множества
Множество — неупорядоченный набор уникальных элементов. Множество объявляется с помощью фигурных скобок — < >. Элементы внутри множества разделяются запятыми. Элементы в списке не упорядочены.
a = # вывод элемента множества print("a language-python">a = print(a)
Вывод:
Множества не упорядочены. Оператор среза с ними не работает.
>>> a = >>> a[1] Traceback (most recent call last): File "", line 301, in runcode File "", line 1, in TypeError: 'set' object does not support indexing
Словари
Словарь — это неупорядоченный набор пар «ключ-значение».
Обычно словарь используется при работе с большим количеством данных. Словари оптимизированы под извлечение данных. Мы должны знать ключ, чтобы извлечь значение.
В Python словари объявляются с помощью фигурных скобок — < >. Каждый элемент словаря представляет собой пару в виде ключ:значение . Ключ и значение могут быть любого типа.
>>> d = >>> type(d)
Для получения значения мы используем ключ — не наоборот.
d = print(type(d)) print("d[1] = ", d[1]); print("d['ключ'] = ", d['ключ']); # Ошибка print("d[2] ", line 9, in
KeyError: 2
Приведение типов
Для преобразования значений переменных можно использовать следующие функции: int() , float() , str() и т. д.
>>> float(5) 5.0
Приведение float к int приведет к усечению — десятичная часть отбросится.
>>> int(10.6) 10 >>> int(-10.6) -10
Преобразовывать можно только подходящие под тип данных значения.
>>> float('2.5') 2.5 >>> str(25) '25' >>> int('1p') Traceback (most recent call last): File "", line 301, in runcode File "", line 1, in ValueError: invalid literal for int() with base 10: '1p'
Также можно преобразовывать одну последовательность в другую.
>>> set([1,2,3]) >>> tuple() (5, 6, 7) >>> list('привет') ['п', 'р', 'и', 'в', 'е', 'т']
Для преобразования в словарь каждый элемент должен получить свою пару:
>>> dict([[1,2], [3,4]]) >>> dict([(3,26), (4,44)])
Типы данных в Python: какие они бывают и как их различать
Виртуальное окружение в разработке на языке Python
Моё мнение про Python
Операторы в Python: какие они бывают, как работают и где используются
Основные аспекты изучения Python
В Python типы данных — это категории, которые определяют характеристики и поведение значений, использованных в программе. Python поддерживает различные типы данных, каждый из которых представляет определенный вид информации.
Базовые типы данных в Python
В Python существует несколько базовых типов данных, которые являются основой для работы с информацией в программе. Вот обзор основных типов данных в Python с примерами использования каждого из них.
Числовые типы данных
— `int` (integer) — целые числа.
```python age = 25 count = 100 ```
— `float` (floating-point) — числа с плавающей точкой.
```python pi = 3.14 temperature = 98.6 ```
Строковый тип данных
— `str` (string) — последовательность символов, заключенных в кавычки.
```python name = "Alice" message = 'Привет, мир!' ```
Логический тип данных
— `bool` (boolean) — логические значения `True` (истина) и `False` (ложь).
```python is_student = True is_adult = False ```
Списки
— `list` — упорядоченная изменяемая коллекция элементов, которые могут быть разных типов.
```python numbers = [1, 2, 3, 4, 5] fruits = ['яблоко', 'банан', 'груша'] ```
Кортежи
— `tuple` — упорядоченная неизменяемая коллекция элементов, которые могут быть разных типов.
```python coordinates = (10, 20) rgb_color = (255, 0, 0) ```
— `dict` (dictionary) — неупорядоченная коллекция пар ключ-значение, позволяющая быстро находить значение по ключу.
```python person = grades = ```
Множества
— `set` — неупорядоченная коллекция уникальных элементов.
```python colors = fruits_set = set(['яблоко', 'банан', 'груша']) ```
Каждый из этих базовых типов данных имеет свои особенности и применение в программировании. От выбора правильного типа данных зависит эффективность и функциональность вашего кода.
Готовы устроиться на высокооплачиваемую работу программиста?
Стартуйте с Python Start — онлайн курс от Foxminded, который откроет двери в мир Python.
Числовые типы данных в Python
В Python существуют два основных числовых типа данных: `int` (целые числа) и `float` (числа с плавающей точкой). Оба типа представляют числовые значения, но имеют некоторые отличия в своих свойствах и использовании.
`int` (целые числа)
— `int` представляет целые числа без дробной части.
— Примеры: 1, -5, 1000, 0.
— Целые числа могут быть положительными, отрицательными или нулем.
— `int` не имеет ограничения по размеру и может представлять целые числа произвольной длины.
Примеры использования `int`:
```python age = 25 quantity = 100 ```
`float` (числа с плавающей точкой)
— `float` представляет числа с плавающей точкой, т.е. числа с дробной частью.
— Примеры: 3.14, -0.5, 2.0, 1.23e-5 (научная нотация).
— `float` используется для представления вещественных чисел и результатов арифметических операций, в которых присутствует дробная часть.
Примеры использования `float`:
```python pi = 3.14 temperature = 98.6 ```
Общие операции с числовыми типами данных
1. Арифметические операции: `+` (сложение), `-` (вычитание), `*` (умножение), `/` (деление), `**` (возведение в степень).
```python a = 10 b = 3 result_sum = a + b # 13 result_sub = a — b # 7 result_mul = a * b # 30 result_div = a / b # 3.33333. result_power = a ** b # 1000 ```
2. Преобразование типов.
— Иногда может потребоваться преобразовать числовой тип данных из `int` в `float` или наоборот.
```python x = 5 y = 2.5 int_x = int(y) # 2 float_y = float(x) # 5.0 ```
3. Округление чисел.
— В Python есть функции `round()` и `int()` для округления чисел.
```python number = 3.6 rounded_number = round(number) # 4 integer_part = int(number) # 3 ```
Числовые типы данных в Python используются для выполнения математических операций, хранения количественной информации и представления результатов вычислений. Они играют важную роль в программировании и широко применяются в различных задачах, таких как вычисления, статистика, финансы, и многое другое.
Неизменяемые типы данных в Python
В Python неизменяемые типы данных — это типы данных, значения которых нельзя изменить после их создания. Когда переменной присваивается значение неизменяемого типа данных, нельзя изменить это значение напрямую. Вместо этого, если необходимо изменить значение, создается новый объект с новым значением.
Вот некоторые из основных неизменяемых типов данных в Python:
Числовые типы данных (`int`, `float`)
— Числовые типы данных в Python являются неизменяемыми. После создания переменной с числовым значением, это значение нельзя изменить.
```python x = 5 y = 3.14 x = 10 # Правильно: создается новый объект с новым значением y = y + 1 # Правильно: создается новый объект с новым значением ```
Строковый тип данных (`str`)
— Строки в Python также являются неизменяемыми. Когда создается строковая переменная, нельзя изменить ее символы напрямую.
```python message = "Привет" # Неправильно: нельзя изменить символы в строке message[0] = "п" # Правильно: создается новый объект с новым значением new_message = "п" + message[1:] ```
Кортежи (`tuple`)
— Кортежи являются неизменяемыми коллекциями элементов. После создания кортежа его элементы не могут быть изменены.
```python coordinates = (10, 20) # Неправильно: нельзя изменить элементы кортежа coordinates[0] = 5 # Правильно: создается новый кортеж с новыми значениями new_coordinates = (5, coordinates[1]) ```
Неизменяемые типы данных обеспечивают безопасность и предсказуемость программы, так как они не могут быть случайно изменены в процессе выполнения кода. Это также позволяет использовать неизменяемые объекты в качестве ключей словарей и элементов множеств, так как их значения остаются постоянными.
Примитивные типы данных в Python
В Python термин «примитивные типы данных» обычно не используется, как, например, в языках программирования C или Java. Вместо этого, в Python используются базовые (или встроенные) типы данных, которые представляют основные категории информации, с которыми можно работать в программе. Вот основные базовые типы данных в Python и их роли в программировании:
Числовые типы данных (`int`, `float`)
- `int` представляет целые числа без дробной части, а `float` представляет числа с плавающей точкой (с дробной частью).
- Числовые типы данных используются для выполнения математических операций, хранения количественной информации и представления результатов вычислений.
Строковый тип данных (`str`)
- `str` представляет последовательность символов, заключенных в кавычки.
- Строковые типы данных используются для работы с текстовой информацией, отображения сообщений пользователю, обработки данных и многого другого.
Логический тип данных (`bool`)
- `bool` представляет логические значения `True` (истина) и `False` (ложь).
- Логические типы данных используются для выполнения условных операций и принятия решений в программе.
Какие типы данных существуют в программировании
Когда классифицируете типы данных, легче определить, где они хранятся и для каких операций применяются.
Анастасия Хамидулина
Автор статьи
1 августа 2023 в 12:01
Данные — это зафиксированные сведения, с которыми работает компьютер: получает, обрабатывает и передает. В программировании есть несколько видов данных. Новичкам нужно разбираться в данных, чтобы быстрее научиться кодить и понимать алгоритмы.
Что такое тип данных, зачем он нужен
Переменные в математике классифицируют по ключевым характеристикам:
- вещественные;
- комплексные;
- логические;
- отдельные значения;
- множества значений;
- множества множеств.
Тип — это характеристика значений, которые переменная или выражение принимает. Функция тоже может сформировать тип.
Типизация — процесс определения типа информационными сущностями. Она бывает нескольких видов:
- статическая — заранее назначает и проверяет;
- динамическая — всё делает в процессе;
- статично-динамическая — совмещает оба предыдущих типа.
По назначению типов:
- сильная — навсегда;
- слабая — допускает изменения.
Многие языки программирования типизированы частично. Если типизация слабая, то можно и отступиться от правил систематизации типов. Программы со слабой типизацией проще сделать более эффективными. Но из-за слабой типизации в коде может появиться много ошибок — багов.
На курсах Skypro, например «Java-разработчик», учат писать чистый код, а еще самостоятельно тестировать его, находить и исправлять ошибки. В результате напишете несколько приложений, которые можно положить в портфолио.
Какие бывают типы данных
Основополагающее понятие в программировании — это виды данных. Классификация помогает определить, где они хранятся, что собой представляют и для каких операций применяются.
✔️ Логические
Этот тип данных основан на логике и может иметь два значения: false (ложь) или true (правда). В языках С# и C++ это bool, а в Java — boolean.
✔️ Целочисленные
Виды данных в программировании делят на знаковые и беззнаковые. В первых хранятся действительные числа и ноль, а во вторых — только больше нуля.
У беззнаковых данных диапазон в два раза больше, чем у знаковых. Это происходит из-за компьютерного восприятия. В знаковых типах бит отражает знак числа, где ноль — положительное значение, а единица — отрицательное.
Учитывая восприятие компьютерными устройствами целого значения, в ячейке памяти из n бит может храниться и 2n-1 для знаковых типов, и 2n — для беззнаковых.
Еще одна классификация типов данных:
- Тип short, или короткий целый. Занимает в ячейке памяти 16 бит, то есть 2 байта (216 = 65 536).
- Тип long. Ему отводится 64 бита = 8 байт (264 = 1,8 446 744 * 1019).
✔️ Числа с плавающей запятой
Плавающая запятая — форма представления действительных чисел, где число хранится в форме мантиссы и показателя степени. Если говорить на языке программирования, то каждое число может быть представлено в следующей форме:
где X — записываемое число;
Например: 1 592 916 = 1,592 916 ∗ 10 6 ; 0,00027,459 = 27,459 ∗ 10 -5 . На мониторе вы увидите следующие значения:
В предназначенном месте памяти хранится целое число фиксированной длины и последовательность вносимого значения.
✔️ Строковые
Строка string в JavaScript — часть текста или определенный заведомо установленный порядок знаков. Их закавычивают.
Отдельные языки применяют специальный вид данных в программировании, с его помощью заносят символ. Например, в языке С — char.
✔️ Указатели
Указатель — это объект, который хранит определенный адрес в памяти компьютера. Значение указателя — это физический адрес определенных данных: указатель указывает на эти данные.
Получение данных по адресу, который хранится в указателе, называют разыменованием указателя. При создании указателя перед названием переменной добавляют *. Указатель может быть нулевым и не указывать ни на один объект.
✔️ Идентификационные
Конечный набор значений определяет перечисляемый тип. Как правило, его представляет список идентификаторов в объявлении типа.
Разберем пример на языке С++ (в С# и Java — аналогично):
В случае когда идентификатор указывается в списке значений перечисляемого типа, он становится наименованием константы, которая определена в блоке типа.
✔️ Абстрактные
У абстрактного типа данных (АТД) есть преимущества перед остальными типами:
- Инкапсуляция деталей реализации. Инкапсуляция — ограничение доступа к компонентам, составляющим объект. Достаточно один раз инкапсулировать, чтобы пользователь смог самостоятельно взаимодействовать с АТД через интерфейс. Если детали реализаций поменяют, то представления клиентов о работе не изменятся.
- Снижение уровня сложности через абстрагирование от деталей реализации. Это значит, что детали скрывают и сосредотачиваются на ключевых аспектах системы. Так можно сосредоточиться на том, что делает АТД.
- Ограничение области использования данных. Все данные структуры АТД не зависят от других участков кода.
- Высокая информативность интерфейса.
Примеры
- В языке Python используют следующие типы данных программирования:
- int — целочисленный;
- char — символьный;
- bool — логический;
- float — с плавающей запятой;
- double — с плавающей запятой двойной точности.
Освойте Python на курсе от Skypro. Вас ждут 400 часов обучения и практики (достаточно десяти часов в неделю), подготовка проектов для портфолио, индивидуальная проверка домашних заданий и помощь опытных наставников. Получится, даже если у вас нет опыта в IT.
- Язык программирования JavaScript содержит следующие типы данных:
- string — тип данных «строка»;
- number — «число»;
- object — тип данных, хранящий свойства и методы;
- undefined — тип данных, значения которых не определены;
- boolean — логический;
- null — с «пустыми» значениями.
JavaScript можно изучить на курсе Skypro «Веб-разработчик». Программа построена от простого к сложному, в ней много практики. Уже к концу второго блока обучения сможете самостоятельно сделать лендинг с играми на JavaScript.
Самоприменение типов данных
У типа данных может быть особенность параметризации с каким-либо другим типом, но строго подчиненная и соотнесенная с принципами абстракции и параметричности.
Под теорией типов понимают математически формализованную базу, которая служит как для проектирования и анализа, так и для изучения систем типов данных в теории языков программирования. За всё это отвечает специально выделенный раздел в информатике.
Пример. Чтобы функция сортировки последовательностей могла быть реализована, необязательно знать свойства всех элементов, которые ее составляют. Важен допуск операции по сравнению и анализу данных. Тогда параметр «последовательности» станет параметрически полиморфным. Составляющие такого типа будут определяться и использоваться не с конкретными типами, а с параметрами-типами. Но параметрически полиморфный тип может быть представлен как конструктор других любых типов. Он становится оператором над типами в арифметической реальности.
В программировании и информатике есть понятия «отражение», «рефлексивность» или «интроспекция». Они обозначают одно и то же — выявление метатипов в динамике.
Представление в компьютере
Реальное программирование отличается от формальной теории информации. Главное отличие — в изучении вопросов об эффективности.
Отличие заключается в понятии «число». Этот термин в науке об ЭВМ и на практике абсолютно неодинаков. Число на ЭВМ понимается как ячейка электронной памяти. Размер кластера зависит от архитектуры ЭВМ и диапазона значений числа. Он обязательно ограничен, а стоп-объем равен объему ячейки.
Целые и вещественные числа в ячейках представлены по-разному. Положительные или неотрицательные числа представляются непосредственно, а вот существенно отрицательные целые числа — в дополнительном коде.
Что такое типы данных в python
Для ввода нужной информации используют input(). В этом примере переменная name с помощью оператора присваивания = получит введенное пользователем значение:
name = input()
Чтобы пользователю было понятнее, какое именно значение от него ожидает программа, можно добавить пояснение:
name = input('Как тебя зовут? ')
name = input('Введите свое имя ')
Напишем программу, которая запрашивает имя пользователя и выводит приветствие:
name = input('Как тебя зовут? ') print('Привет,', name)
Как тебя зовут? Вася Привет, Вася
В этой программе используются две встроенные функции input() и print(), а также переменная name . Переменная – это именованная область памяти, в которой во время выполнения программы хранятся данные определенного типа (о типах данных расскажем ниже). В стандартах оформления кода PEP 8 даны рекомендации по названиям переменных:
- Названия не должны начинаться с цифры, но могут заканчиваться цифрой. Например, назвать переменную 7up – неправильно, а так – seven11 – можно.
- Названия могут состоять из комбинации строчных, заглавных букв, цифр и символов подчеркивания: lower_case , mixedCase , CapitalizedCase , UPPER_CASE , lower123 .
- Не следует давать переменным названия, совпадающие со служебными словами, названиями встроенных функций и методов, к примеру – print, list, dict, set, pass, break, raise.
- Следует избегать использования отдельных букв, которые могут быть ошибочно приняты друг за друга – l (L в нижнем регистре), I (i в верхнем регистре) или за нуль – O .
- В названиях не должно быть пробелов, дефисов и специальных символов, например, ' или $ .
- Главный принцип именования переменных – осмысленность. По названию переменной должно быть понятно, какого рода данные в ней хранятся – например, car_model, petName,CARD_NUMBER более информативны, чем a, а1, а2.
Переменные выполняют две важные функции:
- делают код понятнее;
- дают возможность многократно использовать введенные данные.
Если программа небольшая, а введенное значение используется однократно, можно обойтись без использования переменной:
print('Привет,', input('Как тебя зовут?'))
Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека питониста»
Ввод и вывод нескольких переменных, f-строки
Если в программе используются несколько переменных, ввод данных можно оформить на отдельных строках:
first_name = input() last_name = input() age = input()
Или в одну строку:
first_name, last_name, age = input(), input(), input()
Либо так – если значения переменных равны:
x1 = x2 = x3 = input()
Чтобы вывести значения переменных на экран, названия перечисляют в print() через запятую:
print(first_name, last_name, age)
Или по отдельности:
print(first_name) print(last_name) print(age)
При перечислении через запятую Python выводит все переменные в одну строку, разделяя значения пробелами:
Вася Пупкин 12
Вместо пробела можно подставить любой другой разделитель. Например:
print(first_name, last_name, age, sep="***")
В результате значения будут разделены звездочками:
Вася***Пупкин***12
Если нужно вывести значения не в строку, а в столбик, можно воспользоваться специальным параметром end="\n" – он обеспечивает переход на новую строку:
print(first_name, last_name, age, end="\n")
Чтобы сделать вывод более информативным, используют f-строки:
print(f'Имя: , Фамилия: , Возраст: ')
Все содержимое такой строки находится в конструкции f'. ' , а названия переменных внутри строки заключаются в фигурные скобки <. >.
Операции во время вывода
Функция print(), помимо вывода результатов работы программы, допускает проведение разнообразных операций с данными:
>>> print(5 + 5) 10 >>> print(10 // 3) 3 >>> print(6 ** 2) 36 >>> print('I' + ' love' + ' Python') I love Python
Встроенные типы данных в Python
Питон работает с двумя категориями данных – встроенными типами (они поддерживаются по умолчанию) и специализированными (для операций с ними нужно подключение определенного модуля). К специализированным типам данных относятся, например, datetime (дата и время) и deque (двухсторонняя очередь).
Все встроенные типы данных в Python можно разделить на следующие группы:
- Числовые – целые, вещественные, комплексные числа. Примечание: для максимально точных расчетов с десятичными числами в Python используют модуль decimal (тип данных Decimal), а для операций с рациональными числами (дробями) – модуль fractions (тип данных Fraction).
- Булевы – логические значения True (истина) и False (ложь).
- Строковые – последовательности символов в кодировке Unicode.
- NoneType – нейтральное пустое значение, аналогичное null в других языках программирования.
- Последовательности – списки, кортежи, диапазоны.
- Словари – структура данных типа «ключ: значение».
- Множества – контейнеры, содержащие уникальные значения. Подразделяются на изменяемые set и неизменяемые frozenset множества.
- Байтовые типы – bytes (байты), bytearray (изменяемая байтовая строка), memoryview (предоставление доступа к внутренним данным объекта).
В таблице приведены примеры и определения встроенных типов данных:
Тип данных | Значение | Определение в Python | Вариант использования |
Целые числа | -3, -2, -1, 0, 1, 2, 3 | int | a = int(input()) |
Вещественные числа | -1.5, -1.1, 0.6, 1.7 | float | a = float(input()) |
Комплексные числа | −5i, 3+2i | complex | a = complex(input()) |
Булевы значения | True, False | True, False | flag = True |
NoneType | None | None | a = None |
Строка | 'abracadabra' | str | a = str(5) |
Список | [1, 2, 3], ['a', 'b', 'c'] | list | a = list(('a', 'b', 'c')) |
Кортеж | ('red', 'blue', 'green') | tuple | a = tuple(('red', 'blue', 'green')) |
Изменяемое множество | , | set | a = set(('black', 'blue', 'white')) |
Неизменяемое множество | , | frozenset | a = frozenset((2, 5, 3, 9)) |
Диапазон | 0, 1, 2, 3, 4, 5 | range | a = range(6) |
Словарь | dict | a = dict(color='red', model='VC6', dimensions='30x50') | |
Байты | b'\x00\x00\x00' | bytes | a = bytes(3) |
Байтовая строка | (b'\x00\x00') | bytearray | a = bytearray(2) |
Просмотр памяти | 0x1477a5813a00 | memoryview | a = memoryview(bytes(15)) |
Чтобы узнать тип данных, нужно воспользоваться встроенной функцией type():
>>> a = 3.5 >>> type(a)
Как задать тип переменной
Важно заметить, что если тип переменной не указан явно при вводе, т.е. ввод выполняется как a = input() , то Python будет считать введенное значение строкой. В приведенном ниже примере Питон вместо сложения двух чисел выполняет конкатенацию строк:
>>> a, b = input(), input() 5 6 >>> print(a + b) 56
Это произошло потому, что a и b были введены как строки, а не целые числа:
>>> type(a) >>> type(b)
Чтобы ввести целое число, следует использовать конструкцию int(input()) , вещественное – float(input()) .
Математические операции в Python
Все операции в математике имеют определенный приоритет: сначала выполняется возведение в степень, затем деление по модулю и так далее. Этот приоритет соблюдается и в Питоне:
Приоритет | Оператор Python | Операция | Пример | Результат |
1 | ** | Возведение в степень | 5 ** 5 | 3125 |
2 | % | Деление по модулю (получение остатка) | 16 % 7 | 2 |
3 | // | Целочисленное деление (дробная часть отбрасывается) | 13 // 3 | 4 |
4 | / | Деление | 39 / 2 | 19.5 |
5 | * | Умножение | 123 * 321 | 39483 |
6 | - | Вычитание | 999 – 135 | 864 |
7 | + | Сложение | 478 + 32 | 510 |
Python допускает применение сложения и умножения в операциях со строками. Сложение строк, как уже упоминалось выше, называется конкатенацией:
>>> print('Python -' + ' лучший' + ' язык' + ' программирования') Python - лучший язык программирования
Умножение строки на целое число называется репликацией:
>>> print('Репликанты' * 5) РепликантыРепликантыРепликантыРепликантыРепликанты
Однако попытки умножить строки друг на друга или на вещественное число обречены на провал:
>>> print('Репликанты' * 5.5) Traceback (most recent call last): File "", line 1, in TypeError: can't multiply sequence by non-int of type 'float'
Преобразование типов данных
Python позволяет на лету изменять типы данных. Это может оказаться очень полезным при решении тренировочных и практических задач.
Округление вещественного числа:
>>> a = float(input()) 5.123 >>> print(int(a)) 5
Преобразование целого числа в вещественное:
>>> a = 5 >>> print(float(a)) 5.0
Преобразование строки в число и вывод числа без ведущих нулей:
>>> a = '00032567' >>> print(int(a)) 32567
Сложение строки и числа:
>>> a = 'Apollo ' >>> b = 13 >>> print(a + str(b)) Apollo 13
Преобразование списка в строку:
>>> a = ['п', 'р', 'и', 'в', 'е', 'т'] >>> print('*'.join(a)) п*р*и*в*е*т
Преобразование строки в множество:
>>> a = 'привет' >>> print(set(a))
Преобразование строки в список:
>>> a = 'я изучаю Python' >>> print(list(a)) ['я', ' ', 'и', 'з', 'у', 'ч', 'а', 'ю', ' ', 'P', 'y', 't', 'h', 'o', 'n']
Преобразование кортежа в список:
>>> a = ('red', 'blue', 'green') >>> print(list(a)) ['red', 'blue', 'green']
Разумеется, преобразование типов данных происходит в определенных пределах – строку, содержащую буквенные и специальные символы, нельзя сделать числом, а превращение списка, строки, множества или кортежа в словарь потребует дополнительных манипуляций, которые мы изучим позже.
Практика – задачи с решениями
Задание 1 . Напишите программу, которая запрашивает имя и возраст пользователя, и выводит приветствие и возраст пользователя в следующем году. Пример работы программы:
Как тебя зовут? Катя Привет, Катя! Сколько тебе лет? 14 Здорово! В следующем году тебе будет 15!
name = input('Как тебя зовут? ') print(f'Привет, !') age = int(input('Сколько тебе лет? ')) print(f'Здорово! В следующем году тебе будет !')
Задание 2. Напишите программу, которая запрашивает имя, фамилию и возраст пользователя, а затем выводит эти данные в столбик с помощью f-строки. Результат работы программы:
Имя: Евгения Фамилия: Фролова Возраст: 19
first_name = input() last_name = input() age = input() print(f'Имя: \nФамилия: \nВозраст: ')
Задание 3. Напишите программу, которая выводит на экран прямоугольник 5 х 15, сформированный из звездочек. Пример вывода:
print('*' * 15) print('*' + ' ' * 13 + '*') print('*' + ' ' * 13 + '*') print('*' + ' ' * 13 + '*') print('*' * 15)
Задание 4. Напишите программу, которая получает на вход целое число n из диапазона от 1 до 9 включительно, и выводит результат вычисления выражения nnn – nn – n. Например, если введенное число 3, программа должна вывести 297 (333 – 33 – 3).
num1 = input() num2 = int(num1 * 2) num3 = int(num1 * 3) print(num3 - num2 - int(num1))
Задание 5. Напишите программу, которая получает на вход целые положительные числа a и b, а затем выводит результаты математических операций в следующем формате:
Число а в степени b = 25 Произведение a * b = 10 Сумма a + b = 7 Разница a - b = 3
a, b = int(input()), int(input()) print('Число а в степени b =', a ** b) print('Произведение a * b =', a * b) print('Сумма a + b =', a + b) print('Разница a - b =', a - b)
Задание 6. Напишите программу, которая получает от пользователя вещественные числа a и b – длину и ширину прямоугольника, – и выводит периметр и площадь прямоугольника в следующем формате:
Площадь S = 88.0 Периметр P = 38.0
Площадь вычисляется по формуле S = a * b, периметр P = 2 * (a + b).
a, b = float(input()), float(input()) print('Площадь S =', a * b) print('Периметр P =', 2 * (a + b))
Задание 7. Напишите программу, которая получает на вход число от 420 до 540 (оптимальная продолжительность сна в минутах) и помогает пользователю определить, на какое время (в формате «часы:минуты») нужно установить звонок будильника. Отсчет времени начинается с полуночи.
Пример ввода:
Поставь будильник на 7:50
time = int(input()) print(f'Поставь будильник на :')
Задание 8. Напишите программу, которая получает на вход целое число n – количество дней, и конвертирует n в годы, месяцы и дни.
Пример ввода:
Годы: 1 Месяцы: 1 Дни: 3
n = int(input("Введите количество дней: ")) years = n // 365 months = (n - years * 365) // 30 days = (n - years * 365 - months * 30) print(f'Годы: Месяцы: Дни: ')
Задание 9. Напишите программу, которая получает от пользователя целое число n – количество секунд, и конвертирует n в часы, минуты и секунды.
Пример ввода:
3426
Часы: 0 Минуты: 57 Секунды: 6
n = int(input()) seconds = n % (24 * 3600) hours = seconds // 3600 seconds = seconds % 3600 minutes = seconds // 60 seconds = seconds % 60 print(f'Часы: Минуты: Секунды: ')
Задание 10. Напишите программу, которая получает на вход вещественные числа x1, y1, х2, y2 – координаты точек a (x1, y1) и b (х2, y2) на плоскости – и вычисляет расстояние между a и b.
Пример ввода:
3.6 6.7 5.4 15.2
10.278618584226189
x1, x2, y1, y2 = float(input()), float(input()), float(input()), float(input()) dist = ((x2 - x1) ** 2 + (y2 - y1) ** 2) ** 0.5 print(dist)
Примечание: модуль math, работу с которым мы рассмотрим подробнее позже, имеет функцию dist для вычисления расстояния между точками на плоскости и в пространстве:
import math x1, x2, y1, y2 = float(input()), float(input()), float(input()), float(input()) a, b = [x1, y1], [x2, y2] d = math.dist(a, b) print(d)
Подведем итоги
В этой части мы рассмотрели базовые типы данных в Python, разобрали дополнительные параметры ввода и вывода, научились преобразовывать одни типы данных в другие, написали первые простые программы. В следующей части будем изучать методы работы со строками.
Содержание самоучителя
- Особенности, сферы применения, установка, онлайн IDE
- Все, что нужно для изучения Python с нуля – книги, сайты, каналы и курсы
- Типы данных: преобразование и базовые операции
- Методы работы со строками
- Методы работы со списками и списковыми включениями
- Методы работы со словарями и генераторами словарей
- Методы работы с кортежами
- Методы работы со множествами
- Особенности цикла for
- Условный цикл while
- Функции с позиционными и именованными аргументами
- Анонимные функции
- Рекурсивные функции
- Функции высшего порядка, замыкания и декораторы
- Методы работы с файлами и файловой системой
- Регулярные выражения
- Основы скрапинга и парсинга
- Основы ООП: инкапсуляция и наследование
- Основы ООП – абстракция и полиморфизм
- Графический интерфейс на Tkinter
- Основы разработки игр на Pygame
- Основы работы с SQLite
- Основы веб-разработки на Flask
- Основы работы с NumPy
- Основы анализа данных с Pandas
Материалы по теме
- 5 задач с решениями на Python для начинающих разработчиков
- Аннотации типов в Python: все, что нужно знать за 5 минут
- Фундаментальные структуры данных: массивы и связанные списки с реализацией на Python