Задать вопрос
@PavelMos

Почему не работает комментирование блоком (тремя кавычками) внутри последовательности строк данных словаря?

Почему не работает блочное комментирование через ''' или """ внутри строк словаря? Python 3.6, Pycharm в окне и в консоли. Работают только строковые комментарии через #. Раньше не обращал внимания. Это связано с реализацией комментирования через тройные кавычки и внутри структур данных этот способ никак не использовать?

dict1={
    """
    'Старое1':{'x':90},
    'Старое1':{'x':91},
    'Старое1':{'x':92},
    """
    'Новое1':{'x':100},
    'Новое2':{'x':101},
    'Новое3':{'x':102}
}


dict2={
    #Старое1':{'x':90},
    #Старое1':{'x':91},
    #Старое1':{'x':92},
    'Новое1':{'x':100},
    'Новое2':{'x':101},
    'Новое3':{'x':102}
}
dict1
Out[62]: 
{"\n    'Старое1':{'x':90},\n    'Старое1':{'x':91},\n    'Старое1':{'x':92},\n    Новое1": {'x': 100},
 'Новое2': {'x': 101},
 'Новое3': {'x': 102}}
dict2
Out[63]: {'Новое1': {'x': 100}, 'Новое2': {'x': 101}, 'Новое3': {'x': 102}}
  • Вопрос задан
  • 55 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 2
@Everything_is_bad
Потому что это строка, твой Кэп. Как можно не понимать основы и с таким элементарным вопрос себа приходить.
ЗЫ особо доставил тег "Компьютерные сети", каким место он тут?
Ответ написан
Комментировать
Lord_of_Rings
@Lord_of_Rings Куратор тега Python
Дунадан - северный странник. Злой, но очень добрый
Тройные кавычки используются для создания строк, а не для комментирования. Когда вы используете тройные кавычки внутри словаря, вы фактически создаете строку, которая становится частью словаря.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@shinket7
В Python нет многострочных комментариев, есть только строчные.
Комментирование происходит только символом #.
Механика работы комментирования: интерпретатор Python идёт по программе и построчно её исполняет. Как только встречает символ # вне текста (вне кавычек), то он игнорирует всё, написанное после этого символа на данной строке, то есть не исполняет.

В Python есть тип данных str (строки, текст). В документации Python указано, как можно создавать строки. А именно: ставятся парные кавычки — всё записанное между ними будет считаться строкой. При этом есть два варианта такого указания строк: с одним символом кавычек (не важно, " или ') или с тремя одинаковыми символами кавычек (не важно, " или '). Разница в том, что в тройных кавычках внутри можно делать переносы строк, а в одиночных нельзя. То есть в случае тройных кавычек интерпретатор будет считать строкой всё, что увидит вплоть до следующих таких тройных кавычек, где бы они не стояли, даже если на другой строке. А вот если с одиночными кавычками забыть их закрыть на той же строке, то произойдёт ошибка SyntaxError при запуске программы.

Для интерпретатора не обязательно сохранять значения в переменную. Например, в строчке программы можно написать просто число — будет просто число, которое сразу же забудется вне этой строчки, так как не было сохранено в переменную. Точно так же может быть в строчке программы любой текст, который в кавычках записан — если его никуда при этом не передавать и не сохранять, то он просто будет, а после сразу забудется.

То есть, в тройных кавычках находится обычная строка (тип str), а не комментарий. Эта часть исполняется интерпретатором. Если сохранить её в переменную — она будет в переменной. Если например, записать её внутри списка (тип list), то она будет элементом этого списка.
Если же нужно комментирование, то нужно использовать символ #.
Для быстрого комментирования нескольких строк в многих IDE можно выделить несколько строк и после сразу всех их закомментировать нажатием Ctrl+/.

Но ещё есть понятие "докстриги" (англ. Docstring). Это строчки, используемые для документации. Они тоже никуда не сохраняются явно, но при этом на самом деле сохраняются в атрибут объекта __doc__. Их используют для указания документации прямо в коде для модуля, класса, функции.

Упоминаются докстринги в PEP 8 в виде правила этого соглашения, как их нужно писать.
Подробное объяснение, что это такое, зачем, как работает, расписано в PEP 257.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы