Python узнать тип переменной: Синтаксис Python: type, isinstance — определяем тип переменной | PyNSK
Синтаксис Python: type, isinstance — определяем тип переменной | PyNSK
С помощью функции type()
можно проверить, принадлежит ли данное тому или иному типу:
>>> a = 10 >>> b = [1,2,3] >>> type(a) == int True >>> type(b) == list True >>> type(a) == float False
То же самое можно сделать с помощью функции isinstance()
:
>>> isinstance(a,int) True >>> isinstance(b,list) True >>> isinstance(b,tuple) False >>> c = (4,5,6) >>> isinstance(c,tuple) True
Однако isinstance()
по сравнению с type()
позволяет проверить данное на принадлежность хотя бы одному типу из кортежа, переданного в качестве второго аргумента:
>>> isinstance(a,(float, int, str)) True >>> isinstance(a,(list, tuple, dict)) False
Отмечают другое более важное преимущество isinstance()
. Эта функция поддерживает наследование. Для isinstance()
экземпляр производного класса есть экземпляр его базового класса:
>>> class A (list): ... pass ... >>> a = A() >>> type(a) == list False >>> type(a) == A True >>> isinstance(a,A) True >>> isinstance(a,list) True
Date
Categories
Синтаксис Python
Tags
type
/
isinstance
Share on Twitter
Share on Facebook
Предлагаем почитать:
Узнать тип type() и проверить тип isinstance()
В Python у нас утиная динамическая типизация, поэтому бывает что нужно узнать тип переменной. Функция type()
возвращает тип аргумента или, учитывая, что в Python – все класс, то класс аргумента. Результат можно сравнить с известным типом:
>>> i, s = 10, "hello" >>> type(i) <class 'int'> >>> type(i) is int True >>> type(s) is str True >>> class A: pass ... >>> a = A() >>> type(a) is A True
Можно создать экземпляр объекта того же класса, что и переменная:
>>> new_a = type(a)() >>> type(new_a) == type(a) True
⚠️ Нужно знать! type()
не принимает во внимание наследование. Тип наследника отличается от типа родителя:
>>> class B(A): pass ... >>> type(A()) is type(B()) False
Лучший способ проверить типы – функция isinstance(x, type)
(instance англ. – экземпляр). Она возвращает True, если первый аргумент является экземпляром класса во втором аргументе:
>>> isinstance(i, int) True >>> isinstance(s, str) True >>> isinstance(a, A) True
Функция поддерживает наследование:
class A: pass class B(A): pass b = B() >>> isinstance(b, A) True
И самое крутое: вторым аргументом допускается передать кортеж из типов, и isinstance
вернет True
, если хоть один из типов в кортеже подходит:
>>> isinstance(i, (int, float)) True >>> isinstance(a, (A, B)) True
Загадка:
class A: ... a = A() class A: ... print(isinstance(a, A))
Правильный ответ был False!
Объяснение. Динамическая натура Python позволяет переопределить класс во время интерпретации. Помните, как недавно я рассказывал про декораторы класса? Там мы подменяли один класс другим. Вот это из той же оперы. Тут мы подменили один класс, другим классом, отвязав имя А
от старого класса и привязав его к новому. Старый класс А
остался жив только как класс объекта в переменной a
. Старого и нового классов разные адреса (id
):
class A: ... print(id(A)) # 140479777819720 a = A() class A: ... print(id(A)) # 140479777809672 isinstance(a, A) # False
Специально для канала @pyway. Подписывайтесь на мой канал в Телеграм @pyway 👈
2 600
Подробно про типы данных Python
Python — это объектно-ориентированный язык программирования. Каждая переменная в Python является экземпляром некоторого класса, есть много предопределенных типов данных. Мы можем создавать наши собственные классы для определения пользовательских типов данных.
Какие типы данных наиболее популярны в Python?
Некоторые из популярных типов данных в Python:
- Числа — int, float, complex;
- Последовательности — строка, список, кортеж, набор;
- Карта — Dict.
Как определить тип данных переменной?
Мы можем использовать функцию type()
чтобы узнать тип данных переменной.
i = 10 print(type(i))
Давайте посмотрим на несколько примеров популярных типов данных на Питон.
Строка
Строки Python являются экземплярами класса str. Строка представляет собой последовательность символов Юникода. Строки неизменяемы. Мы можем определить строку, используя одинарные кавычки (‘) или двойные кавычки («).
String — самый популярный тип данных в Python. Для строковых объектов поддерживаются различные операции — длина, формат, разделение, соединение, нарезка и т. д.
s = "abc" print(type(s)) s1 = 'hello' print(type(s1)) print(s[1:2]) print(len(s)) print(s.split('b'))
Вывод:
<class 'str'> <class 'str'> b 3 ['a', 'c']
Числа
В категории чисел есть три типа данных — int, float и complex. В Python 2 был еще один тип данных long, но он стал устаревшим в Python 3.
i = 10 print(type(i)) i = 1.23 print(type(i)) i = 1 + 2j print(type(i))
Кортеж
Кортеж в Python — это упорядоченная последовательность элементов. Кортеж неизменяем, т.е. после определения мы не можем изменить его значения.
Мы можем определить кортеж, используя круглые скобки, где элементы разделяются запятыми. Кортеж может содержать любое количество элементов, и элементы могут быть любого типа.
t = (1, 2, 3) print(type(t)) t = ('a', 1, [1, 2]) print(type(t))
Вывод:
<class 'tuple'> <class 'tuple'>
Список
Список почти такой же, как и Tuple, за исключением того, что он изменяемый. Порядок элементов сохраняется.
Список определяется с помощью скобок, а элементы разделяются запятыми.
my_list = [1, 2, 3] print(type(my_list)) my_list = ['a', 1, [1, 2]] print(type(my_list))
Вывод:
<class 'list'> <class 'list'>
Набор
Python Set — это неупорядоченный набор элементов. Набор не может иметь повторяющихся значений. Порядок элементов в Наборе не поддерживается.
Набор определяется с помощью фигурных скобок, где элементы разделяются запятыми. Python Set использует хеширование для хранения элементов. Таким образом, элементы должны быть хешируемыми, то есть функция hash()
должна работать с ними. Поскольку List не может быть хеширован, мы не можем хранить объект List в Set.
my_set = {1, 2, 3, 1} print(type(my_set)) print(my_set) my_set = {'a', 1, 'a'} print(type(my_set)) print(my_set)
Вывод:
<class 'set'> {1, 2, 3} <class 'set'> {1, 'a'}
Давайте посмотрим, что произойдет, когда мы попытаемся использовать список в качестве элемента Set.
>>> my_set = {1, [1]} Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unhashable type: 'list' >>>
Словарь
Словарь Python — это неупорядоченный набор пар ключ-значение. Он определяется фигурными скобками, а элементы разделяются запятыми. Ключ и значение могут быть любого типа. Пара «ключ-значение» определяется с помощью двоеточия (ключ: значение).
Объекты словаря Python имеют тип ‘dict’. Они хороши для хранения большого количества значений, когда требуется быстрое получение.
my_dict = {"1": "Apple", "2": "Banana"} print(type(my_dict)) my_dict = {1: 1, 2: 'b', 3: [1, 2]} print(type(my_dict))
Словарь Python использует хеширование ключа для хранения и извлечения элементов, поэтому ключевой объект должен поддерживать функцию hash(). Вот почему мы не можем использовать список в качестве ключа элемента словаря.
>>> my_dict = {[1]: "a"} Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unhashable type: 'list' >>>
Определение пользовательского типа данных в Python
Мы можем определить собственный тип данных, создав класс.
class Data: pass d = Data() print(type(d))
Есть ли у функций тип данных?
До сих пор мы видели, что тип данных связан с переменными. Но есть ли у функций Python также тип данных?
Давайте проверим это с помощью простой программы.
def foo(): pass print(type(foo))
Вывод:
<class 'function'>
Таким образом, функции также имеют тип данных. Они являются экземплярами функции класса.
Есть ли у методов класса тип данных?
Посмотрим, есть ли у методов класса Python тип данных или нет.
class Data: def foo(self): pass d = Data() print(type(d.foo))
Вывод:
<class 'method'>
Таким образом, методы класса Python имеют тип данных как «метод». Они являются экземплярами класса «метод».
Вывод
В Python все является объектом какого-то класса, даже функции и методы класса. Мы можем использовать встроенную функцию type() для определения типа данных объекта.
Как определить тип переменной Python?
Так что если у вас есть переменная, например:
one = 1
Вы хотите знать его тип?
В Python есть правильные и неправильные способы делать практически все. Вот правильный путь:
использование type
>>> type(one)
<type 'int'>
Вы можете использовать __name__
атрибут, чтобы получить имя объекта. (Это один из немногих специальных атрибутов, для которого нужно использовать __dunder__
имя, чтобы добраться до него — в inspect
модуле даже нет метода для него .)
>>> type(one).__name__
'int'
Не использовать __class__
В Python имена, начинающиеся с подчеркиваний, семантически не являются частью общедоступного API, и пользователям рекомендуется избегать их использования. (За исключением случаев, когда это абсолютно необходимо.)
Так как type
дает нам класс объекта, мы должны избегать его получения напрямую. :
>>> one.__class__
Обычно это первая идея, которую люди имеют при доступе к типу объекта в методе — они уже ищут атрибуты, поэтому тип кажется странным. Например:
class Foo(object):
def foo(self):
self.__class__
Не. Вместо этого, введите (self):
class Foo(object):
def foo(self):
type(self)
Детали реализации целых и чисел
Как узнать тип переменной: 32-разрядная без знака, 16-разрядная со знаком и т. Д.?
В Python эти особенности являются деталями реализации. Итак, в общем, мы обычно не беспокоимся об этом в Python. Однако, чтобы удовлетворить ваше любопытство …
В Python 2 int обычно представляет собой целое число со знаком, равное ширине слова реализации (ограничено системой). Это обычно реализуется как долго C . Когда целые числа становятся больше этого значения, мы обычно конвертируем их в длинные Python (с неограниченной точностью, не путать с длинными C).
Например, в 32-битном Python 2 мы можем вывести, что int является 32-битным целым числом со знаком:
>>> import sys
>>> format(sys.maxint, '032b')
'01111111111111111111111111111111'
>>> format(-sys.maxint - 1, '032b') # minimum value, see docs.
'-10000000000000000000000000000000'
В Python 3 старый int исчезает, и мы просто используем (Python) long как int, который имеет неограниченную точность.
Мы также можем получить некоторую информацию о числах с плавающей точкой в Python, которые обычно реализуются как двойные в C:
>>> sys.float_info
sys.floatinfo(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308,
min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15,
mant_dig=53, epsilon=2.2204460492503131e-16, radix=2, rounds=1)
Вывод
Не используйте __class__
семантически непубличный API для получения типа переменной. Используйте type
вместо этого.
И не беспокойтесь о деталях реализации Python. Я сам не сталкивался с проблемами вокруг этого. Вы, вероятно, тоже не будете, и если вы действительно это сделаете, вы должны знать достаточно, чтобы не искать этот ответ для того, что делать.
Как определить тип переменной Python?
Так что если у вас есть переменная, например:
one = 1
Вы хотите знать его тип?
В Python есть правильные и неправильные способы делать практически все. Вот правильный путь:
использование type
>>> type(one)
<type 'int'>
Вы можете использовать __name__
атрибут, чтобы получить имя объекта. (Это один из немногих специальных атрибутов, для которого нужно использовать __dunder__
имя, чтобы добраться до него — в inspect
модуле даже нет метода для него .)
>>> type(one).__name__
'int'
Не использовать __class__
В Python имена, начинающиеся с подчеркиваний, семантически не являются частью общедоступного API, и пользователям рекомендуется избегать их использования. (За исключением случаев, когда это абсолютно необходимо.)
Так как type
дает нам класс объекта, мы должны избегать его получения напрямую. :
>>> one.__class__
Обычно это первая идея, которая возникает у людей при доступе к типу объекта в методе — они уже ищут атрибуты, поэтому тип кажется странным. Например:
class Foo(object):
def foo(self):
self.__class__
Не. Вместо этого, введите (self):
class Foo(object):
def foo(self):
type(self)
Детали реализации целых и чисел
Как узнать тип переменной: 32-разрядная без знака, 16-разрядная со знаком и т. Д.?
В Python эти особенности являются деталями реализации. Итак, в общем, мы обычно не беспокоимся об этом в Python. Однако, чтобы удовлетворить ваше любопытство …
В Python 2 int обычно представляет собой целое число со знаком, равное ширине слова реализации (ограничено системой). Это обычно реализуется как долго C . Когда целые числа становятся больше этого значения, мы обычно конвертируем их в длинные Python (с неограниченной точностью, не путать с длинными C).
Например, в 32-битном Python 2 мы можем вывести, что int является 32-битным целым числом со знаком:
>>> import sys
>>> format(sys.maxint, '032b')
'01111111111111111111111111111111'
>>> format(-sys.maxint - 1, '032b') # minimum value, see docs.
'-10000000000000000000000000000000'
В Python 3 старый int исчезает, и мы просто используем (Python) long как int, который имеет неограниченную точность.
Мы также можем получить некоторую информацию о числах с плавающей точкой в Python, которые обычно реализуются как двойные в C:
>>> sys.float_info
sys.floatinfo(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308,
min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15,
mant_dig=53, epsilon=2.2204460492503131e-16, radix=2, rounds=1)
Заключение
Не используйте __class__
семантически непубличный API для получения типа переменной. Используйте type
вместо этого.
И не беспокойтесь о деталях реализации Python. Я сам не сталкивался с проблемами вокруг этого. Вы, вероятно, тоже не будете, и если вы действительно это сделаете, вы должны знать достаточно, чтобы не искать этот ответ для того, что делать.
Автор: Aaron Hall
Размещён: 07.10.2016 04:02
Переменные в Python
Не один язык программирования не может обойтись без переменных и Python здесь не исключение. Переменная в программировании – это именованная область памяти, предназначенная для хранения значения.
Проще говоря, переменную можно представить в виде коробки, куда можно что-то положить и впоследствии заменить, так вот это что-то и называется значением переменной. Что же мы подразумеваем под фразой значение переменной?
Значения переменной в Python
Например, вам надо выполнить какие-то математические вычисления и у вас есть два числа: 70 и 30. Чтобы каждый раз не вводить эти числа, вы положите их в переменные: a и b, которые будете подставлять вместо чисел. Получается, что числа – это значения переменных.
a = 70
b = 30
a + b
100
a – b
40
Переменная может хранить не только число, но и целое выражение.
x = 345 + 355
Вывод результата значения переменной x:
print (x)
700
А какие ещё бывают значения? Значения переменных делятся по типу данных, с левой стороны – название типа данных.
- int — целое число 1, 2, 25, 100
- float — число с плавающей точкой 3.3 / 5.8
- str — строки, состоящие из символов в Unicode, ‘доброе утро’
- boolean — логическое значение True (5 > 2) / False (3 > 7)
- list – список, [‘user_1’, ‘user_2’, ‘user_3’, ‘user_4’]
- tuple – кортеж, (‘one’, ‘two’, ‘three’)
- set — коллекция
- dist — словарь, ключ / значение, {‘dog’: ‘собака’, ‘cat’: ‘кошка’}
Объявление переменных в Python
Объявить или создать (что одно и то же) переменную очень просто. Нужно придумать ей имя и присвоить значение. В программировании знак равно (=) обозначает оператор присваивания. В переменную x мы положили число 5 и тем самым объявили, что у нас есть переменная x. Таким образом, мы присвоили значение переменной.
x=5 // создание переменной
print(x)
x = 5
Переменную можно изменить, положив в неё новое значение. При следующем присваивании, значение переменной заменяется.
x=10 // изменение значения переменной
print(x)
x = 10
Можно создавать сколько угодно разных переменных.
Имена переменных в Python
В имени переменной может быть любое количество символов. Имя переменной может начинаться только с буквы или с нижнего подчеркивания. Никаких чисел в начале имени переменной быть не должно. Имена переменным следует давать осмысленные. Если вы присваиваете переменной значение в виде номера телефона, тогда и называйте переменную понятным словом phone. Имя переменной не может содержать ключевые слова (зарезервированные) языка Python.
Список ключевых слов:
Имя переменной может состоять из нескольких слов. В языках программирования принято разделять слова нижним подчеркиванием или все слова, кроме первого, начинать с буквы в верхнем регистре.
user_pass
userPass
Типы переменных в Python
Переменная в Python хранит в себе не само значение, а лишь ссылку на него. Поэтому легко можно заменять одно значение переменной на другое. Например, в переменной a хранилось число 10, мы присвоили ей значение другого типа – строку ‘I love Python’.
a=10
a='I love Python'
Старая ссылка исчезнет, а новая появится. Одна и та же переменная в Python может хранить в себе значения разных типов:
- числовые
- логические
- строковые
- списки
- коллекции
- словарные
Это отличительная особенность пайтона от других языков программирования, которая называется динамической типизацией. Тип данных переменной зависит, от того какое значение ей присвоили.
Как узнать тип значения переменной?
Мы хотим знать, какой тип значения хранит переменная. Нужно написать ключевое слово type, затем в круглых скобочках указать имя переменной login. Пайтон выведет результат str. Это значит, что переменная хранит строковое значение.
Тип значения переменной целое число:
password=1234
type (password)
<class 'int'>
Тип значения переменной вещественное число:
result=1.2
type (result)
<class 'float'>
Заключение
Если вы решили освоить один из наиболее популярных языков программирования – Python и хотите изучить его в кратчайшие сроки. Я могу рекомендовать вам мой видеокурс: «Программирование на Python с Нуля до Гуру». Наверняка вы спросите: «Кто я такой, чтобы вы приобрели именно мой видеокурс?» Перейдите по этой ссылке и вы получите исчерпывающий ответ.
-
Создано 14.10.2019 10:30:56 -
Михаил Русаков
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
переменные, оператор присваивания, типы данных
Это занятие
начнем с рассмотрения структуры программы на Python и зададимся
вопросом: что из себя представляет простейшая программа? В действительности –
это пустой текстовый файл. Да, мы можем запустить такую программу, она
исполнится, но ничего не произойдет. Немного усложним ее и напишем, например,
просто
это тоже
допустимо и программа тоже сработает. Далее, если добавим круглые скобки:
то эта функция
будет вызвана и в консоли напечатается пустая строка, то есть, символ перевода
на новую строку. Запишем в круглых скобках кавычки:
программа
сработает аналогичным образом – выведется пустая строка. Ну а если написать
строку:
то в консоль
выведется это сообщение. Все эти примеры показывают гибкость и дружелюбие
интерпретатора языка Python по отношению к программисту. Но
есть и определенные ограничения, например, начальные конструкции всегда должны
начинаться с самого начала строки, то есть, ставить пробел перед print нельзя.
Например, вот так:
работать не
будет. Также обязательной является пустая строка в конце текстового файла с
программой. Если мы в редакторе ее не напишем, то при сохранении, она будет
добавлена автоматически. Допускается множество пустых строк, но одна должна
быть обязательно.
Далее, в каждой
более-менее состоятельной программе имеются комментарии – это текст, который
видит программист, но игнорируемый интерпретатором языка. Чтобы поставить
комментарий, используется символ шарп (#), за которым следует текст комментария:
#Это моя первая программа
Переменные и их типы
Теперь, когда мы
узнали как записывать простейшие программы, пришло время выяснить как Python хранит и представляет
различные данные. То есть, поговорить о переменных и их типах.
Строго говоря, в
Питоне нет переменных, в привычном смысле: когда переменная является
именованным хранилищем данных. Здесь все устроено несколько иначе. Например,
если записать вот такую строчку:
то x здесь имя
ссылки, которая ссылается на «Hello World!». А сам «Hello World!»
представляется в Python как объект, содержащий эту строку.
Визуально это можно представить так:
То есть, оператор присваивания не
копирует данные в переменную, он лишь возвращает ссылку на объект с данными и
эта ссылка сохраняется в переменной x.
Почему переменная называется x? В общем-то не
почему, просто этот символ пришел мне в голову и я его записал. Вы можете
писать свои, другие имена переменных, главное, чтобы они соответствовали такому
правилу:
-
имя
должно быть существительным (отвечать на вопрос: кто, что)
-
в
качестве первого символа допускается писать буквы латинского алфавита a-z, A-Z и символ
подчеркивания _
-
в
качестве второго и последующих символов еще цифры 0-9
И, конечно же,
имена ссылок следует делать осмысленными. Например, если мы храним сообщение,
пусть она называется
msg = "Сообщение"
если это
какой-либо счетчик, то можно использовать имя
и так далее. Это
упрощает понимание программы и облегчает процесс программирования.
Давайте теперь
выведем значение нашей ссылки x, используя встроенную функцию
id(<ссылка>)
У объекта, на
который ссылается x, есть тип данных. Его можно узнать вызвав функцию
type(<ссылка на
объект>)
например, так:
и мы увидим в консоли сообщение:
<class ‘str’>
которое говорит,
что объект (класс) имеет тип str, то есть, содержит строку. Получается,
что в любом объекте, помимо данных, хранится еще и тип данных:
Механизм
переменных в виде ссылок на объекты имеет ряд преимуществ. Например, мы можем
далее в программе присвоить ссылку x на любой другой объект, скажем,
числовой:
x = "Hello World!" print(id(x)) x = 5 print(id(x)) print( type(x) )
В этом случае
будет автоматически создан новый объект с числом 5 и типом int:
Если мы запустим
программу, то увидим, что id у x меняется, что
говорит об изменении ссылки на новый объект и тип данных теперь int.
А что происходит
с объектом, на который теперь нет ссылок? Он автоматически уничтожается
сборщиком мусора. В Python реализован алгоритм автоматического
удаления данных, на которых нет внешних ссылок. Поэтому программист может
совершенно не заботиться об освобождении памяти, занятой ранее каким-либо
объектом. И это очень удобно. В частности, вот при таком присваивании:
сначала будет
вычислено это выражение 2+3=5, на основе двух временных объектов (не
именованных – на них нет ссылок), затем, сформируется новый объект со значением
5, а объекты 2 и 3 уничтожатся сборщиком мусора, т.к. на них нет внешних
ссылок. В результате, x будет ссылаться
на этот созданный объект со значением 5 и целочисленным типом int.
Каскадное присваивание
В Питоне
существует, так называемое, каскадное присваивание, которое можно записать так:
x=y=z=0 print(id(x), id(y), id(z))
В этом случае
все три ссылки будут ссылаться на один и тот же объект. И это принципиальное
отличие, например, от языка С++, когда в эти переменные просто записался бы 0.
Здесь никакого копирования не происходит, а всего лишь именованные ссылки x, y, z ссылаются на
один и тот же объект со значением 0.
Множественное присваивание
Если нам
необходимо каждой ссылке присвоить свой объект, то для этого следует
воспользоваться множественным присваиванием:
x, y, z = 1, 2, 3 print(id(x), id(y), id(z)) print(x, y, z)
В этом случае
каждая ссылка будет ссылаться на свой объект. Это можно интерпретировать так:
кортежу ссылок (переменных) присваивается кортеж соответствующих объектов.
В частности,
такое присваивание можно использовать при обмене данными между ссылками.
Например, так:
Смотрите, как
это просто и удобно. Работает это так. Сначала в правой части формируется
кортеж из объектов, на которые ссылаются y и x, а затем, этот
кортеж присваивается ссылкам x, y, стоящим слева.
В результате происходит их пересвязывание.
В языке С++ это
пришлось бы реализовывать через третью переменную:
temp = x;
x = y;
y = temp;
А в Python это всего лишь
одна короткая строчка!
Я думаю, теперь
вы понимаете, что из себя представляют переменные и как работает оператор
присваивания в Python. Остается один открытый вопрос: какие
типы данных существуют в этом языке программирования? Встроенные типы
данных следующие:
Название |
Описание |
None |
неопределенное
|
bool |
Булевый
|
int |
Целочисленный
|
float |
Вещественный
|
complex |
Комплексный
|
str |
Строковый
|
Бинарные списки | |
bytes |
Список
|
bytearray |
Байтовые
|
memoryview |
Специальные
|
Множества | |
set |
Множество |
frozenset |
Неизменяемое
|
Словари | |
dict |
Словарь |
В рамках данного
занятия рассмотрим простейшие типы, которые отмечены в таблицы оранжевым
цветом. Все эти типы данных являются неизменяемыми, то есть, при создании объекта:
Значение True в самом объекте
изменить нельзя. При необходимости мы можем создать другой объект со значением False и установить
ссылку a на него:
Предыдущий
объект, как мы уже говорили, будет автоматически уничтожен сборщиком мусора.
Обратите
внимание, в Питоне булевые значения следует записывать с заглавной буквы:
True/False
Писать с малой
нельзя – это будет ошибкой.
Следующий
целочисленный тип мы уже рассматривали. Он представляет целые числа (как
положительные, так и отрицательные) довольно широкого диапазона. Их можно
задавать в разных системах счисления, но обычно, используют десятичную запись,
шестнадцатиричную и восьмиричную:
a = -100 b = 0xff c = 0o34 print(a, b, c)
Следующий
вещественный тип, позволяет записывать числа с плавающей точкой, например, так:
a = 0.1 b = 2.5e5 c = 1e-6 print(a, b, c)
Здесь
использована классическая запись и экспоненциальная, когда после символа e указывается
степень десятки и на это число выполняется умножение. В результате,
Комплексные
числа в питоне можно определять так:
a = 0.1 + 5j b = 1e2 - .3j c = 4.5j print(a, b, c)
(здесь j – это символ
мнимой единицы, указывающий мнимую часть числа).
Наконец, строки
определяются такими способами:
a = "hello" b = 'world' print(a, b)
То есть, их можно записывать в двойных
или одинарных кавычках. А как быть, если мы хотим в строке записать кавычки?
Например, так:
msg = "строка "привет""
Есть несколько способов это сделать.
Первый – заменить двойные кавычки всей строки на одинарные:
msg = 'строка "привет"'
Второй способ – использовать так
называемое экранирование символов:
msg = "строка \"привет\""
мы здесь перед каждой кавычкой внутри
строки поставили обратный слеш. Это называется экранированием символов. На
практике используются оба способа, так что выбирайте любой удобный для себя.
Кстати, если нужно просто отобразить обратный слеш, то его следует записать
так:
Вот мы с вами
рассмотрели как объявляются переменные и что они из себя представляют, как
работает оператор присваивания, какие базовые типы данных существуют в Python и рассмотрели
определение примитивных данных. Все это вы теперь должны хорошо себе
представлять.
переменных Python
Создание переменных
Переменные — это контейнеры для хранения значений данных.
В отличие от других языков программирования, в Python нет команды для объявления переменной.
Переменная создается в тот момент, когда вы впервые присваиваете ей значение.
Переменные не нужно объявлять с каким-либо конкретным типом , и они даже могут изменить тип после того, как они были установлены.
Пример
x = 4 # x имеет тип int
x = «Sally» # x теперь имеет тип str
печать (х)
Попробуй сам »
Строковые переменные могут быть объявлены в одинарных или двойных кавычках:
Вы узнаете больше о типах данных, таких как str
(строки) и int
(целые числа) в следующей главе.
Имена переменных
Переменная может иметь короткое имя (например, x и y) или более информативное имя (возраст, carname, total_volume).
Правила для переменных Python:
- Имя переменной должно начинаться с буквы или символа подчеркивания
- Имя переменной не может начинаться с числа
- Имя переменной может содержать только буквенно-цифровые символы и символы подчеркивания (A-z, 0-9 и _)
- Имена переменных чувствительны к регистру (возраст, возраст и ВОЗРАСТ — три разные переменные)
Пример
# Юридические имена переменных:
myvar = «John»
my_var = «John»
_my_var = «John»
myVar = «John»
MYVAR = «John»
myvar2 = «John»
# Незаконные имена переменных:
2myvar = «John»
my-var = «John»
my var = «John»
Попробуй сам »
Помните, что имена переменных чувствительны к регистру
Присвойте значение нескольким переменным
Python позволяет присваивать значения нескольким переменным в одной строке:
И вы можете присвоить одинаковое значение нескольким переменным в одной строке:
Выходные переменные
Оператор Python print
часто используется для вывода переменных.
Для объединения текста и переменной Python использует
+
символ:
Вы также можете использовать символ +
для добавления переменной к другой переменной:
Для чисел символ +
работает как математический оператор:
Если вы попытаетесь объединить строку и число, Python выдаст вам ошибку:
Глобальные переменные
Переменные, которые создаются вне функции (как во всех примерах
выше) известны как глобальные переменные.
Глобальные переменные могут использоваться кем угодно, как внутри
функции и снаружи.
Пример
Создайте переменную вне функции и используйте ее внутри функции
x = «awesome»
def myfunc ():
print («Python is» + x)
myfunc ()
Попробуй сам »
Если вы создаете переменную с тем же именем внутри функции, эта переменная
будет локальным и может использоваться только внутри функции. Глобальная переменная
с тем же именем останется, как было, глобальным и с исходным значением.
Пример
Создайте переменную внутри функции с тем же именем, что и глобальная
переменная
x = «awesome»
def myfunc ():
x = «фантастический»
print («Python is» + x)
myfunc ()
print («Python is» + x)
Попробуй сам »
Глобальное ключевое слово
Обычно, когда вы создаете переменную внутри функции, эта переменная
local и может использоваться только внутри этой функции.
Чтобы создать глобальную переменную внутри функции, вы можете использовать
глобальное
ключевое слово.
Пример
Если вы используете ключевое слово global
, переменная принадлежит глобальной области:
def myfunc ():
global x
x = «фантастический»
myfunc ()
print («Python is» + x)
Попробуй сам »
Также используйте ключевое слово global
, если вы хотите изменить глобальную переменную внутри функции.
Пример
Чтобы изменить значение глобальной переменной внутри функции, см.
переменная с помощью ключевого слова global
:
x = «awesome»
def myfunc ():
global x
x = «фантастический»
myfunc ()
print («Python is» + x)
Попробуй сам »
.
Как проверить, является ли переменная списком Python, массивом numpy или серией pandas
Переполнение стека
- Около
Продукты
- Для команд
Переполнение стека
Общественные вопросы и ответыПереполнение стека для команд
Где разработчики и технологи делятся частными знаниями с коллегамиВакансии
Программирование и связанные с ним технические возможности карьерного ростаТалант
Нанимайте технических специалистов и создавайте свой бренд работодателяРеклама
Обратитесь к разработчикам и технологам со всего мира- О компании
Загрузка…