Пишите комментарии: Пишите или пишете — как правильно? | Образование | Общество

Содержание

Пишите или пишете — как правильно? | Образование | Общество

Есения Павлоцки

Примерное время чтения: 4 минуты

350993

Сюжет Говорим и пишем по-русски грамотно

Shutterstock.com

Отвечает Есения Павлоцки, лингвист-морфолог, эксперт института филологии, массовой информации и психологии Новосибирского государственного педагогического университета.

Верно и то, и другое, но всё зависит от смысла. Вернее, смысл высказывания будет зависеть от того, какую грамматическую форму вы выберете.

Самым простым решением оказываются вопросы, которые следует задать к глаголу: что делаете (пишете) или что делайте (пишите)? Первый адресуется к действию в настоящем, а второй к императиву, повелительному наклонению.

Если речь идет о глаголе в настоящем времени, то употребляем пишете. 

Почему? Глагол писать относится к первому спряжению (глагол на -ать). Согласно закономерности (а это результат сложных изменений в ходе развития нашего языка), в личных окончаниях глаголов первого спряжения мы пишем Е (-ем, -ешь, -ете, -ет).

Как только человек узнает об этом в школе, он сразу напрягается — иногда на всю жизнь: понять это почти невозможно и, как следствие, не так уж просто запомнить. И если выполнить домашнее задание помогут таблицы спряжений, то во взрослой жизни каждый раз обращаться к грамматическим алгоритмам проблематично.

Учить наизусть иррациональные (без погружения в историческую грамматику) закономерности действительно нелегко. В личных окончаниях I спряжения у нас Е, а II спряжения — И. Хорошо, но почему? Ответ на вопрос совсем не прост, и мы запоминаем это как аксиому.

А тем временем система, которая заставляет нас ломать голову — дышат или дышут, пишите или пишете, борятся

или борются — уже упрощена сама собой. Предшествовавшая ей система спряжений древнерусского языка была куда более сложной, а система времён содержала 4 прошедших, 2 будущих и настоящее время; во всех временах глаголы различались по лицам. 

Более того, спряжение форм настоящего времени в древнерусском языке было представлено тремя типами — I, II и нетематическим, которые различались лишь отдельными окончаниями.

Горшкова К. В., Хабургаев Г. А. Историческая грамматика русского языка, 1981.

В общем, ситуация на сегодня, очевидно, куда более простая. Но от этого не легче, и, конечно, проще запомнить то, что понятно. И если языковая интуиция — последняя надежда — не сложилась, то мучениям со склонениями, спряжениями и -ться/-тся не избежать.

Но, увы, это данность. Когда возникает вопрос «откуда это взялось», следует вспомнить: историческая грамматика похожа на известное английское стихотворение «Дом, который построил Джек», и уяснить пару алгоритмов намного проще, чем понять, что к ним привело.

Итак, в глаголе настоящего времени мы видим Е — пишете. Если же перед нами императив — пишите с И. От императива в целом отталкиваться проще: если нам нужно употребить напишете, то время уже не настоящее. Получается, что опять возникает путаница. С повелительным наклонением таких проблем не будет: пишите, напишите!

Еще один прием-подсказка — это ударение. Пишете — безударная позиция и Е, а пишите — ударная, И. Можно запомнить, с какой буквой сочетается ударение на определенном слоге, и избавиться от вопроса раз и навсегда.

Итак, императив пишите (я прошу вас/указываю вам писать) и глагол в форме настоящего времени пишете (то, что вы сейчас/в целом делаете). 

Примеры употребления: Немедленно пишите, что вы отказываетесь; пишите мне чаще / Здесь вы пишете ваше имя; вы очень красиво пишете.

  • Ошибки есть даже в учебниках! Учитель русского языка о росте безграмотности →
  • Филолог о причинах безграмотности россиян →
  • До скольки и который час — как правильно? →

русский язык

Следующий материал

Также вам может быть интересно

  • Преумножить или приумножить — как правильно?
  • Риэлтор или риелтор — как правильно?
  • Андрей Шулимов: «Язык жестов людям понять легче, чем человеческую речь»

Новости СМИ2

Комплекты цепь + браслет (длину пишите в комментарии)

Доставка 20 марта

2116 отзывов

Набор «Gold Fish» 1,4 см (Ж2)

Необыкновенный набор из дубайского золота «Gold Fish». В набор входят серьги, браслет и цепочка Цеп…

В архиве Товар продан

Набор «Gold Fish» 1,0 см (Ж2)

Необыкновенный набор из дубайского золота «Gold Fish». В набор входят браслет ,цепочка и серьги Це…

В архиве Товар продан

Набор цепь+браслет «Золотые оковы (ж2)

Цепочка и браслет из дубайского золота с классическим соединением звеньев Длина: от 40 до 60см Ши…

В архиве Товар продан

Набор «Мадонна» 0,5 см. (ж2)

Цепочка и браслет из дубайского золота с оригинальным плетением Длина: Цепочка от 40 до 60 см. Д…

В архиве Товар продан

Набор цепь+браслет «Афина» 0,8 см. (ж3)

Набор из цепочки и браслет из дубайского золота с оригинальным плетением Длина: от 40 до 60 см. Р…

В архиве Товар продан

Набор цепь+браслет «Gold Fish» 1,4 см (Ж2)

Необыкновенный набор из дубайского золота «Gold Fish». В набор входят браслет и цепочка Цепочка : Ш…

В архиве Товар продан

Набор цепь+браслет «Gold Fish» 1,0 см (Ж2)

Необыкновенный набор из дубайского золота «Gold Fish». В набор входят браслет и цепочка Цепочка : Д…

В архиве Товар продан

Набор цепь+браслет 0,5 см. «Двойная» (ж4)

Стильный набор из дубайского золота.В набор входит цепочка и браслет. Ширина: 0,5 см. Длину брасл…

В архиве Товар продан

Набор цепь+браслет «Афина» 0,4 см.

(к1)

Набор из цепочки и браслет из дубайского золота с оригинальным плетением Цепочка: Длина: от 40 до 6…

В архиве Товар продан

Набор «Императрица» 0,3-0,4 (Ж3)

Шикарный комплект из дубайского золота. Длина цепочки: от 40 до 60см Длина браслета: от 15 до 25см…

В архиве Товар продан

Набор «Императрица» 0,5-0,6 см. (ж4)

Шикарный набор из дубайского золота для настоящих цариц! Ширина: 0,5-0,6 см

В архиве Товар продан

630 р

1 заказ

Набор из жемчуга «Невеста» 0,5 см. (Ж1)

Нежный белоснежный набор из дубайского золота. Камень :Жемчуг Цепь: Ширина 0,5 см. Браслет : Ши…

В архиве Товар продан

Набор «Танец жемчуга» (Ж1)

Нежный набор из дубайского золота с жемчугом. В набор входят колье, браслет и серьги. Колье : длин…

В архиве Товар продан

Набор цепь+браслет «Love» ребристый (к1)

Цепочка и браслет из дубайского золота с необычным плетением в виде сердец Ширина цепи и браслета:…

В архиве Товар продан

Набор цепь+браслет «Афродита» 0,4 см. (к1)

Цепочка и браслет из дубайского золота с оригинальным плетением Ширина: 0,4 см. Длина браслета от…

В архиве Товар продан

Набор «Солнечная нить» (Ж4)

Сияющий набор из дубайского золота. Плетение «жгут». В набор входят цепь и браслет. Ширина цепи: 0…

В архиве Товар продан

Набор «Шикарная Мадонна» (Ж4)

Восхитительный набор из дубайского золота. В набор входят цепь и браслет Ширина цепи: 0,7-0,8 см. Д…

В архиве Товар продан

Набор «Жемчужное счастье» (Ж1)

Нежный набор из дубайского золота с жемчугом. В набор входят колье, браслет и серьги. Колье: длина…

В архиве Товар продан

Набор «Блеск жемчуга» (Ж1)

Нежный набор из дубайского золота с жемчугом. В набор входят колье, браслет и серьги. Колье: длина…

В архиве Товар продан

Набор «Магдалена» (Ж1)

Роскошный набор из дубайского золота. В набор входят колье, браслет и серьги. камни: кубический цир…

В архиве Товар продан

Следующая коллекция
Кулон + цепь

Доставка 20 марта

Каталог товаров для женщин во ВладивостокеЖенские аксессуары и украшения во ВладивостокеКупить бижутерию

Все, что вам нужно знать о написании эффективных комментариев в вашем коде | by Kurtis Pykes

Это так же важно, как написать исходный код

Опубликовано в

·

9 мин чтения

·

3 мая 2022 г.

Photo by Thomas Bormans on Unsp lash

Комментарии — это короткие пояснения, понятные программисту. или аннотации, записанные непосредственно в исходный код компьютерной программы. Хотя компьютер игнорирует их во время выполнения программы, написание эффективных комментариев в вашем исходном коде может быть столь же важным, как и сам код, по той простой причине, что программное обеспечение всегда остается незавершенным.

Всегда есть что-то, что можно сделать для улучшения программного продукта или услуги, что означает необходимость время от времени обновлять кодовую базу. Практически невозможно вносить изменения или добавлять новые функции в код, который вы не понимаете, поэтому очень важно, чтобы код всегда строился таким образом, чтобы его мог прочитать человек.

«Программы должны быть написаны для того, чтобы их могли читать люди, и лишь случайно для того, чтобы машины могли выполнять их».

Гарольд Абельсон

Комментарии используются, чтобы уведомлять, предупреждать и напоминать другим, кто не писал код [и себе в будущем], о важных вещах, которые делает код. В этой статье мы сосредоточимся на написании комментариев на Python.

  Оглавление  
- 5 неписаных правил о комментариях в Python
- Правило №1 Комментарии представляют собой полные предложения как код он комментирует
- Правило №4 Ставьте пробел после #
- Правило №5 Ссылки не заменяют пояснения
- Различные типы комментариев
- Встроенные комментарии
- Поясняющие комментарии
- Обобщающие комментарии
- Юридические комментарии
- Комментарии тега кода

Мы можем писать однострочные или многострочные комментарии на Python. Однострочный комментарий определяется с помощью символа # и заканчивается в конце строки. Python не обязательно имеет специальный синтаксис для многострочных комментариев, поэтому Pythonist может выбирать между использованием нескольких однострочных комментариев, полностью известных как блочные комментарии, или использованием многострочных строк в тройных кавычках.

 # Это однострочный комментарий. # Это пример 
# нескольких однострочных
# комментариев, которые составляют
# многострочный комментарий."""Это пример
многострочных строк с тройными кавычками
, которые составляют
многострочный комментарий. comment."""

Все три сценария допустимы, но вы заметите, что многострочная строка с тройными кавычками намного читабельнее, чем использование нескольких однострочных комментариев для определения многострочного комментария. Таким образом, лучше использовать многострочные строки с тройными кавычками для определения многострочного комментария, если это необходимо — помните, что «программы пишутся для чтения людьми».

Вы можете встретить людей, которые считают комментарии второстепенными или говорят вам, что «комментарии не важны», игнорируйте их. Идите и прочитайте исходный код любой популярной библиотеки, чтобы увидеть их значение. Комментарии, безусловно, необходимы, если вы хотите, чтобы ваш код был 1) более читабельным и 2) более профессиональным.

Однако есть 5 золотых правил, которым нужно следовать, чтобы писать эффективный код.

Правило №1 Комментарии — это полные предложения

Вся цель комментирования кода состоит в том, чтобы его могли прочитать другие программисты [и вы в будущем], чтобы лучше понять, что происходит в коде, который он комментирует. Таким образом, комментарии должны следовать надлежащим грамматическим правилам и включать пунктуацию, чтобы читатель мог получить четкую информацию.

 # данные из каталога поездов  <-- Нехорошо  
data = load_data()# Загрузить данные из каталога поездов. <-- Хорошо
data = load_data()

Правило № 2 Комментарии должны соответствовать ограничениям строк

Руководство по стилю Python, PEP 8, было создано, чтобы служить набором лучших практик для программирования на Python. В одном из рекомендаций предлагается ограничить длину строки 79 символами: это руководство применимо как к исходному коду, так и к комментариям.

 # Этот комментарий настолько длинный, что не помещается даже на одной строке в ячейках кода, предоставленных средой.  <-- Плохо  # Этот комментарий намного короче и в пределах допустимого.  <-- Хорошо  

Программисты все время нарушают предложенный PEP 8 предел строки, и это нормально — в конце концов, это всего лишь руководство. Но ваши комментарии по-прежнему должны соответствовать тому ограничению строк, которое вы согласовали со своей командой [или сами с собой, если вы работаете в одиночку].

Правило №3 Комментарии должны располагаться на том же уровне отступа, что и код, который они комментируют

Отступ означает количество пробелов в начале некоторого кода; Python использует четыре пробела в качестве отступа по умолчанию для группировки кода. Написание комментариев с разными уровнями отступов не приведет к сбою вашей программы, но гораздо проще следить, когда они находятся на одном уровне.

  def  example_function(): 
# Произвести случайное вычисление. <-- Плохо
random = 24 + 4
return random def example_function():
# Выполнить случайный расчет. <-- Хорошо
random = 24 + 4
return random

Правило №4 Ставьте пробел после #

Пробел после # улучшает читабельность.

 #Это допустимо, но не легко читается.  <-- Плохо  
# Это корректно и легко читается. <-- Хорошо

Правило №5 Ссылки не заменяют объяснения

Иногда нам может понадобиться ссылка на внешние страницы, чтобы объяснить, что делает наш код. Просто оставить ссылку на страницу не так эффективно, как написать, почему внедряется код перед ссылкой на внешний ресурс. Причина этого в том, что страницы могут быть удалены, и тогда у вас останется необъяснимая ссылка, которая ведет в никуда.

Примечание : Приведенный ниже пример кода является фрагментом кода Scikit-learn .

  # Плохо  
def _check_input_parameters( self , X, y, groups):

--- snip ---
# см. https://github.com/scikit-learn/scikit - Learn/issues/15149
если нет _yields_constant_splits(self._checked_cv_orig):
поднять ValueError (
"Параметр cv должен давать согласованные сгибы"
"вызывает функцию split(). Установите для параметра random_state значение int или"
" установите shuffle=False."
)
--- snip --- # Хорошо
def
_check_input_parameters( self , X, y, groups):

--- snip --- # Нам нужно обеспечить выполнение последовательных вызовов cv.split () yield
# те же разбиения:
# см. https://github.com/scikit-learn/scikit-learn/issues/15149 если не _yields_constant_splits(self._checked_cv_orig):
поднять ValueError (
"Параметр cv должен давать согласованные свертки для "
"вызовов split(). Установите для его random_state значение int или"
" установите shuffle=False."
)
--- snip ---

Примечание : Хороший пример можно было бы улучшить, используя многострочные строки с тройными кавычками, но в кодовой базе Scikit-learn принято использовать несколько одинарных строчные комментарии, поэтому за ними последовали.

Один из первых аргументов, который вы услышите от разработчиков, которые не так увлечены соблюдением правил, — «вы слишком много думаете об этом». В какой-то степени в них есть смысл: ваша программа не рухнет, если вы решите пойти против каждого правила, представленного выше.

Однако большая часть программирования — это совместная работа. Как бы вы ни стремились стать великим программистом, создающим феноменальные вещи, вы также должны помнить, что большая часть вашей работы будет выполняться в команде [в большинстве случаев]. Таким образом, полезно подумать о том, как вы можете сделать свой код более понятным для других, и одним из аспектов этого является то, как вы пишете свои комментарии.

Чем читабельнее ваши комментарии, тем больше вероятность того, что их прочитают другие разработчики [и вы в будущем]: ваши комментарии полезны только в том случае, если их читают. Чтобы ваши комментарии читались, нужно знать, как их правильно разместить.

Комментарии служат дополнительной формой документации для вашего исходного кода. Таким образом, их общая цель — информировать других [включая себя в будущем] о том, почему некоторая функциональность в коде реализована определенным образом, но есть несколько разных способов развертывания комментариев для достижения этой цели.

Давайте рассмотрим некоторые из этих методов:

Встроенные комментарии

Встроенные комментарии располагаются в конце строки кода. Есть две основные причины использовать встроенный комментарий:

#1 Если переменная была определена, но причина использования конкретного объекта неясна, вы можете использовать встроенный комментарий, чтобы обосновать свое решение.

 AGE = 18 # Возраст, с которого разрешено употребление алкоголя в Великобритании. 

#2 Еще одно полезное использование встроенного комментария — уменьшение двусмысленности за счет предоставления большего контекста тому, что определяется.

 day = 3 # Дни в неделе варьируются от 0 (пн) до 6 (вс) 
height = 1,75 # Высота указана в метрах

Вы также можете увидеть некоторые кодовые базы, которые используют комментарии для указания типа данных переменной.

 """Код взят из моего проекта модели обнаружения мошенничества. /train_pipeline.py"""  from  config.core  import  config # type: ignore 
from pipe import Fraction_detection_pipe # type: ignore
from processing.data_manager 900 22 import load_datasets, save_pipeline # тип: игнорировать
from sklearn.model_selection import train_test_split # type: ignore

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

Чаще всего вам не нужно указывать тип данных, потому что это очевидно из оператора присваивания.

Объясняющие комментарии

Основная цель комментария — объяснить, почему конкретная часть была реализована определенным образом. Как вы знаете, есть несколько способов сделать что-то, поэтому объяснение дает более полное представление о намерениях программиста.

Например, взгляните на этот комментарий:

 число_слов *= 0,2 # Умножить количество слов на 0,2. 

Приведенный выше сценарий — прекрасный пример бессмысленного комментария. Не нужно быть ученым-ракетчиком, чтобы понять, что вы умножаете number_of_words на 0,2 , поэтому нет необходимости указывать это снова в комментарии.

Вот улучшенная версия:

 number_of_words *= 0,2 # Учетная запись для каждого слова стоимостью 0,20 доллара США. 

Этот комментарий позволяет лучше понять намерения программиста: теперь мы знаем, что 0,2 — это цена за слово.

Примечание : Если вы читали 7 запахов кода, о которых вы должны знать и которых следует избегать , вы должны знать, что мы могли бы еще больше улучшить этот код, опустив магическое число, назначив ему константу (т.е. PRICE_PER_WORD = 0,2 ).

Обобщающие комментарии

Иногда у нас нет другого выбора, кроме как использовать несколько строк кода для реализации некоторых функций. Помогать своим коллегам [и себе в будущем], предоставляя им сводку того, что делает ваш код, чрезвычайно полезно, поскольку это позволяет им быстро просмотреть ваш код.

 """Это небольшая часть функциональности, извлеченная из 
кодовой базы Scikit-learn. См.: https://github.com/scikit-learn/scikit-learn/blob/main/sklearn/impute/_knn.py. #L262"""# Удаляет столбцы, в которых все обучающие данные имеют значение nan
если не np.any(mask):
return X[:, valid_mask]row_missing_idx = np. flatnonzero(mask.any(axis=1))non_missing_fix_X = np.logical_not(mask_fit_X)# Карты из индексов из X к индексам в матрице dist
dist_idx_map = np.zeros(X.shape[0], dtype= int ) dist_idx_map[row_missing_idx] = np.arange(row_missing_idx.shape[0])

Сводные комментарии просто кайф -level обзор того, что происходит в коде. Размещение их точками в разных местах вашей кодовой базы позволяет товарищам по команде [и вам в будущем] быстро просмотреть код для лучшего понимания — это также показывает, что вы знаете, как работает код.

Юридические комментарии

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

Вот пример из исходного файла _knn.py Scikit-learn:

 # Авторы: Ашим Бхаттараи  
# Томас Дж. Фан
# Лицензия: пункт BSD 3

Комментарии к тегу кода

Нередко короткие комментарии-напоминания разбросаны по разным исходным файлам. Разработчики делают это, чтобы напомнить себе о вещах, до которых они еще не дошли, но собираются сделать в будущем.

Наиболее часто встречающийся тег — TODO.

 """  Это пример комментария тега кода в базе кода 
Scikit-learn. Полный код можно найти здесь:
https://github.com/scikit-learn/scikit-learn/ blob/main/sklearn/metrics/pairwise.py """ def pairwise_distances_argmin_min(
X, Y, *, axis=1, metric="euclidean", metric_kwargs=None
):
--- отрезать ---
else :
# TODO: один раз PairwiseDistancesArgKmin поддерживает разреженные входные
# матрицы и 32-битные, нам больше не нужно отступать к
#pairwise_distances_chunked. Отключите проверку на
# конечность, потому что это дорого и поскольку массив
# уже проверен.
--- snip ---

Обратите внимание, что приведенный выше пример дает четкое описание того, что должно быть сделано — это обязательно, если вы используете теги кода.0005

Эти комментарии не должны использоваться в качестве замены для некоторых формальных средств отслеживания или отчетов об ошибках, поскольку чрезвычайно легко забыть об их существовании, если вы не читаете раздел, в котором они находятся.

Важно отметить, что все эти соглашения не строго соблюдаются Python. У команд могут быть свои соглашения о комментировании кода, и в таких ситуациях лучше следовать предоставленной структуре. Но всегда помните, что ваш код будет прочитан, поэтому, сделав его как можно более читабельным, вы облегчите этот процесс для любого человека.

Какие комментарии я пропустил? Оставить комментарий.

Спасибо за внимание.

Свяжитесь со мной:
LinkedIn
Twitter
Instagram

Если вам нравится читать подобные истории и вы хотите поддержать меня, рассмотрите возможность стать участником Medium. Взяв 5 долларов в месяц, вы открываете неограниченный доступ к историям на Medium. Если вы воспользуетесь моей ссылкой для регистрации, я получу небольшую комиссию.

Уже зарегистрированы? Подпишитесь, чтобы получать уведомления, когда я опубликую.

Получать электронное письмо всякий раз, когда Куртис Пайкс публикует.

Получать электронное письмо всякий раз, когда Куртис Пайкс публикует. Зарегистрировавшись, вы создадите учетную запись Medium, если у вас ее еще нет…

kurtispykes.medium.com

Написание комментариев на Python (Руководство) — Real Python