1.50M
Category: programmingprogramming

1.3 Презентация

1.

ПРОГРАММИРОВАНИЕ НА Python

2.

Модуль 1. Введение в Python
Тема 1.3 Базовые типы данных

3.

Содержание
1. Типы данных в Python
2. Изменяемые и неизменяемые типы

4.

Тема 1.3 Базовые типы данных
1. Типы данных в Python

5.

Базовые типы данных в Python
Базовые типы данных в Python представлены в таблице. Кроме того, много дополнительных типов добавляется
при использовании модулей. Можно и самим писать свои типы при необходимости!

6.

Базовые типы данных в Python
Также в Python есть специфический тип NoneType.
Его представитель - единственный объект None.
В Python не бывает отсутствия значения - это всегда объект None.

7.

Тема 1.3 Базовые типы данных
2. Изменяемые и неизменяемые типы

8.

Изменяемые и неизменяемые типы
В Python типы данных делятся на изменяемые (от англ. mutable) и неизменяемые (от англ. immutable).
Это различие имеет важное значение для понимания поведения объектов в языке и управления памятью.

9.

Неизменяемые типы

10.

Неизменяемые типы
Неизменяемые типы данных — это объекты, которые не могут быть изменены после их создания.
Если вы пытаетесь изменить неизменяемый объект, Python создает новый объект с измененным значением.
К основным неизменяемым типам относятся:
● Числа:



целые (int);
числа с плавающей точкой (float);
комплексные числа (complex).
● Строки;
● Кортежи.

11.

Неизменяемые типы: числа
При выполнении операции x = 5, если вы затем выполните x += 1, Python создаст новый объект со
значением 6:
x = 5
print("x =", x, id(x))
x += 1
print("x =", x, id(x))
Кроме того, можно совершенно случайно угадать и использовать имя уже существующей функции Python в
качестве имени переменной. Естественно, функцию после этого использовать не удастся:
input = 15
print(input)
a = input()

12.

Преобразование типов: числа
Некоторые типы можно привести к числовым с применением соответствующих функций:
int();
float();
complex(),
например, строки, если они состоят из "подходящих" символов:
s = "6.22e-23"
print("s =", s, type(s))
f = float(s)
print("f =", f, type(f))

13.

Неизменяемые типы: строки
Строки (str) представляют собой упорядоченные последовательности символов.
В отличие от многих других языков программирования, в Python нет специального базового типа данных для
отдельного символа. Символ в Python - это просто строка, состоящая из ровно одного символа. У строки есть
длина, которая измеряется функцией len().
Строки также являются неизменяемыми. Любая операция, которая кажется изменяющей строку, на самом деле
создает новую строку.
Например, s = "hello" и конкатенация s = s + " world" создаст новый объект строки.
s = "hello"
print("s =", s, id(s))
s = s + " world"
print("s =", s, id(s))

14.

Неизменяемые типы: строки
Когда в коде встречается последовательность символов, которые заключены в одинарные («'») или двойные
кавычки («"»), то их называют строковым литералом.
Любой объект Python можно преобразовать в тип str. Так происходит потому, что существует стандартный
"магический" метод __str__(), который отвечает за это преобразование.
Он получает объект - число, коллекцию, функцию, словом, абсолютно любой объект Python и возвращает строку.
Каждый класс объектов или тип данных может содержать свою реализацию этого метода, поэтому работает он
для каждого типа по своему.
Например, для числовых типов он просто возвращает то же самое число, но уже в виде строки:
a = 10
print("a =", a, type(a))
s = str(a)
print("s =", s, type(s))
Другие объекты
информацию:
могут
print(str(print))
<built-in function print>
сообщить
о
себе
дополнительную

15.

Неизменяемые типы: кортежи
Кортежи (tuple) — это неизменяемые последовательности, которые могут содержать элементы разных типов.
Например, кортеж t = (1, 2, 3) не может быть изменен после создания:
t = (1, 2, 3)
t[0] = 0
Кортежи являются коллекциями, то есть они служат для организации хранения и обработки данных. Доступ к
элементу кортежа может осуществляться по индексу, указываемому после имени кортежа в квадратных скобках
«[]». Индексы обязательно должны быть целыми числами int. Индексация в Python начинается с 0:
print(t[1])
Среди базовых неизменяемых типов также числится и frozenset - это неизменяемая версия множества (set).
Она не позволяет добавлять или удалять элементы после создания.

16.

Неизменяемые типы

17.

Изменяемые типы
Изменяемые типы данных — это объекты, которые могут быть изменены после их создания.
Это означает, что вы можете изменять содержимое объекта без создания нового. К основным изменяемым
типам относятся:
● Списки;
● Множества;
● Словари.

18.

Изменяемые типы: списки
Списки (list) могут изменяться, что позволяет добавлять, удалять и изменять элементы.
Например, lst = [1, 2, 3] и lst.append(4) изменит существующий объект списка:
lst = [1, 2, 3]
print(lst, id(lst))
lst.append(4)
print(lst, id(lst))
Списки также, как и кортежи, предоставляют доступ к элементам по индексу::
lst[0] = 0
print(lst)

19.

Преобразование типов: списки
Списки, кортежи и другие коллекции в Python, как, впрочем, и строки, являются переборными объектами
Iterable. Это означает, что их элементы можно перебирать в цикле FOR EACH, о котором мы поговорим
позже.
Преобразовать к списку можно многие объекты, содержащие последовательности или коллекции элементов.
Интересно то, что строка с точки зрения Python - это последовательность символов, а значит преобразование
строки в список будет следующим:
s = "Python"
print("s =", s, type(s))
lst = list(s)
print("lst =", lst, type(lst))
Это позволяет удобно разбирать числа на цифры:
number = 12345
lst = list(str(number))
print(lst)

20.

Изменяемые типы: словари
Словари (dict) хранят в себе данные в виде пары <ключ>: <значение>.
Доступ к данным осуществляется по ключу.
Словари также являются изменяемыми. Вы можете добавлять, изменять и удалять пары ключ-значение.
Например, d = {'a': 1} и d['b'] = 2 изменит существующий объект словаря:
d = {'a': 1}
print(d, id(d))
d['b'] = 2
print(d, id(d))
print(d['a'])

21.

Изменяемые типы: множества
Множества (set) — это изменяемые коллекции уникальных элементов. Вы можете добавлять и удалять
элементы из множества:
s = {1,2,3,4,5}
print(s, id(s))
s.add(6)
print(s, id(s))
Главной особенностью множеств является то, что они могут содержать только уникальные элементы, поэтому
множества часто используют именно для того, чтобы эти уникальные элементы получить из какой-либо
последовательности с повторами.

22.

Хранение в памяти
Изменяемые и неизменяемые объекты хранятся в памяти по-разному. Неизменяемые объекты, как правило,
хранятся в памяти в виде единого блока, и при создании нового объекта с измененным значением Python
выделяет новый блок памяти. Это может привести к большему потреблению памяти, если вы часто создаете
новые объекты.
Изменяемые объекты, с другой стороны, могут изменяться на месте, что позволяет экономить память. Например,
при добавлении элемента в список Python просто изменяет внутреннее представление списка, не создавая
новый объект.
Понимание различий между изменяемыми и неизменяемыми типами данных в Python имеет важное значение
для эффективного программирования. Это знание помогает избежать неожиданных ошибок и оптимизировать
использование памяти. Выбор между изменяемыми и неизменяемыми типами зависит от конкретных задач и
требований к производительности.

23.

О массивах в Python
Среди базовых типов Python нет привычных для других языков программирования массивов.
Вместо них мы будем использовать списки. Списки - это упорядоченные последовательности элементов, доступ к
которым возможен по индексу, как и в массивах. Далее мы познакомимся с ними поближе. Списки относятся к
изменяемым типам данных, то есть, изменяя элемент списка Python не станет создавать новый объект в другой
области памяти.
А пока достаточно знать, как создать список и обратиться к его элементам:
my_list = ['One', 'Two', 'Three']
print(my_list)
print(my_list[1])
Поскольку сама идеология языка Python - это модульность и возможность расширения, не исключая и типы
данных, массивы можно использовать, подключив соответствующие модули (например array, numpy и др.).

24.

© Московский физико-технический институт
2025
English     Русский Rules