反斜杠本身('\')在Python中意味着什么?

时间:2016-06-30 13:57:32

标签: python

我在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

有人可以解释这个if条件的含义吗?

5 个答案:

答案 0 :(得分:6)

一行末尾的反斜杠告诉Python将当前的逻辑行扩展到下一个物理行。请参阅Python参考文档的Line Structure section

  

2.1.5。显式连接线

     

可以使用两条或更多条物理线连接成逻辑线   反斜杠字符(\),如下所示:当物理行以a结尾时   反斜杠不是字符串文字或注释的一部分,它是   加入以下形成单个逻辑行,删除   反斜杠和下面的行尾字符。例如:

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 Style Guide (PEP 8)(但请注意例外;某些Python语句不支持(...)括号,因此可以接受反斜杠。

请注意,Python不是唯一使用反斜杠进行行继续的编程语言; bash,C和C ++预处理器语法,Falcon,Mathematica和Ruby也使用这种语法扩展行;见Wikipedia

答案 1 :(得分:0)

它用作换行符,因此可以在下一行写入if条件。

答案 2 :(得分:0)

反斜杠用于表示此if条件中的换行符。 PEP8说:

  

反斜杠有时可能仍然合适。例如,long,multiple with -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不应与\一起使用。

答案 3 :(得分:0)

在这种情况下,\将转义以下新行字符。因为Python关心空格,所以这段代码使用它来允许代码在新行上继续。

答案 4 :(得分:0)

为了便于阅读,它逃脱了行尾。 (将行扩展到下一行,因为\ n字符不可见,但它具有语法含义。)