Основы Python: первые шаги в программировании
Основы синтаксиса Python
Python - язык с динамической типизацией и чистым синтаксисом. Любая программа строится из базовых блоков: переменных, операторов, циклов и функций. Рассмотрим каждый элемент с примерами.
Переменные и присваивание
Переменная создается в момент присваивания значения. Тип определяется автоматически.
name = "Анна"
age = 25
height = 1.68
is_student = TruePython определение функции (определение функции в python)
Множественное присваивание позволяет задать несколько переменных одной строкой:
a, b, c = 1, 2, 3Positional argument python (позиционные аргументы в python)
Типичная ошибка: использование неопределенной переменной вызовет NameError. Всегда проверять инициализацию.
Как объявить переменную и присвоить значение?
Способы различаются по количеству переменных и читаемости.
Одиночное присваивание - самый распространенный вариант:
x = 10
базовые коды в python (базовые коды на python)
Множественное с кортежем - удобно в циклах:
x, y = 10, 20запись переменных в python (объявление и запись переменных в python)
Присваивание с распаковкой:
numbers = [1, 2, 3]
a, b, c = numbersкак закоментить несколько строк в python (комментирование блоков кода в python)
Ошибка: несоответствие количества элементов вызовет ValueError. Проверять длину последовательности.
Обмен значений без временной переменной:
a, b = b, aнесколько значений в переменной python (присваивание нескольких значений переменным в python)
Какие базовые типы данных существуют?
Python предоставляет несколько встроенных типов: целые числа (int), числа с плавающей точкой (float), строки (str) и булевы значения (bool).
Примеры:
age = 30 # int
temperature = 36.6 # float
city = "Москва" # str
is_active = False # boolновая переменная в python (создание новой переменной в python)
Тип можно проверить функцией type():
print(type(age)) # Частая путаница: сложение числа и строки приводит к TypeError. Преобразовывать типы явно (int(), str()).
Как выполнить условное ветвление?
Конструкция if-elif-else управляет выполнением кода в зависимости от условий.
score = 85
if score >= 90:
grade = "Отлично"
elif score >= 75:
grade = "Хорошо"
else:
grade = "Нужно улучшить"
print(grade)Распространенная ошибка: отсутствие двоеточия после условия и неправильные отступы вызывают IndentationError. Использовать 4 пробела.
Как организовать цикл?
Циклы for и while повторяют действия несколько раз.
Цикл for перебирает элементы последовательности:
fruits = ["яблоко", "банан", "вишня"]
for fruit in fruits:
print(fruit)Цикл while выполняется, пока истинно условие:
count = 0
while count < 3:
print("Итерация", count)
count += 1Бесконечный цикл: если условие никогда не станет ложным. Убедиться, что переменная изменяется внутри цикла.
Как определить и вызвать функцию?
Функции создаются с помощью def. Они могут принимать параметры и возвращать результат.
def greet(name):
"""Возвращает приветствие."""
return "Привет, " + name + "!"
message = greet("Олег")
print(message)Функция без return возвращает None.
Ошибка: забыли вернуть значение - переменная получит None. Использовать return явно.
Как работать со списками?
Список - изменяемая упорядоченная коллекция. Элементы индексируются с нуля.
colors = ["красный", "зеленый", "синий"]
print(colors[0]) # красный
colors.append("желтый") # добавление
print(len(colors)) # 4Срезы позволяют получить подсписок:
first_two = colors[:2] # ['красный', 'зеленый']Внимание: выход за границы списка вызывает IndexError. Проверять длину перед обращением.
Как работать со строками?
Строки - неизменяемые последовательности символов. Поддерживают срезы и методы.
word = "Python"
print(word[0]) # P
print(word[-1]) # n
print(word[1:4]) # yth
print(word.upper()) # PYTHONКонкатенация через + или f-строки:
name = "Мир"
greeting = f"Привет, {name}!"Ошибка: попытка изменить строку по индексу вызовет TypeError. Создавать новую строку.
Как использовать словари?
Словарь хранит пары ключ-значение. Ключи уникальны, изменяемы.
person = {"name": "Иван", "age": 30, "city": "Казань"}
print(person["name"]) # Иван
person["age"] = 31 # изменение
person["job"] = "инженер" # добавлениеИтерация по ключам:
for key in person:
print(key, person[key])Проблема: обращение к несуществующему ключу вызывает KeyError. Использовать метод get() с значением по умолчанию.
Расширенные примеры кода, выходящие за рамки базового синтаксиса.
Списочное включение (list comprehension)
squares = [x**2 for x in range(10) if x % 2 == 0]
print(squares)[0, 4, 16, 36, 64]
Компактная замена циклу for с фильтрацией.
Ошибка: чрезмерное усложнение делает код нечитаемым. Использовать для простых преобразований.
Генераторы
def count_up_to(n):
i = 1
while i <= n:
yield i
i += 1
for num in count_up_to(3):
print(num)1 2 3
Генераторы экономят память при работе с большими последовательностями.
Работа с файлами
with open("example.txt", "w", encoding="utf-8") as f:
f.write("Hello, file!\n")
with open("example.txt", "r", encoding="utf-8") as f:
content = f.read()
print(content)Hello, file!
Конструкция with гарантирует закрытие файла даже при ошибке.
Обработка исключений
try:
result = 10 / 0
except ZeroDivisionError:
print("Деление на ноль!")
else:
print("Результат:", result)
finally:
print("Блок выполняется всегда")Деление на ноль! Блок выполняется всегда
Блоки try-except-else-finally обрабатывают ошибки без остановки программы.
Лямбда-функции
add = lambda a, b: a + b
print(add(3, 5))8
Анонимные функции удобны для кратких операций, особенно с map(), filter().
Импорт модулей
import math
print(math.sqrt(16))
from datetime import datetime
print(datetime.now())4.0 2025-04-08 15:23:45.123456
Модули расширяют возможности: математические операции, работа с датой, случайные числа и т.д.
Работа с множествами
a = {1, 2, 3}
b = {3, 4, 5}
print(a | b) # объединение
print(a & b) # пересечение{1, 2, 3, 4, 5}
{3}Множества удаляют дубликаты и поддерживают операции теории множеств.