Учебник по информатике и математике
Темы
Алгоритмы
C++
Основы языка
Python
Переменные и типы данных в Python
Оглавление:
Программа хранит данные в переменных — именованных ячейках памяти. В Python переменную не нужно объявлять заранее: она появляется в момент, когда ей впервые присваивают значение.
Создание переменной
age = 14
name = "Маша"
height = 1.62
is_student = True
Слева — имя, справа — значение, между ними знак =. Он означает не «равно», а «запомнить»: в переменную age кладётся число 14.
Правила для имён:
- буквы латиницы, цифры и подчёркивание, но не начинать с цифры:
score2можно,2scoreнельзя; - регистр важен:
Nameиname— разные переменные; - нельзя использовать ключевые слова языка:
if,for,classи другие; - имя должно говорить о содержимом:
total_priceлучше, чемtp.
Совет: Слова в длинных именах разделяй подчёркиванием:
max_speed,user_name. Так принято в Python, и так пишут в стандартной библиотеке.
Основные типы данных
| Тип | Что хранит | Примеры |
|---|---|---|
int |
целые числа | 0, -7, 1000000 |
float |
дробные числа | 3.14, -0.5, 2.0 |
str |
строки, то есть текст | "привет", 'a', "" |
bool |
логические значения | True, False |
Узнать тип значения можно функцией type():
print(type(14)) # <class 'int'>
print(type(1.62)) # <class 'float'>
print(type("Маша")) # <class 'str'>
print(type(True)) # <class 'bool'>
Ключевая идея: Тип принадлежит значению, а не переменной. Одна и та же переменная может сначала хранить число, а потом строку — Python это разрешает, хотя без необходимости так делать не стоит.
Операции зависят от типа
Один и тот же знак + для чисел означает сложение, а для строк — склеивание:
print(2 + 3) # 5
print("2" + "3") # 23
print("ха" * 3) # хахаха
Сложить число и строку нельзя: 2 + "3" вызовет ошибку TypeError. Сначала нужно привести значения к одному типу.
Преобразование типов
int("42") # 42 - строка стала числом
float("3.5") # 3.5
str(100) # "100" - число стало строкой
int(3.99) # 3 - дробная часть отбрасывается, не округляется
bool(0) # False; любое ненулевое число даёт True
Особенно часто преобразование нужно при вводе. Функция input() всегда возвращает строку, даже если пользователь набрал число:
a = input() # пользователь вводит 5
b = input() # пользователь вводит 7
print(a + b) # 57 - строки склеились!
a = int(input()) # так правильно
b = int(input())
print(a + b) # 12
Частая ошибка:
int("3.5")вызывает ошибку: строка с дробью не превращается в целое число напрямую. Сначалаfloat("3.5"), потом при необходимостиint(...).
Вывод значений
Для вывода нескольких значений в одной строке удобны f-строки — строки с буквой f перед кавычкой, внутри которых в фигурных скобках можно писать переменные:
name = "Маша"
age = 14
print(f"{name}, {age} лет") # Маша, 14 лет
Проверь себя
Что выведет print(«10» + «20»)?
Какого типа значение получится после int(7.8)? Ответ — именем типа, например: str
Определи тип каждого значения.
42
int
«42»
str
4.2
float
False
bool
Разложи выражения по их результату.
int(«5») + 2
str(5) + «2»
int(5.9)
7
52
5