📖 Теория: Базовые типы данных, работа с функциями

← К оглавлению урока

⚡ Кратко

Тип данных говорит, что можно делать со значением: числа складывать, строки склеивать, логические значения использовать для ответов «да/нет». В Python тип хранится у объекта, поэтому переменная может менять тип при новом присваивании. Функция может вернуть результат, а может выполнить действие и вернуть None. type() помогает увидеть текущий тип объекта. Для строк важны кавычки, экранирование, \n, \t, а также параметры print(sep=..., end=...).

Тип данных и объект

Тип данных определяет, какие значения может хранить объект и какие операции с этими значениями допустимы. Объект в Python — любое значение, с которым работает программа: число, строка, логическое значение, None и более сложные структуры, которые появятся позже.

Ключевая мысль: в Python тип имеет объект, а имя переменной только ссылается на объект.

Динамическая типизация

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

# main.py
price = 10
print(type(price))  # <class 'int'>

price = 9.99
print(type(price))  # <class 'float'>

В конспекте это описано как динамическая типизация: Python не требует заранее объявлять тип переменной.

Примитивные типы данных

int — целые числа

# numbers.py
x = 5
y = -3
z = 0

float — числа с плавающей запятой

# numbers.py
pi = 3.14
temperature = -5.2

str — строки

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

# strings.py
single_quote_string = 'Это строка в одинарных кавычках.'
double_quote_string = "Это строка в двойных кавычках."
multi_line_string = """Это многострочная строка.
Она сохраняет переносы строк."""

bool — логические значения

# booleans.py
is_student = True
has_passed = False

True и False пишутся с большой буквы и без кавычек. Строка "True" — это уже текст, не логическое значение.

NoneType — отсутствие значения

# none_value.py
value = None

None используют, когда значение ещё неизвестно, не найдено или функция ничего полезного не возвращает.

Возвращаемое значение

Возвращаемое значение — результат, который функция передаёт обратно в место вызова. Например, input() возвращает введённую строку.

# return_value.py
name = input("Введите имя: ")
print(name)

Процедуры в Python

В Python нет отдельного синтаксиса «процедур», но термин иногда используют для функций, которые выполняют действие и не возвращают полезный результат. Такая функция фактически возвращает None.

# print_none.py
value = print("Привет, мир!")
print(value)  # None

Передача аргументов в функцию

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

# arguments.py
print(5)
print("Привет, мир!")

text = "Привет, мир!"
print(text)

print(2 + 5)
print(input("Введите имя: "))

Функция type()

type() возвращает тип объекта. Чтобы увидеть результат, передайте вызов type() в print().

# types.py
x = 10
print(type(x))  # <class 'int'>

x = "Привет"
print(type(x))  # <class 'str'>

Строковые операции

Конкатенация объединяет строки через +. Умножение строк повторяет строку заданное число раз.

# string_operations.py
str1 = "Привет"
str2 = "мир"
result = str1 + " " + str2
print(result)  # Привет мир

greeting = "Hi! "
print(greeting * 3)  # Hi! Hi! Hi!

Кавычки и многострочные строки

Если внутри текста есть одинарные кавычки, удобно обрамить строку двойными кавычками. Если внутри есть двойные кавычки — наоборот.

# quotes.py
quote1 = "Она сказала: 'Привет!'"
quote2 = 'Он ответил: "Привет!"'
quote3 = """Текст с 'одинарными' и "двойными" кавычками."""

Экранирование символов

Обратный слэш \ начинает escape-последовательность. Частые варианты: \n — новая строка, \t — табуляция, \\ — сам обратный слэш.

# escape.py
print("Первая строка\nВторая строка")
print("Первая строка\tВторая строка")
path = "C:\\Users\\Username\\Documents"
print(path)

Параметры sep и end

sep задаёт разделитель между аргументами print(), а end задаёт окончание вывода. По умолчанию sep=" ", end="\n".

# print_options.py
print("one", "two", "three")
print("one", "two", "three", sep="---")
print("Привет,", "мир", end="!")