Python - типы переменных
Переменные - это не что иное, как зарезервированные ячейки памяти для хранения значений. Это означает, что когда вы создаете переменную, вы резервируете некоторое место в памяти.
В зависимости от типа данных переменной интерпретатор выделяет память и решает, что можно сохранить в зарезервированной памяти. Следовательно, назначая переменным разные типы данных, вы можете хранить в этих переменных целые числа, десятичные дроби или символы.
Присвоение значений переменным
Переменные Python не нуждаются в явном объявлении для резервирования места в памяти. Объявление происходит автоматически, когда вы присваиваете значение переменной. Знак равенства (=) используется для присвоения значений переменным.
Операнд слева от оператора = - это имя переменной, а операнд справа от оператора = - это значение, хранящееся в переменной. Например -
#!/usr/bin/python
counter = 100 # An integer assignment
miles = 1000.0 # A floating point
name = "John" # A string
print counter
print miles
print name
Здесь 100, 1000.0 и «Джон» - это значения, присвоенные переменным counter , miles и name соответственно. Это дает следующий результат -
100
1000.0
John
Множественное присвоение
Python позволяет назначать одно значение нескольким переменным одновременно. Например -
a = b = c = 1
Здесь создается целочисленный объект со значением 1, и все три переменные назначаются в одну и ту же ячейку памяти. Вы также можете назначить несколько объектов нескольким переменным. Например -
a,b,c = 1,2,"john"
Здесь два целочисленных объекта со значениями 1 и 2 присваиваются переменным a и b соответственно, а один строковый объект со значением «john» назначается переменной c.
Стандартные типы данных
Данные, хранящиеся в памяти, могут быть разных типов. Например, возраст человека хранится в виде числового значения, а его адрес - в виде буквенно-цифровых символов. Python имеет различные стандартные типы данных, которые используются для определения возможных операций с ними и метода хранения для каждого из них.
Python имеет пять стандартных типов данных -
- Numbers
- String
- List
- Tuple
- Dictionary
Числа Python
Числовые типы данных хранят числовые значения. Числовые объекты создаются, когда вы присваиваете им значение. Например -
var1 = 1
var2 = 10
Вы также можете удалить ссылку на числовой объект с помощью оператора del. Синтаксис оператора del -
del var1[,var2[,var3[....,varN]]]]
Вы можете удалить один объект или несколько объектов, используя оператор del. Например -
del var
del var_a, var_b
Python поддерживает четыре разных числовых типа -
- int (целые числа со знаком)
- long (длинные целые числа, они также могут быть представлены в восьмеричной и шестнадцатеричной системе)
- float (вещественные значения с плавающей запятой)
- комплекс (комплексные числа)
Примеры
Вот несколько примеров чисел -
int | долго | плавать | сложный |
---|---|---|---|
10 | 51924361L | 0,0 | 3,14j |
100 | -0x19323L | 15.20 | 45.j |
-786 | 0122L | -21,9 | 9.322e-36j |
080 | 0xDEFABCECBDAECBFBAEl | 32,3 + e18 | .876j |
-0490 | 535633629843L | -90. | -.6545 + 0J |
-0x260 | -052318172735L | -32,54e100 | 3e + 26J |
0x69 | -4721885298529L | 70.2-E12 | 4.53e-7j |
Python позволяет использовать строчную l с длинным, но рекомендуется использовать только верхний регистр L, чтобы избежать путаницы с числом 1. Python отображает длинные целые числа с прописной L.
Комплексное число состоит из упорядоченной пары вещественных чисел с плавающей запятой, обозначаемых x + yj, где x и y - действительные числа, а j - мнимая единица.
Строки Python
Строки в Python идентифицируются как непрерывный набор символов, представленных в кавычках. Python позволяет использовать пары одинарных или двойных кавычек. Подмножества строк могут быть взяты с помощью оператора среза ([] и [:]) с индексами, начинающимися с 0 в начале строки и работающими от -1 в конце.
Знак плюс (+) - это оператор конкатенации строк, а звездочка (*) - оператор повторения. Например -
#!/usr/bin/python
str = 'Hello World!'
print str # Prints complete string
print str[0] # Prints first character of the string
print str[2:5] # Prints characters starting from 3rd to 5th
print str[2:] # Prints string starting from 3rd character
print str * 2 # Prints string two times
print str + "TEST" # Prints concatenated string
Это даст следующий результат -
Hello World!
H
llo
llo World!
Hello World!Hello World!
Hello World!TEST
Списки Python
Списки являются наиболее универсальными из составных типов данных Python. Список содержит элементы, разделенные запятыми и заключенные в квадратные скобки ([]). В некоторой степени списки похожи на массивы в C. Одно различие между ними состоит в том, что все элементы, принадлежащие списку, могут иметь разный тип данных.
К значениям, хранящимся в списке, можно получить доступ с помощью оператора среза ([] и [:]) с индексами, начинающимися с 0 в начале списка и продвигающимися до конца -1. Знак плюс (+) - это оператор конкатенации списка, а звездочка (*) - оператор повторения. Например -
#!/usr/bin/python
list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
print list # Prints complete list
print list[0] # Prints first element of the list
print list[1:3] # Prints elements starting from 2nd till 3rd
print list[2:] # Prints elements starting from 3rd element
print tinylist * 2 # Prints list two times
print list + tinylist # Prints concatenated lists
Это дает следующий результат -
['abcd', 786, 2.23, 'john', 70.2]
abcd
[786, 2.23]
[2.23, 'john', 70.2]
[123, 'john', 123, 'john']
['abcd', 786, 2.23, 'john', 70.2, 123, 'john']
Кортежи Python
Кортеж - это другой тип данных последовательности, похожий на список. Кортеж состоит из ряда значений, разделенных запятыми. Однако, в отличие от списков, кортежи заключаются в круглые скобки.
Основные различия между списками и кортежами заключаются в следующем: списки заключаются в квадратные скобки ([]), их элементы и размер можно изменять, а кортежи заключаются в круглые скобки (()) и не могут быть обновлены. Кортежи можно рассматривать какread-onlyсписки. Например -
#!/usr/bin/python
tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 )
tinytuple = (123, 'john')
print tuple # Prints the complete tuple
print tuple[0] # Prints first element of the tuple
print tuple[1:3] # Prints elements of the tuple starting from 2nd till 3rd
print tuple[2:] # Prints elements of the tuple starting from 3rd element
print tinytuple * 2 # Prints the contents of the tuple twice
print tuple + tinytuple # Prints concatenated tuples
Это дает следующий результат -
('abcd', 786, 2.23, 'john', 70.2)
abcd
(786, 2.23)
(2.23, 'john', 70.2)
(123, 'john', 123, 'john')
('abcd', 786, 2.23, 'john', 70.2, 123, 'john')
Следующий код недействителен для кортежа, потому что мы попытались обновить кортеж, что недопустимо. Аналогичный случай возможен со списками -
#!/usr/bin/python
tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 )
list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tuple[2] = 1000 # Invalid syntax with tuple
list[2] = 1000 # Valid syntax with list
Словарь Python
Словари Python представляют собой своего рода хеш-таблицы. Они работают как ассоциативные массивы или хэши, найденные в Perl, и состоят из пар ключ-значение. Ключ словаря может быть практически любым типом Python, но обычно это числа или строки. Значения, с другой стороны, могут быть любым произвольным объектом Python.
Словари заключаются в фигурные скобки ({}), а значения могут быть присвоены и доступны с помощью квадратных скобок ([]). Например -
#!/usr/bin/python
dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"
tinydict = {'name': 'john','code':6734, 'dept': 'sales'}
print dict['one'] # Prints value for 'one' key
print dict[2] # Prints value for 2 key
print tinydict # Prints complete dictionary
print tinydict.keys() # Prints all the keys
print tinydict.values() # Prints all the values
Это дает следующий результат -
This is one
This is two
{'dept': 'sales', 'code': 6734, 'name': 'john'}
['dept', 'code', 'name']
['sales', 6734, 'john']
В словарях нет понятия порядка между элементами. Неверно говорить, что элементы «вышли из строя»; они просто неупорядочены.
Преобразование типов данных
Иногда вам может потребоваться выполнить преобразование между встроенными типами. Для преобразования между типами вы просто используете имя типа как функцию.
Есть несколько встроенных функций для выполнения преобразования из одного типа данных в другой. Эти функции возвращают новый объект, представляющий преобразованное значение.
Sr.No. | Описание функции |
---|---|
1 | int(x [,base]) Преобразует x в целое число. base указывает базу, если x - строка. |
2 | long(x [,base] ) Преобразует x в длинное целое число. base указывает базу, если x - строка. |
3 | float(x) Преобразует x в число с плавающей запятой. |
4 | complex(real [,imag]) Создает комплексное число. |
5 | str(x) Преобразует объект x в строковое представление. |
6 | repr(x) Преобразует объект x в строку выражения. |
7 | eval(str) Оценивает строку и возвращает объект. |
8 | tuple(s) Преобразует s в кортеж. |
9 | list(s) Преобразует s в список. |
10 | set(s) Преобразует s в набор. |
11 | dict(d) Создает словарь. d должен быть последовательностью кортежей (ключ, значение). |
12 | frozenset(s) Преобразует s в замороженный набор. |
13 | chr(x) Преобразует целое число в символ. |
14 | unichr(x) Преобразует целое число в символ Юникода. |
15 | ord(x) Преобразует одиночный символ в его целочисленное значение. |
16 | hex(x) Преобразует целое число в шестнадцатеричную строку. |
17 | oct(x) Преобразует целое число в восьмеричную строку. |