Python: от простых команд до продвинутых приёмов
Команды в Python: синтаксис и примеры
Python предлагает набор команд, которые составляют основу любого скрипта. Каждая команда выполняет определённое действие: вывод информации, ввод данных, управление потоком выполнения, создание функций и импорт модулей. Понимание этих команд необходимо для написания эффективного кода.
Основные команды: print, input, if, for, while, def, import
Самая частая команда - print(). Она выводит данные в консоль. Команда input() считывает строку от пользователя. Условные конструкции if, elif, else помогают реализовать ветвление. Циклы for и while повторяют блоки кода. Определение функций выполняется через def, а подключение внешних модулей - через import.
# Пример использования базовых команд\nname = input('Введите имя: ')\nif name:\n print('Привет,', name)\nelse:\n print('Вы не ввели имя')\n\nfor i in range(3):\n print('Номер', i)\n\ndef greet(person):\n return 'Здравствуйте, ' + person\n\nimport math\nprint(math.sqrt(16))Python ввод слов (ввод слов с клавиатуры в python)
# Гипотетический вывод (зависит от ввода)\nВведите имя: Анна\nПривет, Анна\nНомер 0\nНомер 1\nНомер 2\n4.0
ключевое слово def в python (ключевое слово def в python)
Типичные ошибки: Не путать input() с raw_input() (в Python 3 только input). Забывать двоеточие после if, for, def. Отступы должны быть одинаковыми (обычно 4 пробела).
Как присвоить значение по условию в одну строку?
Вместо полноценного if-else можно использовать тернарный оператор: a if условие else b.
age = 20\nstatus = 'взрослый' if age >= 18 else 'ребенок'\nprint(status)
команды в программе python (команды в программе python)
взрослый
типы данных python dict (тип данных dict в python)
Не стоит злоупотреблять тернарными операторами - при сложных условиях код становится трудночитаемым.
Как обработать список без явного цикла?
Функции map(), filter() и генераторы списков (list comprehension) позволяют преобразовывать последовательности в одну строку.
numbers = [1, 2, 3, 4]\nsquares = [x**2 for x in numbers] # генератор списка\nevens = list(filter(lambda x: x % 2 == 0, numbers)) # filter\ndoubled = list(map(lambda x: x * 2, numbers)) # map\nprint(squares, evens, doubled)Python первая программа (первая программа на python)
[1, 4, 9, 16] [2, 4] [2, 4, 6, 8]
Python программа (программа на языке python)
Ошибка: В Python 3 map и filter возвращают итераторы, поэтому нужно оборачивать в list(), если требуется список.
Как создать функцию без использования def?
Лямбда-функции позволяют определить анонимную функцию в одной строке.
add = lambda a, b: a + b\nprint(add(3, 5))как сделать переменную в python (создание переменной в python)
8
как сделать строку python (создание строки в python)
В лямбда-функциях нельзя использовать операторы (if, for) или несколько выражений - только одно выражение.
Как выполнить код, записанный в строку?
Команды eval() вычисляют выражение, exec() выполняют произвольный код. Используются с осторожностью.
expr = '2 + 3 * 4'\nresult = eval(expr)\nprint('Результат:', result)\n\ncode = 'for i in range(3): print("i =", i)'\nexec(code)как сделать цикл в python (создание цикла в python)
Результат: 14\ni = 0\ni = 1\ni = 2
Опасность: eval() и exec() могут выполнить произвольный код, создавая угрозу безопасности. Не следует использовать с непроверенными данными.
Дополнительные примеры и приёмы
Ниже представлены расширенные сценарии использования команд Python, которые встречаются реже, но полезны при решении специфических задач.
Декоратор для логирования времени выполнения
Декоратор - это функция, которая оборачивает другую функцию и позволяет добавить поведение до и после вызова.
import time\ndef timer(func):\n def wrapper(*args, **kwargs):\n start = time.time()\n result = func(*args, **kwargs)\n end = time.time()\n print(f'Время выполнения {func.__name__}: {end - start:.4f} сек')\n return result\n return wrapper\n\n@timer\ndef slow_sum(n):\n total = 0\n for i in range(n):\n total += i\n return total\n\nslow_sum(1000000)Время выполнения slow_sum: 0.0512 сек
Генератор для бесконечной последовательности
Команда yield создаёт генератор, который не хранит все значения в памяти.
def fibonacci():\n a, b = 0, 1\n while True:\n yield a\n a, b = b, a + b\n\nfib = fibonacci()\nfor _ in range(10):\n print(next(fib), end=' ')0 1 1 2 3 5 8 13 21 34
Контекстный менеджер для работы с файлами
Команда with автоматически закрывает файл даже при возникновении ошибок.
with open('example.txt', 'w') as f:\n f.write('Строка записана в файл\n')\n\nwith open('example.txt', 'r') as f:\n content = f.read()\nprint(content)Строка записана в файл
Обработка нескольких исключений
Блок try может перехватывать разные типы исключений и выполнять альтернативные действия.
try:\n num = int(input('Введите число: '))\n result = 10 / num\nexcept ValueError:\n print('Ошибка: введено не число')\nexcept ZeroDivisionError:\n print('Ошибка: деление на ноль')\nelse:\n print('Результат:', result)\nfinally:\n print('Блок finally выполняется всегда')Введите число: 0\nОшибка: деление на ноль\nБлок finally выполняется всегда
Парсинг аргументов командной строки с argparse
Модуль argparse упрощает создание интерфейса командной строки.
import argparse\nparser = argparse.ArgumentParser(description='Пример утилиты')\nparser.add_argument('filename', help='Имя файла')\nparser.add_argument('--verbose', '-v', action='store_true', help='Подробный вывод')\nargs = parser.parse_args()\nif args.verbose:\n print(f'Обработка файла: {args.filename}')\nelse:\n print(f'Файл: {args.filename}')# Запуск из командной строки: python script.py data.txt --verbose\nОбработка файла: data.txt