Пособие по Python для начинающих: от установки до первых проектов

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

Для начинающих 8-10 часов изучения

Почему Python?

Простота синтаксиса

Chitko читаемый код, похожий на псевдокод, ускоряет обучение и понимание.

Универсальность

Веб-разработка, анализ данных, машинное обучение, автоматизация.

Большое сообщество

Множество библиотек, документации и готовых решений.

"Python — это не просто язык программирования, это философия читаемости и простоты, которая делает код не только функциональным, но и элегантным."

1. Установка Python

Установка Python — первый шаг. Рекомендуется версия 3.8 или новее. Ниже инструкции для основных операционных систем.

Windows

  1. Скачайте установщик с python.org
  2. Запустите установщик
  3. Обязательно отметьте "Add Python to PATH"
  4. Выберите "Customize installation" → "Install for all users"

macOS

  1. Скачайте .pkg с python.org
  2. Запустите установщик
  3. Или используйте Homebrew: brew install python

Linux

  1. Ubuntu/Debian: sudo apt install python3
  2. Fedora: sudo dnf install python3
  3. Arch: sudo pacman -S python

Важное замечание

При установке на Windows обязательно поставьте галочку "Add Python to PATH". Это позволит запускать python из командной строки.

# Проверка установки в терминале/командной строке

python --version
# Ожидаемый вывод: Python 3.x.x

python -c "print('Успешно!')"

2. Первая программа

Создание файла .py

Любой текстовый редактор или IDE (PyCharm, VS Code) подойдет. Сохраните файл с расширением .py.

hello_world.py

# Это комментарий
print("Hello, World!")

Запуск программы

  • Терминал: python hello_world.py
  • IDE: Кнопка "Run" или Shift+F10
  • Интерактивный режим: python → ввод команд по одной

Совет

Используйте интерактивный режим (REPL) для быстрой проверки небольших фрагментов кода. Введите help() для доступа к встроенной справке.

3. Основные концепции

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

Python динамически типизирован: тип переменной определяется автоматически при присваивании.

# Присваивание
name = "Анна"           # str (строка)
age = 28                # int (целое число)
height = 1.65           # float (число с плавающей точкой)
is_student = True       # bool (логический)

# Проверка типа
print(type(name))       # <class 'str'>
print(type(age))        # <class 'int'>

# Комментарии — это часть документации

Условные операторы

Конструкции if/elif/else для принятия решений.

score = 85

if score >= 90:
    grade = "A"
elif score >= 80:
    grade = "B"
elif score >= 70:
    grade = "C"
else:
    grade = "F"

print(f"Оценка: {grade}")  # f-строка (форматирование)

Циклы

Цикл for

Итерация по последовательностям (списки, строки, диапазоны).

# Диапазон
for i in range(5):      # 0,1,2,3,4
    print(i)

# Список
fruits = ["яблоко", "банан", "вишня"]
for fruit in fruits:
    print(fruit)

Цикл while

Повторение, пока условие истинно.

count = 0
while count < 3:
    print(count)
    count += 1

Функции

Функции — это блоки кода, которые выполняют определенную задачу и могут быть вызваны многократно.

def greet(name, greeting="Привет"):
    """Возвращает приветствие для указанного имени."""
    return f"{greeting}, {name}!"

# Вызов функции
message = greet("Мария")
print(message)  # "Привет, Мария!"

# Позиционные и именованные аргументы
print(greet(greeting="Здравствуйте", name="Иван"))

4. Работа с файлами

Python предоставляет простой API для операций с файлами: чтение, запись, добавление.

Чтение файла

# Способ 1: чтение всего файла
with open('file.txt', 'r', encoding='utf-8') as f:
    content = f.read()
    print(content)

# Способ 2: построчное чтение (память-эффективно)
with open('file.txt', 'r', encoding='utf-8') as f:
    for line in f:
        print(line.strip())  # strip() удаляет \n

Запись в файл

# 'w' — перезапись (существующий файл будет удален)
with open('output.txt', 'w', encoding='utf-8') as f:
    f.write("Первая строка\n")
    f.write("Вторая строка\n")

# 'a' — добавление в конец
with open('output.txt', 'a', encoding='utf-8') as f:
    f.write("Добавленная строка\n")

# 'x' — создание нового файла (ошибка, если существует)
with open('new_file.txt', 'x', encoding='utf-8') as f:
    f.write("Новый файл")

Контекстный менеджер with: автоматически закрывает файл после завершения блока, даже при ошибках. Всегда используйте его для работы с файлами.

5. Создание классов (ООП)

Классы позволяют создавать собственные типы данных, инкапсулируя данные и поведение.

class Dog:
    """Класс для представления собаки."""
    
    # Атрибут класса (общий для всех экземпляров)
    species = "Canis lupus"
    
    def __init__(self, name, age):
        """Инициализатор (конструктор)"""
        self.name = name    # атрибуты экземпляра
        self.age = age
    
    def bark(self):
        """Метод (поведение)"""
        return f"{self.name} говорит: Гав!"
    
    def __str__(self):
        """Строковое представление объекта"""
        return f"Собака {self.name}, {self.age} лет"

# Создание экземпляра (объекта) класса
my_dog = Dog("Шарик", 3)

# Доступ к атрибутам и методам
print(my_dog.name)      # Шарик
print(my_dog.bark())    # Шарик говорит: Гав!
print(my_dog)           # Собака Шарик, 3 лет
print(Dog.species)      # Canis lupus

Наследование

Создание нового класса на основе существующего.

class GoldenRetriever(Dog):
    def fetch(self, item):
        return f"{self.name} принес {item}!"

Инкапсуляция

Сокрытие внутренней реализации. Используйте _ для "защищенных" атрибутов.

class BankAccount:
    def __init__(self, balance):
        self.__balance = balance  # приватный атрибут
    
    def deposit(self, amount):
        self.__balance += amount

6. Упражнения для закрепления

Упражнение 1: Калькулятор

Напишите программу, которая запрашивает у пользователя два числа и операцию (+, -, *, /), затем выводит результат. Обработайте деление на ноль.

Показать решение
num1 = float(input("Введите первое число: "))
num2 = float(input("Введите второе число: "))
op = input("Введите операцию (+, -, *, /): ")

if op == '+':
    result = num1 + num2
elif op == '-':
    result = num1 - num2
elif op == '*':
    result = num1 * num2
elif op == '/':
    if num2 == 0:
        result = "Ошибка: деление на ноль"
    else:
        result = num1 / num2
else:
    result = "Неверная операция"

print(f"Результат: {result}")

Упражнение 2: Работа с файлом

Создайте файл notes.txt, запишите в него 5 строк с любым текстом. Затем прочитайте файл и выведите содержимое в обратном порядке (с последней строки).

Показать решение
# Запись
lines = [
    "Первая строка",
    "Вторая строка",
    "Третья строка",
    "Четвертая строка",
    "Пятая строка"
]

with open('notes.txt', 'w', encoding='utf-8') as f:
    for line in lines:
        f.write(line + '\n')

# Чтение и вывод в обратном порядке
with open('notes.txt', 'r', encoding='utf-8') as f:
    all_lines = f.readlines()

for line in reversed(all_lines):
    print(line.strip())

Упражнение 3: Класс "Книга"

Создайте класс Book с атрибутами title, author, year. Добавьте метод info(), возвращающий строку с информацией о книге.

Показать решение
class Book:
    def __init__(self, title, author, year):
        self.title = title
        self.author = author
        self.year = year
    
    def info(self):
        return f'"{self.title}" ({self.year}), {self.author}'

# Пример использования
book1 = Book("1984", "Джордж Оруэлл", 1949)
print(book1.info())  # "1984" (1949), Джордж Оруэлл

7. Дальнейшие шаги

Что изучать дальше?

  • Стандартная библиотека: модули os, sys, datetime, json
  • Обработка ошибок: try/except/finally
  • Контейнеры: списковые включения (list comprehensions), словари, множества
  • Популярные библиотеки: requests (HTTP), pandas (данные), flask (веб)

Ресурсы для практики

© 2024 Руководство по Python для начинающих. Материал предназначен для образовательных целей.