Что означает обратная косая черта ('\') в Python? [Дубликат]

На этот вопрос уже есть ответ здесь:

Какова цель обратной косой черты в конце строки? 1 ответ

Я нашел этот код в документации NLTK (http://www.nltk.org/_modules/nltk/sentiment/vader.html)

if (i < len(words_and_emoticons) - 1 and item.lower() == "kind" and \
            words_and_emoticons[i+1].lower() == "of") or \
            item.lower() in BOOSTER_DICT:
            sentiments.append(valence)
            continue

Может кто-нибудь объяснить, что означает это условие?

Ответы на вопрос(5)

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

Он используется как разрыв строки, поэтомуif условие можно записать в следующей строке.

Обратная косая черта используется, чтобы указать разрыв строки в этомif состояние.PEP8 говорит:

Обратные слеши могут все еще быть подходящими время от времени. Например, long, множественное с -statements не может использовать неявное продолжение, поэтому обратные слеши допустимы:

with open('/path/to/some/file/you/want/to/read') as file_1, \
     open('/path/to/some/file/being/written', 'w') as file_2:
    file_2.write(file_1.read())

Помимо этих условий разрывы строк обычно обозначаются соответствующими отступами.

Редактировать:

Видимоwith оператор - исключение, которое не допускает разрывы строк только с помощью отступа и поэтому использует обратную косую черту, в то время какif не должен использоваться с\.

 Martijn Pieters30 июн. 2016 г., 16:01
Тем не менее, это используется вif заявление, где выМожно использовать неявное продолжение, поставив(...) круглые скобки вокруг тестов.
 Ian30 июн. 2016 г., 16:02
Именно тыМожно ;) Но я думаю, что то же самое относится и кif а такжеforдаже если вы этого не сделаетедолжен использовать обратную косую черту.
 Martijn Pieters30 июн. 2016 г., 16:05
PEP8 явно недоволен\ когда неявное продолжение доступно;with утверждение здесь является исключением. Я бы хотел, чтобыдокументация о явно продолжающихся строках, а не о PEP 8.
 Ian30 июн. 2016 г., 16:07
Ах, хорошо, тогда я полностью истолковал это. Спасибо!

Обратная косая черта в конце строки говорит Python о необходимости расширения текущегологический линия через к следующемуфизическое линия. УвидетьЛиния Структура раздел справочной документации по Python:

2.1.5. Явное соединение строк

Две или более физических строки могут быть объединены в логические строки с помощью символов обратной косой черты (\), следующим образом: когда физическая строка заканчивается обратной косой чертой, которая не является частью строкового литерала или комментария, она соединяется со следующим, образуя одну логическую строку, удаляя обратную косую черту и следующий символ конца строки. Например:

if 1900 < year < 2100 and 1 <= month <= 12 \
   and 1 <= day <= 31 and 0 <= hour < 24 \
   and 0 <= minute < 60 and 0 <= second < 60:   # Looks like a valid date
        return 1

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

if ((i < len(words_and_emoticons) - 1 and item.lower() == "kind" and
        words_and_emoticons[i+1].lower() == "of") or
        item.lower() in BOOSTER_DICT):
    sentiments.append(valence)
    continue

УвидетьРуководство по стилю Python (PEP 8) (но обратите внимание на исключение; некоторые операторы Python не поддерживают(...) Заключение в скобки, так что обратные слеши допустимы там).

Обратите внимание, что Python не единственный язык программирования, использующий обратную косую черту для продолжения строки; синтаксис препроцессора bash, C и C ++, Falcon, Mathematica и Ruby также используют этот синтаксис для расширения строк; увидетьВикипедия.

 Aya30 июн. 2016 г., 16:15
Также стоит упомянуть, что это не специфично для Python. ОтWPЗа пределами строк единственным распространенным использованием языков является конец строки, указывающий на то, что завершающий символ новой строки следует игнорировать, чтобы следующая строка рассматривалась как часть текущей строки. В этом контексте это можно назвать «продолжением».
 Martijn Pieters30 июн. 2016 г., 16:24
@Aya: я нашел лучшую ссылку на WP.

Он выходит за пределы строки - для удобства чтения. (расширяет строку до следующей, поскольку символ \ n не виден, но имеет синтаксическое значение.)

 Shamis30 июн. 2016 г., 16:01
крысы, слишком медленные :-(

Ваш ответ на вопрос