Основы написания кода на Python: переменные, условия, циклы, функции

Раздел: Прочее -> Основы

Основные конструкции языка Python

Основной подход: использование современных возможностей Python 3

Для вывода текста в консоль применяется функция print(). Например:

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

Python m команда (запуск модуля python с флагом -m)

Для форматирования строк настоятельно рекомендуется использовать f-строки:

name = "Анна"
print(f"Привет, {name}!")

How write python (как писать на python)

Как вывести текст с использованием разных методов форматирования?

Вариант 1: конкатенация строк. Используется оператор +:

name = "Анна"
print("Привет, " + name + "!")

Недостаток: при конкатенации необходимо вручную преобразовывать нестроковые типы.

Вариант 2: метод format(). Позволяет вставлять значения по позиции или имени:

print("Привет, {}!".format(name))

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

Типичные ошибки:

  • IndentationError: неправильный отступ (например, пропущен пробел перед print в блоке if). Решение: использовать 4 пробела или Tab, но не смешивать.
  • NameError: переменная не определена. Пример: print(x) до присвоения x.
  • TypeError: попытка сложить строку и число: print("Число " + 5). Решение: привести к строке: print("Число " + str(5)).

Как объявить переменную и указать ее тип?

В Python переменные объявляются простым присваиванием. Тип определяется автоматически. Основной способ:

x = 10
y = 3.14
name = "Python"

Для явного указания типа (type hints) используется синтаксис:

x: int = 10
name: str = "Python"

Type hints улучшают читаемость кода и помогают IDE, но не влияют на выполнение.

Ошибка: попытка использовать необъявленную переменную приводит к NameError. Рекомендуется инициализировать все переменные перед использованием.

Условные операторы: if, elif, else

Основной синтаксис:

x = 10
if x > 0:
    print("Положительное")
elif x == 0:
    print("Ноль")
else:
    print("Отрицательное")

Для простых условий можно использовать тернарный оператор:

result = "четное" if x % 2 == 0 else "нечетное"
print(result)

Как проверить несколько условий без elif?

Можно использовать логические операторы and, or, not:

if x > 0 and x < 10:
    print("Число от 1 до 9")

Или оператор in для проверки принадлежности:

if x in [1, 2, 3]:
    print("Одно из первых трех")

Распространенная ошибка: путать = (присваивание) и == (сравнение). Python выдает SyntaxWarning, но код может работать неверно.

Циклы: for и while

Цикл for чаще всего используется для перебора последовательностей:

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

С функцией range() для повторения действий заданное число раз:

for i in range(5):
    print(i)

Как перебрать элементы списка с индексом?

Рекомендуемый способ: функция enumerate():

for index, fruit in enumerate(fruits):
    print(index, fruit)

Устаревший способ: range(len(fruits)):

for i in range(len(fruits)):
    print(i, fruits[i])

Ошибка: бесконечный цикл while, если не обновляется условие. Всегда проверять наличие выхода.

Функции: определение и вызов

Определение функции с аннотациями типов:

def greet(name: str) -> str:
    return f"Привет, {name}!"

print(greet("Мир"))

Как создать функцию с необязательными параметрами?

Использование значений по умолчанию:

def power(x, n=2):
    return x ** n

print(power(3))   # 9
print(power(3, 3)) # 27

Для произвольного числа аргументов применяется *args и **kwargs:

def sum_all(*args):
    return sum(args)
print(sum_all(1,2,3))

Ошибка: изменяемые объекты как значения по умолчанию (например, список) сохраняют состояние между вызовами. Решение: использовать None и создавать новый объект внутри функции.

Расширенные примеры кода на Python

Множественное присваивание и обмен значениями

Python позволяет присваивать несколько переменных одновременно:

Пример
a, b = 1, 2
print(a, b)  # 1 2

Обмен значениями без временной переменной:

Пример
a, b = b, a
print(a, b)  # 2 1
Результат: 2 1

Распаковка последовательностей

Использование звездочки для захвата оставшихся элементов:

Пример
first, *middle, last = [1, 2, 3, 4, 5]
print(first)  # 1
print(middle) # [2, 3, 4]
print(last)   # 5
Результат:
1
[2, 3, 4]
5

Срезы строк и списков

Строки и списки поддерживают срезы: [start:stop:step]:

Пример
s = "Python"
print(s[1:4])   # "yth"
print(s[::-1])  # "nohtyP"
Результат:
yth
nohtyP

Генераторы списков (list comprehensions)

Создание списков в одну строку:

Пример
squares = [x**2 for x in range(10) if x % 2 == 0]
print(squares)  # [0, 4, 16, 36, 64]
Результат: [0, 4, 16, 36, 64]

Лямбда-функции

Анонимные функции для кратких операций:

Пример
add = lambda a, b: a + b
print(add(3, 5))  # 8

pairs = [(1, 'b'), (2, 'a'), (3, 'c')]
pairs.sort(key=lambda x: x[1])
print(pairs)  # [(2, 'a'), (1, 'b'), (3, 'c')]
Результат:
8
[(2, 'a'), (1, 'b'), (3, 'c')]

Работа с файлами (with open)

Чтение и запись с автоматическим закрытием:

Пример
with open('example.txt', 'w') as f:
    f.write('Hello, file!')

with open('example.txt', 'r') as f:
    content = f.read()
    print(content)
Результат: Hello, file!

Обработка исключений

Конструкция try/except/else/finally:

Пример
try:
    x = int(input("Введите число: "))
    result = 10 / x
except ValueError:
    print("Ошибка: введите целое число")
except ZeroDivisionError:
    print("Ошибка: деление на ноль")
else:
    print(f"Результат: {result}")
finally:
    print("Блок finally выполняется всегда")

При вводе '0':

Введите число: 0
Ошибка: деление на ноль
Блок finally выполняется всегда

Аргументы командной строки

Доступ к аргументам через sys.argv:

Пример
import sys
print("Имя скрипта:", sys.argv[0])
for i, arg in enumerate(sys.argv[1:], start=1):
    print(f"Аргумент {i}: {arg}")

Модуль random

Генерация случайных чисел:

Пример
import random
print(random.randint(1, 10))   # случайное целое
print(random.choice(['a', 'b', 'c'])) # случайный элемент
Пример вывода: 7
b

Дата и время

Текущая дата и время:

Пример
from datetime import datetime
now = datetime.now()
print(now.strftime("%Y-%m-%d %H:%M:%S"))
Пример: 2025-04-09 10:30:00

Как писать на Python - comments

En
How write python (python)