所以有两个问题。我在Sublime Text 3中有这段代码,我使用Anaconda包(相关的空格将显示为•
,因为它显示在ST3中; Python.sublime-settings显示在这篇文章的末尾) :
elif choice == "taunt bear" and not bear_moved:
••••••••print("The•bear•has•moved•from•the•door.•You•can•go•through•it•now"
)
bear_moved = True
第一个问题:
我启用了Word Wrap并且标尺设置为80,因此它自动包装代码,在行上有正好79个字符" print ..."下一行有1个字符。但是linter给了我一个错误" [W] PEP8(E501):行太长(80> 79个字符)"。我有正确的括号在下一行自动缩进,因此每行没有违反" 79个字符"规则。这可能是什么问题?这条线应该总是小于80个字符,即使它跨越多行吗?
第二个问题:
elif choice == "taunt bear" and not bear_moved:
••••••••print("""The•bear•has•moved•from•the•door.
•••••••••••••••••You•can•go•through•it•now""")
bear_moved = True
在这里,我想摆脱"> 79个字符"错误并创建一个多行字符串。问题是,当我将字符串中的两个句子分成两行以便能够根据PEP8规则对齐它们时,我必须缩进它们,并且缩进意味着字符串中有过多的空格,这不是我想要的。这是理想情况下它应该如何工作,在第一个句子结束后立即使用所需的空格字符,并且没有用于缩进字符串后半部分的空格:
elif choice == "taunt bear" and not bear_moved:
••••••••print("""The•bear•has•moved•from•the•door.•
You•can•go•through•it•now""")
bear_moved = True
Python.sublime设置:
{
// editor options
"draw_white_space": "all",
// tabs and whitespace
"auto_indent": true,
"rulers": [80],
"smart_indent": true,
"tab_size": 4,
"trim_automatic_white_space": true,
"use_tab_stops": false,
"word_wrap": true,
"wrap_width": 80
}
答案 0 :(得分:4)
您可以使用Python字符串连接机制,并将字符串写入单引号中,如示例中所示:
elif choice == "taunt bear" and not bear_moved:
••••••••print("The•bear•has•moved•from•the•door.•"
"You•can•go•through•it•now")
bear_moved = True
因此,您的代码符合PEP8,字符串采用所需的格式。