- Переменные в Питоне
- Как объявить переменную в Питоне
- Автоматическое определение типа данных
- Как узнать тип переменной в Питоне
- Присвоение и преобразование типа данных
- Именование переменных
- №6 Присвоение типа переменной / Уроки по Python для начинающих
- int(): пример преобразования
- float(): пример преобразования
- str(): пример преобразования
- Присвоение типа переменной в Python. Как присвоить тип переменной в Python
- Функции-конструкторы для преобразования типов данных
- Целочисленное преобразование
- Преобразование в число с плавающей точкой
- Преобразование в строки
- Другие виды преобразований
- Заключение
Переменные в Питоне
На курсе «Программирование на Питоне» мы во многом продолжим изучать то, о чем узнали на вводном курсе, но на гораздо более детальном уровне. И начнем мы этот путь с того, что еще раз взглянем на переменные в Питоне.
Перед прохождением этого занятия рекомендую изучить первый раздел вводного курса или, как минимум, познакомиться с программой Google Colab, которую мы используем в нашей работе, а также повторить основы программирования.
Как объявить переменную в Питоне
Создание или объявление переменной в Питоне происходит в тот момент, когда вы присваиваете ей определенное значение. Это очень удобно. Заранее объявлять переменную не требуется.
Также напомню, что в Питоне можно записать значения сразу в несколько переменных или присвоить одно и то же значение нескольким переменным.
Помимо этого, список можно «распаковать» (unpack) в несколько переменных:
Автоматическое определение типа данных
При создании и записи данных в переменную Питон попытается автоматически определить тип этих данных. Приведем несколько примеров:
Это очень важная и удобная особенность, которая выгодно отличает Питон от многих других языков программирования.
Как узнать тип переменной в Питоне
В случае, если вы не уверены в том, к какому типу данных относится переменная, можно воспользоваться функцией type().
Присвоение и преобразование типа данных
Иногда может быть полезно принудительно присвоить или преобразовать тип данных уже созданной переменной. Начнем с присвоения типа данных:
Также тип данных можно изменить.
Возможно, вы спрашиваете себя зачем инженеру машинного обучения в таких деталях разбираться в типах переменных. Одним из наиболее очевидных применений является предварительная обработка данных, поступивших, скажем, в формате строки (str), хотя с точки зрения логики это должно быть целое число (int).
Именование переменных
Напомню, что имя переменной может включать только латинские буквы и цифры, а также символ подчеркивания. Одновременно оно не должно начинаться с цифры. Питон отличает заглавную от строчной буквы. Пробелы и кириллицу использовать нельзя.
Как я не устаю повторять, название переменных должно быть осознанным. Это упростит работу с длинным кодом.
Посмотрим на допустимые названия переменных:
№6 Присвоение типа переменной / Уроки по Python для начинающих
Порой, в работе с Python вам может понадобиться явно указать тип переменной. Это можно сделать с помощью преобразования. Python — объектно-ориентированный язык программирования, в нем используются классы для определения типов данных, включая простые типы.
Преобразование в Python выполняется с использованием функций-конструкторов:
- int() — создает целочисленное число из числового значения, либо значения с плавающей точкой (округляя его до предыдущего целого числа) или строкового значение (при условии, что данная строка является целым числом)
- float() — так же создает число, но с плавающей точкой из целочисленного значения, значения с плавающей точкой или строкового (при условии, что строка представляет собой число с плавающей точкой или целое число)
- str() — создает строку из многих типов данных, включая строки, целые числа и числа с плавающей точкой.
int(): пример преобразования
x = int(1) # x станет 1 y = int(2.8) # y станет 2 z = int("3") # z станет 3
float(): пример преобразования
x = float(1) # x станет 1.0 y = float(2.8) # y станет 2.8 z = float("3") # z станет 3.0 w = float("4.2") # w станет 4.2
str(): пример преобразования
x = str("s1") # x станет 's1' y = str(2) # y станет '2' z = str(3.0) # z станет '3.0'
Присвоение типа переменной в Python. Как присвоить тип переменной в Python
Переменные – важная составляющая программирования. Они используются для хранения чисел, строк, контейнеров с данными (такими, как списки, словари, множества, кортежи).
Каждая переменная имеет определенный тип данных, который обозначает разновидность информации, которая в ней хранится. Основных типа три: целочисленные, числа с плавающей точкой и строки. Вообще, они присваиваются автоматически, когда переменной передается определенное значение. Но в некоторых случаях необходимо точно задавать, какой тип данных необходимо использовать. Например, если пользователь ввел число в строковой форме, а с ним надо выполнить некие расчеты.
Чтобы явно указать тип переменной, используются специальные функции-преобразователи. Поскольку Python является объектно-ориентированным языком программирования, то для определения типов данных включаются классы.
Функции-конструкторы для преобразования типов данных
Есть три функции, которые осуществляют преобразование типов данных в этом языке программирования:
- int(). Преобразовывает число с плавающей точкой или строку в целочисленное значение. В качестве аргумента принимает соответствующее значение или переменную, которая содержит float или string . Если она используется для преобразования дробного числа в целое, то дробная часть просто отсекается. То есть, происходит округление в меньшую сторону.
- float(). Осуществляет преобразование строки или целочисленного значения в число с плавающей точкой. Если происходит конвертация целого числа или строки, содержащей целое число, в дробное, то тогда добавляется точка и цифра 0. Например, 1 будет сконвертирован в 1.0.
- str(). Эта функция выполняет обратное преобразование целочисленного значения или числа с плавающей точкой. То есть, создает строку из числа. Также в качестве аргумента этой функции может использоваться строка. То есть, можно создать одну строку из целого числа, числа с плавающей точкой и нескольких слов.
Главное требование ко всем функциям, которые преобразовывают строки в числовой формат: объект типа string должен включать в себя исключительно цифры. Другие знаки использовать нельзя.
А теперь давайте рассмотрим каждую из этих функций преобразования более подробно.
Целочисленное преобразование
В Python за это, как мы уже поняли, отвечает функция int() , которая после обработки данных, введенных в нее, выводит целое число в десятичной системе счисления. Приведем пример использования функции для большей наглядности.
x = int(1) # x станет 1
y = int(2.8) # y станет 2
z = int(«3») # z станет 3
В комментариях в этом примере указано, какое число получится после преобразования. Обратите внимание, что число 2.8 округляется в меньшую сторону, несмотря на правила математики.
Также можно вызвать функцию int() без аргументов. В результате, будет получено значение 0.
Как правило, этой функции передается исключительно один аргумент, который являет собой или число, или строку. Если же использовать в качестве строки буквы, будет выдана ошибка. Вот пример ввода функции в консоль Python и исключения, которое при этом вызывается.
>>> int('4') 4 >>> int('3a') Traceback (most recent call last): File "", line 1, in int('3a') ValueError: invalid literal for int() with base 10: '3a'
Эта ошибка содержит следующую информацию:
- Строка, в которой ошибка.
- Функция, в результате исполнения которой возникло исключение.
- В чем заключается вообще эта ошибка (здесь описано, что используется неправильное значение аргумента функции int – 3a .
А что будет, если передать этой функции целочисленное значение? Ничего не изменится. Функция вернет его же.
А теперь приведем несколько примеров, как эта функция обрабатывает числа с плавающей точкой.
>>> int(87) 87 >>> int(-103) -103 >>> int(234.879) 234 >>> int(-0.3) 0 >>> int(-0.9) 0
Обратите внимание, что мы можем использовать как положительные, так и отрицательные числа типа float( или вещественные, как их еще часто называют).
Часто у новичков появляется вопрос: что будет, если в строку ввести число с плавающей точкой, а потом передать ее функции int() . К сожалению, такие преобразования интерпретатору не под силу. Поэтому будет выдана ошибка.
>>> int('101.1') Traceback (most recent call last): File "", line 1, in int('101.1') ValueError: invalid literal for int() with base 10: '101.1'
Точка здесь не считается числовым значением, поэтому ее использовать нельзя.
А как же тогда выполнить преобразование строки, содержащей число с плавающей точкой, в целочисленное значение с дальнейшим округлением? Для этого необходимо сначала использовать функцию float() , чтобы получить число с плавающей точкой из строки, а потом уже сконвертировать это число в целочисленный формат.
>>> a = '15.76' >>> a = float(a) >>> a 15.76 >>> a = int(a) >>> a 15
Если для функции int() указывается второй аргумент, то первый всегда должен быть строчным. Второй аргумент этой функции говорит о системе счисления, в которой находится число, указанное в строке первого аргумента. Например, можно задать десятичную, двоичную систему и так далее.
>>> int('12',8) 10 >>> int('13h',20) 477 >>> int('111001',2) 57
Также можно использовать специальные префиксы, которые означают двоичную, восьмеричную и шестнадцатеричную системы счисления. Учтите, что если такой аргумент заключается в кавычки, то тогда обязательно использовать число, указывающее на систему счисления.
>>> int(0b11) 3 >>> int('0b11') Traceback (most recent call last): File "", line 1, in int('0b11') ValueError: invalid literal for int() with base 10: '0b11' >>> int('0b11',2) 3 >>> int(0o10) 8 >>> int(0x15) 21 >>> int(0xA5) 165
Таким образом, функция int() возвращает как десятичное число (если используется только один аргумент), так и числа в других системах счисления, если используется два аргумента.
Преобразование в число с плавающей точкой
Итак, функция float() используется для преобразования целочисленного значения или строки в число с плавающей точкой. Синтаксис, по сути, такой же самый, как и в предыдущем случае. В качестве аргумента функция принимает переменную или значение, которые необходимо сконвертировать.
float(57)
А этот пример демонстрирует использование переменных для преобразования целочисленного значения в число с плавающей точкой.
Приведем еще несколько примеров.
x = float(1) # x станет 1.0 y = float(2.8) # y станет 2.8 z = float("3") # z станет 3.0 w = float("4.2") # w станет 4.2
Точно так же, как и в случае с целыми числами, в комментариях приводится число, которое получится после преобразования. Обратите внимание на то, что при конвертации целого числа добавляется ноль. То есть, числа с плавающей точкой не могут записываться так, как мы привыкли. Они всегда имеют хоть один знак после запятой.
Также можно выполнить преобразование в число с плавающей точкой еще одним способом. Но работает он не всегда. Это операция преобразования с помощью деления. Если разделить 5 на 2, в результате получится 2.5. Python это учитывает, и автоматически выполняет соответствующее преобразование.
a = 5 / 2
Но если в результате деления появляется целое число (например если делится 10 на 2), то никакого преобразования не происходит.
Преобразование в строки
Для этого, как мы уже поняли, используется метод str() . Если необходимо преобразовать целое число в строку, необходимо его написать в качестве аргумента этой функции.
str(12)
Если запустить эту команду в интерактивной оболочке Python, то вывод будет следующим.
То, что в окне интерпретатора выводится число с кавычками, говорит о том, что это данные строчного типа.
Особенно полезно осуществлять преобразование в строки с помощью переменных. В качестве примера приведем такой фрагмент.
user = "Michael" lines = 50 print("Congratulations, " + user + "! You just wrote " + lines + " lines of code.")
Если мы попробуем выполнить эти команды, то будет выдана ошибка.
TypeError: Can’t convert ‘int’ object to str implicitly
В чем причина? Дело в том, что склеивание строк с числами возможно только при предварительной конвертации чисел в строчный формат. Для этого необходимо в качестве составляющей будущей строки использовать вместо числа метод str() , и как аргумент, использовать переменную lines .
Тогда проблем при исполнении кода не будет никаких.
Congratulations, Michael! You just wrote 50 lines of code.
А сам этот код будет выглядеть так.
user = "Michael" lines = 50 print("Congratulations, " + user + "! You just wrote " + str(lines) + " lines of code.")
Также возможно использование этого метода для преобразования числа с плавающей точкой в строку. Для этого необходимо соответствующее значение или переменную поместить в скобки.
print(str(421.034)) f = 5524.53 print(str(f)) 421.034 5524.53
Для конкатенации (то есть, объединения) строк и чисел с плавающей точкой, используется функция преобразования числа в строку, так же, как и с целочисленными значениями.
Другие виды преобразований
Мы привели примеры самых простых преобразований. Но можно конвертировать не только в числа и строки, а и, например, в кортежи и списки.
Так, для преобразования в кортеж используется метод tuple() .
print(tuple(['pull request', 'open source', 'repository', 'branch'])) ('pull request', 'open source', 'repository', 'branch')
А чтобы выполнить преобразование кортежа в список, необходимо использовать функцию list()
Заключение
Теперь вы владеете необходимыми навыками преобразования различных типов данных в Python, используя встроенные методы. Это позволяет значительно увеличить гибкость вашего кода.