Отключение фрагментов кода и значений в Python на несколько строк
Способы отключения нескольких строк кода в Python
Базовый подход: символ # перед каждой строкой
В Python отсутствует отдельная синтаксическая конструкция для многострочных комментариев. Комментарий начинается с символа # и продолжается до конца строки. Чтобы закомментировать несколько строк, символ # ставится в каждой из них.
# Первая строка
# Вторая строка
# print('Этот код не выполняется')
print('Этот код выполняется')
как закомментировать несколько строк в python (многострочные конструкции и множественные элементы в python)
Этот код выполняется
Python обозначение типов (обозначение типов данных в python)
Такой подход применим в любом редакторе и в любой версии Python. Комментарии не создают строковых объектов и не влияют на итоговое поведение программы. Цель такого комментария: временно исключить строки из выполнения, сохраняя их для последующего восстановления.
Типичная трудность
Если в программе уже используется символ # внутри строки, например в тексте 'color: #fff', комментарий начинается только в том случае, если символ # стоит вне строкового литерала. Поэтому при комментировании строк кода с такими значениями требуется внимательность.
# print('color: #fff')
print('ready')
базовые конструкции языка python (основные конструкции языка python)
ready
Python подчеркивание (использование подчеркивания в python)
Как закомментировать выделенный блок с помощью клавиш в редакторе?
Редакторы VS Code, PyCharm, Sublime Text и другие поддерживают переключение комментариев для выделенного фрагмента. На Windows и Linux используется сочетание Ctrl + /, на macOS Cmd + /. После выделения нужных строк и нажатия сочетания редактор добавляет символ # в начало каждой строки.
# этот блок только что был комментарием
# вторая строка блока
# третья строка блока
Python название переменной (правила именования в python)
Повторное нажатие убирает символы #. Этот вариант удобен для быстрой отладки и для переключения между версиями логики.
Как отключить несколько строк через тройные кавычки?
Тройные кавычки создают многострочную строку. Если она не присвоена переменной, Python вычисляет её значение и игнорирует результат. Это выглядит как комментарий, но технически является строковым выражением.
'''
Текст внутри блока.
print('Эта строка не выполняется')
x = 10
'''
print('Блок завершен')
Python скобки (скобки в python)
Блок завершен
Цель такого варианта: быстро выключить большую часть программы без удаления текста. Однако в модуле, классе или функции такая строка становится docstring и может отображаться в справочной информации.
Ошибка с тройными кавычками
Если внутри такого блока встречаются такие же тройные кавычки, возникает SyntaxError. Тройные кавычки не подходят для временного комментирования кода, который уже содержит тройные кавычки. В таких случаях применяется символ #.
Как отключить группу строк с помощью условия if False?
Конструкция if False: позволяет превратить блок в неисполняемый. Тело блока записывается с отступом и не выполняется при запуске программы.
if False:
print('Не будет напечатано')
data = 123
print(data)
print('Продолжение')
Продолжение
Данный приём часто используют во время отладки, когда нужно исключить целую секцию, но сохранить её структуру. Код внутри блока по-прежнему проверяется синтаксически, поэтому синтаксические ошибки не будут скрыты.
Как закомментировать отдельные элементы в многострочных списках и словарях?
Python позволяет располагать элементы коллекций по одному на строке. Перед элементом ставится #, и этот элемент не попадает в конечный список или словарь.
colors = [
'red',
'green',
# 'blue',
'cyan',
]
print(colors)
['red', 'green', 'cyan']
Этот подход применяется для управления конфигурацией, настройками или перечнем значений без удаления исходного текста.
Частая ошибка при комментировании элемента словаря
Если закомментировать пару ключ: значение, то запятая перед комментарием или после него должна остаться в нужном месте. Иначе следующий элемент окажется без разделителя, и возникнет SyntaxError.
config = {
'host': 'localhost',
# 'port': 8080,
'mode': 'auto',
}
print(config)
{'host': 'localhost', 'mode': 'auto'}
Как отключить аргумент в многострочном вызове функции?
Длинные вызовы функций можно записывать в несколько строк внутри круглых скобок. Это удобно для настройки вывода или передачи параметров. Закомментированный аргумент не передается в функцию.
print(
'Hello,',
'user',
# 'today',
)
Hello, user
Дополнительные примеры многострочных выражений и комментариев
Переключение реализации внутри функции
В функции можно заранее подготовить несколько вариантов возвращаемого значения. Строка с return, перед которой стоит #, не выполняется. Активной становится следующая строка с return.
def compute(a, b):
# return a ** b
return a * b
print(compute(3, 4))
12
Если убрать # перед первым return, функция начнет возвращать 81.
def compute(a, b):
return a ** b
return a * b
print(compute(3, 4))
81
Второй return недостижим, поэтому функция всегда завершает работу на первом.
Многострочный список с комментариями отдельных элементов
plan = [
'разработка',
'тестирование',
# 'документация',
'релиз',
]
print(plan)
['разработка', 'тестирование', 'релиз']
Комментарий перед элементом делает его недоступным для использования, но текст остаётся в исходном файле. Такая запись удобна при работе с планами задач.
Кортеж с поясняющими комментариями
point = (
10, # x
20, # y
# 30, # z
)
print(point)
(10, 20)
Комментарии после значений объясняют назначение каждого элемента. Отключение позиции z меняет размерность кортежа.
Выражение в скобках с закомментированной частью
total = (
100
+ 20
+ 5
# + 1
)
print(total)
125
Круглые скобки позволяют перенести выражение на несколько строк. Комментарий перед знаком операции скрывает слагаемое, и общая сумма уменьшается.
Блок if False с сохранением отступов
if False:
print('Шаг 1')
print('Шаг 2')
print('Завершение')
Завершение
Данный приём сохраняет структуру отключенного кода. Для включения блока достаточно заменить False на True.
Списочное выражение без фильтра и с фильтром
numbers = [
n
for n in range(6)
# if n % 2 == 0
]
print(numbers)
[0, 1, 2, 3, 4, 5]
После удаления символа # перед if фильтр начнет действовать, и в список попадут только четные числа.
numbers = [
n
for n in range(6)
if n % 2 == 0
]
print(numbers)
[0, 2, 4]
Многострочная строка в роли документации
def sign(x):
'''
Возвращает знак числа.
'''
if x > 0:
return 'positive'
if x < 0:
return 'negative'
return 'zero'
print(sign(5))
positive
Строка с тройными кавычками сохраняется как docstring функции. Она не влияет на результат, но может использоваться средствами документации.