Python - Типы данных

Добро пожаловать, стремящиеся программисты! Сегодня мы погружаемся в увлекательный мир типов данных Python. В качестве вашего доброго соседа по компьютерной науке, я рад вести вас через этот важный аспект программирования на Python. Так что взять виртуальную записную книжку и отправьтесь в путешествие вместе с нами!

Python - Data Types

Типы данных в Python

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

Начнем с простого примера:

name = "Алиса"
age = 25
height = 5.7
is_student = True

В этом фрагменте кода мы использовали четыре различных типа данных:

  • name - строка (текст)
  • age - целое число (integer)
  • height - вещественное число (float)
  • is_student - логическое значение (boolean)

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

Виды типов данных Python

Python имеет несколько встроенных типов данных. Рассмотрим их по порядку:

1. Числовые типы

a. Целое число (int)

Целые числа - это полные числа, положительные или отрицательные, без десятичных знаков.

my_age = 30
temperature = -5

Здесь my_age и temperature являются целыми числами. С целыми числами можно выполнять различные математические операции:

x = 10
y = 3
print(x + y)  # Сложение: 13
print(x - y)  # Вычитание: 7
print(x * y)  # Умножение: 30
print(x / y)  # Деление: 3.3333... (Обратите внимание: Это фактически возвращает float)
print(x // y) # Целочисленное деление: 3 (Округляет до ближайшего целого числа)
print(x % y)  # Остаток от деления: 1
print(x ** y) # Возведение в степень: 1000

b. Вещественное число (float)

Вещественные числа - это числа с десятичными знаками.

pi = 3.14159
gravity = 9.81

Вещественные числа можно использовать в вычислениях так же, как и целые:

radius = 5
area = pi * (radius ** 2)
print(f"Площадь круга равна {area:.2f}")  # Вывод: Площадь круга равна 78.54

c. Комплексное число (complex)

Комплексные числа имеют действительную и мнимую части, обозначаемые 'j'.

z = 2 + 3j
print(z.real)  # Вывод: 2.0
print(z.imag)  # Вывод: 3.0

2. Типы последовательностей

a. Строка (str)

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

greeting = "Привет, мир!"
name = 'Алиса'
multi_line = """Это
многострочная
строка."""

Строки имеют множество полезных методов:

message = "Python - это потрясающе"
print(message.upper())  # Вывод: PYTHON - ЭТО ПОТРЯСАЩЕ
print(message.split())  # Вывод: ['Python', '-', 'это', 'потрясающе']
print(len(message))     # Вывод: 20 (длина строки)

b. Список (list)

Списки - это упорядоченные, изменяемые последовательности, обозначаемые квадратными скобками.

fruits = ["яблоко", "банан", "черника"]
numbers = [1, 2, 3, 4, 5]
mixed = [1, "два", 3.0, [4, 5]]

Списки универсальны и позволяют различные операции:

fruits.append("апельсин")  # Добавление элемента
fruits.remove("банан")     # Удаление элемента
print(fruits[0])           # Доступ по индексу: яблоко
print(fruits[-1])          # Последний элемент: апельсин
print(fruits[1:3])         # Срез: ['черника', 'апельсин']

c. Кортеж (tuple)

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

coordinates = (4, 5)
rgb = (255, 0, 128)

Кортежи похожи на списки, но не могут быть изменены после создания:

print(coordinates[0])  # Доступ по индексу: 4
# coordinates[0] = 6   # Это вызовет ошибку

3. Тип карты: Словарь (dict)

Словари хранят пары ключ-значение, обозначаемые фигурными скобками.

person = {
"name": "Боб",
"age": 30,
"city": "Нью-Йорк"
}

Словари чрезвычайно полезны для структурированных данных:

print(person["name"])   # Доступ по ключу: Боб
person["job"] = "Разработчик"  # Добавление новой пары ключ-значение
del person["age"]       # Удаление пары ключ-значение
print(person.keys())    # Получение всех ключей
print(person.values())  # Получение всех значений

4. Типы множеств

a. Множество (set)

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

fruits = {"яблоко", "банан", "черника"}
numbers = {1, 2, 3, 4, 5}

Множества отлично подходят для удаления дубликатов и операций над множествами:

fruits.add("апельсин")
fruits.remove("банан")
print("яблоко" in fruits)  # Проверка принадлежности: True

set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1.union(set2))        # Объединение: {1, 2, 3, 4, 5}
print(set1.intersection(set2)) # Пересечение: {3}

b. Замороженное множество (frozenset)

Замороженные множества - это неизменяемые множества.

fs = frozenset([1, 2, 3])
# fs.add(4)  # Это вызовет ошибку

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

Иногда вам нужно преобразовать данные из одного типа в другой. Python предоставляет встроенные функции для этой цели:

# Преобразование строки в целое число
age_str = "25"
age_int = int(age_str)
print(age_int + 5)  # Вывод: 30

# Преобразование целого числа в строку
number = 42
number_str = str(number)
print("Ответ: " + number_str)  # Вывод: Ответ: 42

# Преобразование строки в вещественное число
price_str = "19.99"
price_float = float(price_str)
print(price_float * 2)  # Вывод: 39.98

# Преобразование списка в множество (удаление дубликатов)
numbers = [1, 2, 2, 3, 3, 4, 5]
unique_numbers = set(numbers)
print(unique_numbers)  # Вывод: {1, 2, 3, 4, 5}

Функции преобразования типов данных

Вот удобная таблица с часто используемыми функциями преобразования типов данных:

Функция Описание Пример
int(x) Преобразует x в целое число int("10")10
float(x) Преобразует x в вещественное число float("3.14")3.14
str(x) Преобразует x в строку str(42)"42"
list(x) Преобразует x в список list("привет")['п', 'р', 'и', 'в', 'е', 'т']
tuple(x) Преобразует x в кортеж tuple([1, 2, 3])(1, 2, 3)
set(x) Преобразует x в множество set([1, 2, 2, 3]){1, 2, 3}
dict(x) Создает словарь. x должен быть последовательностью пар ключ-значение dict([('а', 1), ('б', 2)]){'а': 1, 'б': 2}
bool(x) Преобразует x в логическое значение bool(1)True, bool(0)False

Помните, эти функции не изменяют исходное значение; они создают новое значение желаемого типа.

Итак, дорогие студенты! Мы прошли через землю Python типов данных, от простых целых чисел до сложных словарей. Каждый тип данных - это мощное инструмент в вашей программной утилитке, готовый помочь вам решать различные задачи.

По мере продолжения вашего путешествия по Python, вы будете использовать эти типы данных ежедневно. Они - строительные блоки ваших программ, ингредиенты ваших программных рецептов. Так что играйте с ними, экспериментируйте и, что самое важное, наслаждайтесь процессом!

Помните, в программировании, как и в жизни, дело не в том, чтобы сразу всё сделать правильно. Дело в том, чтобы учиться, расти и наслаждаться процессом. Так что не бойтесь совершать ошибки - они просто шаги на вашем пути к мастерству в Python!

Теперь, отправляйтесь в путь и пишите код! И всегда помните: в Python, как и в жизни, тип имеет значение! ?✨

Credits: Image by storyset