© EVILEG 2015-2018
Рекомендует хостинг
TIMEWEB

Python 3 - Урок 004. Типы переменных

Python 3, variables, var

Переменные - это не что иное, как зарезервированные ячейки памяти для хранения значений. Это означает, что при создании переменной вы резервируете некоторое пространство в памяти.

На основе типа данных переменной интерпретатор выделяет память и решает, что можно сохранить в зарезервированной памяти. Поэтому, присваивая переменным разные типы данных, вы можете хранить целые числа, десятичные знаки или символы в этих переменных.

Присвоение значений переменным

Переменные Python не требуют явного объявления для резервирования пространства памяти. Объявление присваивается автоматически, когда вы присваиваете значение переменной. Знак равенства (=) используется для присвоения значений переменным.

Операнд слева от оператора =  является именем переменной, а операнд справа от оператора = является значением, которое хранится в переменной. Например,

#!/usr/bin/python3

counter = 100          # Целочисленная переменная
miles   = 1000.0       # Переменная с плафающей точкой
name    = "John"       # Строковая переменная

print (counter)
print (miles)
print (name)

Здесь 100, 1000.0 и «John» являются значениями, присвоенными счетчику, милям и переменной имени, соответственно. Это дает следующий результат:

100
1000.0
John

Множественное присвоение

Python позволяет одновременно назначать одно значение нескольким переменным.

Например,

a = b = c = 1

Здесь создается целочисленный объект со значением 1, и все три переменные назначаются в одну и ту же ячейку памяти. Вы также можете назначить несколько объектов нескольким переменным. Например,

a, b, c = 1, 2, "john"

Переменным a и b присваиваются целочисленные значения 1 и 2 соответсвенно, а переменной c присваивается строка john .

Стандартные типы данных

Данные, хранящиеся в памяти, могут быть разных типов. Например, возраст человека хранится как числовое значение, а его адрес хранится в виде буквенно-цифровых символов. 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 (целые числа со знаком)
  • float (реальные значения с плавающей запятой)
  • complex (комплексные числа)

Все целые числа в Python3 представлены как long числа. Следовательно, нет отдельного типа long.

Примеры

int float complex
10 0.0 3.14j
100 15.20 45.j
-786 -21.9 9.322e-36j
080 32.3+e18 .876j
-0490 -90. -.6545+0J
-0x260 -32.54e100 3e+26J
0x69 70.2-E12 4.53e-7j

Комплексное число состоит из упорядоченной пары вещественных чисел с плавающей запятой, обозначаемой x + yj, где x и y - вещественные числа, j - мнимая единица.

Строки Python

Строки в Python идентифицируются как непрерывный набор символов, представленных в кавычках. Python позволяет использовать пару одиночных или двойных кавычек. Подмножества строк могут быть взяты с использованием оператора среза ([] и [:]) с индексами, начинающимися с 0 в начале строки и работающими от -1 до конца.

Знак плюс (+) является оператором конкатенации строк, а звездочкой (*) является оператор повторения. Например,

#!/usr/bin/python3

str = 'Hello World!'

print (str)          # Вывод всей строки
print (str[0])       # Вывод первого символа строки
print (str[2:5])     # Вывод символов с третьего по пятый
print (str[2:])      # Вывод строки с третьего символа
print (str * 2)      # Вывод строки дважды
print (str + "TEST") # Вывод склеенной строки

Это приведет к следующему результату -

Hello World!
H
llo
llo World!
Hello World!Hello World!
Hello World!TEST

Списки Python

Списки являются наиболее универсальными составными типами данных Python. Список содержит элементы, разделенные запятыми и заключенные в квадратные скобки ([]). В некоторой степени списки аналогичны массивам в C. Одно из различий между ними состоит в том, что все элементы, принадлежащие списку, могут быть разных типов данных.

Доступ к значениям, хранящимся в списке, можно получить с помощью оператора среза ([] и [:]) с индексами, начинающимися с 0 в начале списка и заканчивающимися -1. Знак плюс (+) - это оператор конкатенации списка, а звездочка (*) - оператор повторения. Например,

#!/usr/bin/python3

list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']

print (list)          # Вывод всего списка
print (list[0])       # Вывод первого элемента списка
print (list[1:3])     # Вывод элементов со второго по третий 
print (list[2:])      # Вывод элементов начиная с третьего
print (tinylist * 2)  # Вывод списка дважды
print (list + tinylist) # Вывод результирующего списка

Это приведет к следующему результату -

['abcd', 786, 2.23, 'john', 70.200000000000003]
abcd
[786, 2.23]
[2.23, 'john', 70.200000000000003]
[123, 'john', 123, 'john']
['abcd', 786, 2.23, 'john', 70.200000000000003, 123, 'john']

Кортежи Python

Кортеж - это другой тип данных последовательности, аналогичный списку. Кортеж состоит из нескольких значений, разделенных запятыми. Однако, в отличие от списков, кортежи заключены в круглые скобки.

Основное различие между списками и кортежами - Списки заключены в скобки ([]), и их элементы и размер могут быть изменены, а кортежи заключены в круглые скобки (()) и не могут быть обновлены. Кортежи можно рассматривать как списки только для чтения. Например,

#!/usr/bin/python3

tuple = ( 'abcd', 786 , 2.23, 'john', 70.2  )
tinytuple = (123, 'john')

print (tuple)           # Вывод всего кортежа
print (tuple[0])        # Вывод первого элемента в кортеже
print (tuple[1:3])      # вывод элементов со второго по третий 
print (tuple[2:])       # Вывод элементов кортежа с третьего
print (tinytuple * 2)   # Вывод кортежа дважды
print (tuple + tinytuple) # Вывод результирующего кортежа

Это приведет к следующему результату -

('abcd', 786, 2.23, 'john', 70.200000000000003)
abcd
(786, 2.23)
(2.23, 'john', 70.200000000000003)
(123, 'john', 123, 'john')
('abcd', 786, 2.23, 'john', 70.200000000000003, 123, 'john')

Следующий код недопустим с кортежем, потому что мы попытались обновить кортеж, что запрещено. Подобный случай возможен со списками -

#!/usr/bin/python3

tuple = ( 'abcd', 786 , 2.23, 'john', 70.2  )
list = [ 'abcd', 786 , 2.23, 'john', 70.2  ]
tuple[2] = 1000    # запрещено для кортежей
list[2] = 1000     # допустимо для списков

Словари Python

Словарь Python - это тип хеш-таблицы. Они работают как ассоциативные массивы или хэши, как в Perl, и состоят из пар ключ-значение. Ключ словаря может быть почти любым типом Python, но обычно это числа или строки. Значения, с другой стороны, могут быть любым произвольным объектом Python.

Словари заключены в фигурные скобки ({}), и значения могут быть получены с помощью квадратных скобок ([]). Например,

#!/usr/bin/python3

dict = {}
dict['one'] = "This is one"
dict[2]     = "This is two"

tinydict = {'name': 'john','code':6734, 'dept': 'sales'}

print (dict['one'])       # Вывод значения для ключа 'one'
print (dict[2])           # Вывод значения для клюса 2
print (tinydict)          # Вывод всего словаря
print (tinydict.keys())   # Вывод всез ключей словаря
print (tinydict.values()) # Вывод всех значений

Это приведет к следующему результату -

This is one
This is two
{'name': 'john', 'dept': 'sales', 'code': 6734}
dict_keys(['name', 'dept', 'code'])
dict_values(['john', 'sales', 6734])

Словари не имеют понятия об упорядочивании среди элементов.

Преобразование типа данных

Иногда вам может потребоваться выполнить преобразования между встроенными типами. Чтобы преобразовать типы, вы просто используете имена типов как функцию.

Существует несколько встроенных функций для преобразования из одного типа данных в другой. Эти функции возвращают новый объект, представляющий преобразованное значение.

S.No. Функция & Описание
1

int(x [,base])

Преобразует x в целое число.

2

float(x)

Преобразует x в число с плавающей запятой.

3

complex(real [,imag])

Создает комплексное число.

4

str(x)

Преобразует объект x в строковое представление.

5

repr(x)

Преобразует объект x в строковое выражение.

6

eval(str)

Обрабатывает строку и возвращает объект. Используется для выполнения программного кода представленного сторокой.

7

tuple(s)

Преобразует s в кортеж.

8

list(s)

Преобразует s в список.

9

set(s)

Преобразует s в набор.

10

dict(d)

Создает словарь. d должен быть последовательностью (ключ, значение) кортежей.

11

frozenset(s)

Преобразует s в неизменяемый набор.

12

chr(x)

Преобразует целое число в символ.

13

unichr(x)

Преобразует целое число в символ Unicode.

14

ord(x)

Преобразует один символ в его целочисленное значение.

15

hex(x)

Преобразует целое число в шестнадцатеричную строку.

16

oct(x)

Преобразует целое число в восьмеричную строку.

Комментарии

Комментарии

Только авторизованные пользователи могут оставлять комментарии.
Пожалуйста, Авторизуйтесь или Зарегистрируйтесь
22 мая 2018 г. 9:32
nrjjejdjdhhrjf

C++ - Тест 005. Структуры и Классы

  • Результат 75 баллов
  • Очки рейтинга 2
21 мая 2018 г. 8:30
Nasty

C++ - Тест 004. Указатели, Массивы и Циклы

  • Результат 10 баллов
  • Очки рейтинга -10
20 мая 2018 г. 12:26
Venic

C++ - Тест 002. Константы

  • Результат 58 баллов
  • Очки рейтинга -2
Последние комментарии
19 мая 2018 г. 12:44
EVILEG

Django - Snippet 001. get_object_or_none

А вы гарантируете, что метод first вернёт нужный объект, если в таблице две похожих записи? Этого никто не гарантирует. Может возникнуть неопределённое поведение приложения, если запись не так...
19 мая 2018 г. 12:34
Pavel

Django - Snippet 001. get_object_or_none

Согласен с тем что ваше решение более очевидно при чтении кода. first() же здесь применяется не совсем по назначению. А с последствиями "моего" решения не согласен. Метод вернёт только один об...
19 мая 2018 г. 12:27
EVILEG

Как я использовал FilterView заместо ListView для упрощения фильтрации

Может быть, а может и нет, все имеют различную речь.. не могу отвечать за всех пользователей ресурса.. поскольку каждый пользователь может дополнить материал ресурса статьями.
19 мая 2018 г. 12:25
EVILEG

Django - Snippet 001. get_object_or_none

В вашем случае происходит подмена сущностей. Вместо того, чтобы взять один конкретный объект, вы забираете queryset а потом берёте из него первый объект. Нехорошо будет, если queryset в каком-...
19 мая 2018 г. 11:11
Pavel

Django - Snippet 001. get_object_or_none

Тоже искал подобную функцию, чтобы не обрабатывать каждый раз исключения. И нашёл на so совет использовать вместо неё метод менеджера first(), который возвращает None при пустом queryset. Т.е ...
Сейчас обсуждают на форуме
22 мая 2018 г. 16:50
vitaliy_antipov

Данные из QChartview в QTableWidget

Здравствуйте! Пишу приложение для парсинга текстового файла и вывода данных на график. Столкнулся с проблемой передачи данных от курсора мыши на графике в ячейку таблицы. mainwindow.h ...
22 мая 2018 г. 16:33
5_voron_5

Визуализация математических формул

Нужна помощь с визуализацией математических формул в qt на версии 5.4 и ниже, за деньги разумеется, кого интересует вот мыло svet_31_m@mail.ru
22 мая 2018 г. 6:57
EVILEG

Выводит мусор

Имено, класс-потомок. Если добавляли кнопки в графическом дизайнере, то нужно вызвать контекстное меню на кнопке в дизайнере, выбрать пункт "преобразовать в" либо "Promote to". Там будет ...
20 мая 2018 г. 2:05
vitaliy_antipov

Удаление серии из графика

Ой, извините, совсем запарился. Туплю: void MainWindow::onDelSeries(int i){ chartview->chart()->findChild<QLineSeries *>("obj" + QString::number(i))->deleteLater();...
18 мая 2018 г. 8:55
mak_trefa

Сборщик мусора и Connections в qml

можешь попробовать в деструкторе модели вызвать throw; и в дебагере посмотреть stacktrace

Рекомендуемые страницы