1.1 Установка и настройка Python
Введение
Python — это супер понятный язык программирования, который отлично подходит для начинающих! С его помощью можно делать классные вещи: создавать сайты, анализировать данные и даже обучать искусственный интеллект.
Давайте начнем с настройки всего необходимого для работы.
Для новичков: Не волнуйтесь, если что-то не получится с первого раза — это абсолютно нормально! Мы все через это проходили. Главное — не сдаваться и продолжать практиковаться.
Установка Python
Windows
- Скачайте Python с python.org/downloads
- Запустите инсталлятор и обязательно отметьте "Add Python to PATH"
- Нажмите "Install Now"
Важно: Опция "Add Python to PATH" позволяет запускать Python из командной строки.
# Верификация успешной установки в командной строке Windows
python --version
# Ожидаемый результат: Python 3.11.x
macOS
В macOS Python может быть уже установлен, но лучше установить новую версию:
- Скачайте Python с python.org/downloads
- Откройте скачанный .pkg файл и следуйте инструкциям
# Верификация успешной установки в терминале macOS
python3 --version
# Ожидаемый результат: Python 3.11.x
Linux
В большинстве дистрибутивов Linux Python уже установлен. Проверьте версию:
# Проверка версии Python
python3 --version
Если Python отсутствует или требуется обновление, используйте пакетный менеджер вашего дистрибутива:
# Ubuntu/Debian
sudo apt update
sudo apt install python3 python3-pip
# Fedora
sudo dnf install python3 python3-pip
# Arch Linux
sudo pacman -S python python-pip
Первый запуск Python
После установки проверим работу Python и создадим первую программу.
Интерактивный режим
Python имеет интерактивный режим для быстрого тестирования кода:
# Запуск интерактивного режима
python # В Windows
python3 # В macOS/Linux
После запуска вы увидите приглашение интерпретатора Python (>>>), где можно вводить и исполнять команды непосредственно:
# В интерактивном режиме
>>> print("Привет, мир!")
Привет, мир!
>>> 2 + 3
5
>>> exit() # Завершение сеанса интерактивного режима
Запуск Python-скриптов
Для разработки полноценных программ код сохраняется в файлах с расширением .py:
- Создайте файл hello.py в текстовом редакторе
- Добавьте следующий код:
print("Привет, мир!")
- Сохраните файл
- Выполните скрипт через командную строку или терминал:
# Запуск Python-скрипта
python hello.py # В Windows
python3 hello.py # В macOS/Linux
Установка IDE
Для удобной разработки рекомендуется использовать специальную среду:
- Visual Studio Code — современный редактор с поддержкой Python. Идеален для начинающих.
- PyCharm — профессиональная среда для Python-разработки.
- Jupyter Notebook — интерактивная среда для анализа данных и обучения.
Настройка Visual Studio Code для Python
- Установите VS Code с официального сайта
- Откройте VS Code и нажмите Ctrl+Shift+X
- Найдите и установите расширение "Python" от Microsoft
- Дополнительно установите "Pylance" для улучшенной поддержки языка
Профессиональный совет: VS Code предоставляет множество инструментов для повышения продуктивности Python-разработчика, включая интеллектуальное автодополнение кода, встроенный отладчик, интеграцию с системами контроля версий, линтеры и форматтеры кода. Инвестирование времени в изучение этих возможностей существенно ускорит ваш рабочий процесс и повысит качество кода.
Практическое задание: Первая программа
Разработайте Python-скрипт hello_python.py
, реализующий следующую функциональность:
- Вывод приветственного сообщения "Привет, Python!"
- Определение и вывод текущей версии Python (с использованием модуля
sys
) - Определение и вывод текущей даты и времени (с использованием модуля
datetime
) - Вычисление и вывод результата математического выражения: (2023 - 1991) * 2 + 10
1.2 Синтаксис и переменные
Основные элементы синтаксиса Python
Python придумали так, чтобы код было легко читать и писать. Вместо запутанных фигурных скобок здесь используются простые отступы — это делает код чистым и понятным даже для новичков!
Сравнение с другими языками: Если вы уже знакомы с другими языками программирования, то заметите, что в Python нет фигурных скобок {}
. Это одна из фишек, которая делает код более читабельным и приятным для глаз.
Отступы и блоки кода
В Python отступы определяют структуру кода. Они показывают, какие строки относятся к блоку условия, цикла или функции.
# Корректное использование отступов
if True:
print("Данный код относится к блоку условного оператора if")
print("Этот код также находится в блоке if")
print("Этот код находится вне блока if")
# Некорректное использование отступов приведет к ошибке
if True:
print("Этот код вызовет ошибку IndentationError")
Важно: Согласно стандарту PEP 8 (руководство по стилю кода Python), рекомендуется использовать 4 пробела для каждого уровня отступа. Категорически не рекомендуется смешивать табуляцию и пробелы в одном проекте!
Комментарии
Комментарии — важный инструмент документирования кода. Они игнорируются интерпретатором Python и предназначены исключительно для разработчиков.
# Это однострочный комментарий
"""
Это многострочный комментарий
или документационная строка (docstring)
Обычно используется для документирования функций, классов и модулей
"""
print("Привет, мир!") # Комментарий может располагаться после кода в той же строке
Переменные и присваивание
Переменные в Python — это как волшебные коробочки, в которые вы складываете разные данные. И что круто — Python сам понимает, что вы туда положили, без лишних указаний с вашей стороны!
Простыми словами: Представьте, что переменная — это коробка с этикеткой. Этикетка — имя переменной, а содержимое — значение. Вы можете положить туда что угодно, и Python сам разберется, что это такое. Удобно, правда?
# Создание переменных и присваивание значений
name = "Алексей" # строковый тип (str)
age = 25 # целочисленный тип (int)
height = 1.85 # тип с плавающей точкой (float)
is_student = True # логический тип (bool)
# Вывод значений переменных
print(name)
print(age)
print(height)
print(is_student)
# Модификация значения переменной
age = 26
print(f"Обновленный возраст: {age}")
Правила именования переменных
При выборе имен для переменных следует руководствоваться следующими правилами:
- Имя может содержать буквы латинского алфавита (a-z, A-Z), цифры (0-9) и символ подчеркивания (_)
- Имя не может начинаться с цифры
- Имена чувствительны к регистру (name и Name интерпретируются как разные переменные)
- Запрещено использовать зарезервированные слова Python (if, for, while, class, def и т.д.)
# Допустимые имена переменных
user_name = "John"
age1 = 30
_private = "Секретные данные"
firstName = "Иван"
CONSTANT = 3.14159
# Недопустимые имена переменных
# 1name = "Ошибка" # Начинается с цифры
# my-var = 10 # Содержит недопустимый символ (дефис)
# if = "Ошибка" # Использует зарезервированное слово
Соглашение о стиле: В Python принято использовать snake_case для именования переменных и функций (слова в нижнем регистре, разделенные подчеркиваниями). Для классов используется стиль CamelCase (каждое слово начинается с заглавной буквы, без разделителей). Константы обычно записываются в верхнем регистре с подчеркиваниями (например, MAX_VALUE).
Множественное присваивание
Python предоставляет элегантный синтаксис для одновременного присваивания значений нескольким переменным:
# Присваивание одного значения нескольким переменным
x = y = z = 0
print(x, y, z) # Результат: 0 0 0
# Присваивание разных значений нескольким переменным
a, b, c = 1, 2, 3
print(a, b, c) # Результат: 1 2 3
# Обмен значениями переменных (без использования временной переменной)
a, b = b, a
print(a, b) # Результат: 2 1
Типы данных
Python обладает богатой системой встроенных типов данных. Тип переменной определяется автоматически при присваивании значения и может изменяться в процессе выполнения программы.
# Основные типы данных
number = 42 # int (целое число)
pi = 3.14159 # float (число с плавающей точкой)
name = "Python" # str (строка)
is_active = True # bool (логическое значение)
nothing = None # NoneType (отсутствие значения)
# Определение типа с помощью функции type()
print(type(number)) #
print(type(pi)) #
print(type(name)) #
print(type(is_active)) #
print(type(nothing)) #
Преобразование типов
В определенных ситуациях необходимо явное преобразование данных из одного типа в другой. Python предоставляет встроенные функции для таких преобразований:
# Преобразование типов
age_str = "25"
age_int = int(age_str) # Преобразование строки в целое число
print(age_int + 5) # Результат: 30
price = 19.99
price_int = int(price) # Преобразование float в int (отбрасывает дробную часть)
print(price_int) # Результат: 19
count = 100
count_str = str(count) # Преобразование числа в строку
print("У вас " + count_str + " непрочитанных сообщений") # "У вас 100 непрочитанных сообщений"
is_valid = 1
is_valid_bool = bool(is_valid) # Преобразование в логическое значение
print(is_valid_bool) # Результат: True (ненулевые числа преобразуются в True)
Примечание по безопасности: Не все преобразования типов выполняются безопасно. Например, попытка преобразовать строку "привет" в число вызовет исключение ValueError. Рекомендуется всегда проверять данные перед преобразованием или использовать обработку исключений.
Ввод и вывод данных
Функция print()
Используется для вывода информации в консоль:
# Базовое использование print()
print("Привет, мир!")
# Вывод нескольких значений
name = "Анна"
age = 28
print("Имя:", name, "Возраст:", age)
# Форматирование строк с использованием f-строк (Python 3.6+)
print(f"Привет, {name}! Вам {age} лет.")
# Использование разделителя между аргументами
print("Яблоко", "Банан", "Апельсин", sep=" | ") # Результат: Яблоко | Банан | Апельсин
# Модификация символа окончания строки
print("Строка 1", end=" --> ")
print("Строка 2") # Результат: Строка 1 --> Строка 2
Функция input()
Получает данные от пользователя:
# Базовое использование input()
name = input("Введите ваше имя: ")
print(f"Здравствуйте, {name}!")
# Важно: input() всегда возвращает данные в виде строки
age = input("Введите ваш возраст: ")
print(type(age)) #
# Для использования в арифметических операциях необходимо преобразование в числовой тип
age_int = int(age)
next_year_age = age_int + 1
print(f"В следующем году вам исполнится {next_year_age} лет.")
Практическое задание: Интерактивный калькулятор
Разработайте программу "Интерактивный калькулятор", которая выполняет следующие функции:
- Приветствует пользователя и представляется
- Запрашивает персональные данные пользователя (имя, год рождения)
- Вычисляет текущий возраст пользователя
- Предлагает ввести два числа для математических операций
- Выполняет основные арифметические действия с введенными числами (+, -, *, /)
- Формирует персонализированный отчет с результатами всех вычислений
1.3 Типы данных
Основные типы данных в Python
В Python есть разные типы данных для хранения информации. Давайте познакомимся с этими ребятами поближе!
Основные типы данных:
- int (целые числа): 1, 42, -10, 0 — целые числа любого размера, даже огромные. Python автоматически выделяет нужную память.
- float (числа с плавающей точкой): 3.14, -0.001, 2.0 — для вычислений с десятичными дробями. Точность ограничена (~15-17 значащих цифр).
- str (строки): "Привет", 'Python' — неизменяемые последовательности символов. Поддерживают индексацию, срезы и множество методов для обработки текста.
- bool (логические значения): True, False — используются в условиях и логических операциях. Любое ненулевое число или непустая коллекция при преобразовании дает True.
- None: специальное значение, обозначающее отсутствие данных. Часто используется как значение по умолчанию для аргументов функций.
Строковый тип (str)
Строки — это последовательности символов, заключенные в кавычки.
# Способы объявления строк
s1 = 'Привет' # одинарные кавычки
s2 = "Мир" # двойные кавычки
s3 = '''Многострочный
текст''' # тройные кавычки для многострочного содержимого
# Основные операции со строками
print(s1 + ' ' + s2) # конкатенация (объединение): "Привет Мир"
print(s1 * 3) # повторение: "ПриветПриветПривет"
print(len(s1)) # определение длины: 6 символов
print(s1[0]) # доступ по индексу: "П" (индексация начинается с 0)
print(s1[1:4]) # срезы (slicing): "рив" (символы с индекса 1 по 3 включительно)
print(s1[-1]) # отрицательный индекс: "т" (последний символ)
print(s1[:3]) # от начала до индекса 2: "При"
print(s1[3:]) # от индекса 3 до конца: "вет"
# Полезные методы для работы со строками
text = "Python - мощный язык программирования"
print(text.upper()) # "PYTHON - МОЩНЫЙ ЯЗЫК ПРОГРАММИРОВАНИЯ"
print(text.lower()) # "python - мощный язык программирования"
print(text.replace("мощный", "элегантный")) # замена подстроки
print(text.split()) # разделение на список слов: ['Python', '-', 'мощный', 'язык', 'программирования']
print(" избыточные пробелы ".strip()) # удаление начальных и конечных пробелов
print(text.find("язык")) # поиск подстроки: возвращает индекс первого вхождения или -1
print("язык" in text) # проверка наличия подстроки: True
print(text.count("м")) # подсчет вхождений: 2
Строки в Python неизменяемы. После создания строки её нельзя изменить. Операции со строками создают новые строки.
Логический тип (bool)
Тип bool имеет два значения: True и False. Используется в условиях и логических операциях.
# Объявление логических переменных
is_active = True
is_completed = False
# Логические операции
print(is_active and is_completed) # False (логическое И: требует истинности обоих операндов)
print(is_active or is_completed) # True (логическое ИЛИ: требует истинности хотя бы одного операнда)
print(not is_active) # False (логическое НЕ: инвертирует значение)
# Операции сравнения возвращают логические значения
x = 10
y = 5
print(x > y) # True (больше)
print(x == y) # False (равно)
print(x != y) # True (не равно)
# Правила приведения к логическому типу
# В Python любое ненулевое число или непустая коллекция считается истиной (True)
print(bool(0)) # False
print(bool(42)) # True
print(bool("")) # False (пустая строка)
print(bool("abc")) # True (непустая строка)
print(bool([])) # False (пустой список)
print(bool([1,2])) # True (непустой список)
print(bool(None)) # False
Числовые типы (int, float)
Python предоставляет два основных числовых типа: целые числа (int) и числа с плавающей точкой (float).
# Целые числа (int)
a = 42
b = 1000000000000000000000 # Python поддерживает целые числа произвольной длины
c = 0b1010 # Двоичная запись (10 в десятичной)
d = 0o777 # Восьмеричная запись (511 в десятичной)
e = 0xFF # Шестнадцатеричная запись (255 в десятичной)
print(a, b, c, d, e)
# Числа с плавающей точкой (float)
pi = 3.14159
e_const = 2.71828
avogadro = 6.022e23 # Научная нотация: 6.022 × 10²³
tiny = 1e-10 # 0.0000000001
print(pi, e_const, avogadro, tiny)
# Арифметические операции
sum_result = a + pi # Смешивание int и float дает float: 45.14159
division = 10 / 3 # Обычное деление всегда дает float: 3.3333333333333335
floor_div = 10 // 3 # Целочисленное деление (результат округляется вниз): 3
modulo = 10 % 3 # Остаток от деления: 1
power = 2 ** 8 # Возведение в степень: 256
print(sum_result, division, floor_div, modulo, power)
# Округление и другие операции
import math
print(round(pi, 2)) # Округление до 2 знаков после запятой: 3.14
print(math.floor(pi)) # Округление вниз: 3
print(math.ceil(pi)) # Округление вверх: 4
print(math.sqrt(16)) # Квадратный корень: 4.0
print(abs(-42)) # Абсолютное значение: 42
Практическое задание: Аналитический инструмент для типов данных
Разработайте программу "Аналитический инструмент", которая демонстрирует работу с различными типами данных:
- Запрашивает у пользователя данные различных типов (текст, целое число, число с плавающей точкой)
- Проводит комплексный анализ введенной строки (длина, регистр, первый и последний символы, наличие цифр и букв)
- Выполняет набор математических операций с введенными числами
- Демонстрирует преобразования между различными типами данных
- Генерирует структурированный отчет с результатами всех операций и анализов
1.4 Базовые операторы
Операторы в Python
Операторы — это волшебные символы, с помощью которых вы творите чудеса с данными. Давайте посмотрим, какие операторы есть в нашем арсенале!
Шпаргалка по операторам:
Категория | Операторы | Пример | Результат |
---|---|---|---|
Арифметические | + (сложение) | 5 + 3 | 8 |
- (вычитание) | 5 - 3 | 2 | |
* (умножение) | 5 * 3 | 15 | |
/ (деление) | 5 / 2 | 2.5 | |
// (целочисленное деление) | 5 // 2 | 2 | |
% (остаток от деления) | 5 % 2 | 1 | |
** (возведение в степень) | 2 ** 3 | 8 | |
Сравнения | == (равно) | 5 == 5 | True |
!= (не равно) | 5 != 3 | True | |
> (больше) | 5 > 3 | True | |
< (меньше) | 5 < 3 | False | |
>= (больше или равно) | 5 >= 5 | True | |
<= (меньше или равно) | 5 <= 3 | False | |
Логические | and (логическое И) | True and False | False |
or (логическое ИЛИ) | True or False | True | |
not (логическое НЕ) | not True | False | |
Присваивания | = (простое присваивание) | x = 5 | x = 5 |
+= (сложение с присваиванием) | x += 3 | x = x + 3 | |
-= (вычитание с присваиванием) | x -= 2 | x = x - 2 | |
*= (умножение с присваиванием) | x *= 2 | x = x * 2 | |
/= (деление с присваиванием) | x /= 2 | x = x / 2 | |
Членства | in (содержится в) | "a" in "abc" | True |
not in (не содержится в) | "d" not in "abc" | True | |
is (тот же объект) | x is None | True (если x = None) |
Приоритет операторов
В Python операторы имеют разный приоритет. Операции с более высоким приоритетом выполняются раньше.
# Пример приоритета операторов
result = 2 + 3 * 4 # Умножение имеет более высокий приоритет, чем сложение
print(result) # 14, а не 20
# Использование скобок для изменения порядка операций
result = (2 + 3) * 4 # Сначала выполняется выражение в скобках
print(result) # 20
# Приоритет логических операторов
x = 5
y = 10
z = 15
result = x < y and y < z # Сначала выполняются сравнения, затем логическое И
print(result) # True
# Сложное выражение
result = x + y * z - x / y # Порядок: умножение/деление, затем сложение/вычитание
print(result) # 5 + (10 * 15) - (5 / 10) = 5 + 150 - 0.5 = 154.5
Битовые операторы
Python также поддерживает битовые операции для работы с отдельными битами числа:
# Битовые операторы
a = 60 # 60 = 0011 1100 в двоичной системе
b = 13 # 13 = 0000 1101 в двоичной системе
# Битовое И (AND)
print(a & b) # 12 = 0000 1100
# Битовое ИЛИ (OR)
print(a | b) # 61 = 0011 1101
# Битовое исключающее ИЛИ (XOR)
print(a ^ b) # 49 = 0011 0001
# Битовое НЕ (NOT)
print(~a) # -61 = 1100 0011 (с учетом дополнительного кода)
# Битовый сдвиг влево
print(a << 2) # 240 = 1111 0000 (сдвиг на 2 бита влево)
# Битовый сдвиг вправо
print(a >> 2) # 15 = 0000 1111 (сдвиг на 2 бита вправо)
Поздравляем!
Вы завершили изучение модуля "Основы Python". Теперь можно двигаться дальше!