我正在用JSON格式编写一些数据文件,并希望将一些非常长的字符串值分成多行.使用python的JSON模块我得到了很多错误,无论是使用\还是\n作为转义.
是否可以在JSON中使用多行字符串?这主要是为了视觉上的舒适,所以我想我可以在我的编辑器中翻开自动换行,但我只是有点好奇......
就像C一样,你可以将一条长线分成多条短线.但是在Python中,如果我这样做,会出现缩进错误......是否可能?
如何在不牺牲缩进的情况下在Python中包装长行?
例如:
def fun():
print '{0} Here is a really long sentence with {1}'.format(3, 5)
Run Code Online (Sandbox Code Playgroud)
假设这超过了79个字符的建议限制.我读它的方式,这里是如何缩进它:
def fun():
print '{0} Here is a really long \
sentence with {1}'.format(3, 5)
Run Code Online (Sandbox Code Playgroud)
但是,使用这种方法,连续行的缩进与缩进相匹配fun().这看起来有点难看.如果有人要查看我的代码,那么由于这个print陈述而导致缩进不均匀会很糟糕.
如何在不牺牲代码可读性的情况下有效地缩进这样的行?
由于PEP8建议保持低于你的python程序的80列规则,我怎么能遵守长字符串,即
s = "this is my really, really, really, really, really, really, really long string that I'd like to shorten."
Run Code Online (Sandbox Code Playgroud)
我将如何将其扩展到以下行,即
s = "this is my really, really, really, really, really, really" +
"really long string that I'd like to shorten."
Run Code Online (Sandbox Code Playgroud) 你会如何格式化这样的长行?我希望它的宽度不超过80个字符:
logger.info("Skipping {0} because its thumbnail was already in our system as {1}.".format(line[indexes['url']], video.title))
Run Code Online (Sandbox Code Playgroud)
这是我最好的选择吗?
url = "Skipping {0} because its thumbnail was already in our system as {1}."
logger.info(url.format(line[indexes['url']], video.title))
Run Code Online (Sandbox Code Playgroud) 我有一行以下代码(不要责怪命名约定,它们不是我的):
subkeyword = Session.query(
Subkeyword.subkeyword_id, Subkeyword.subkeyword_word
).filter_by(
subkeyword_company_id=self.e_company_id
).filter_by(
subkeyword_word=subkeyword_word
).filter_by(
subkeyword_active=True
).one()
Run Code Online (Sandbox Code Playgroud)
我不喜欢它的样子(不要太可读),但我没有任何更好的主意来限制这种情况下,行79个字符.是否有更好的方法来打破它(最好没有反斜杠)?
这里有四个简单的assert调用:
>>> assert 1==2
Traceback (most recent call last):
File "<stdin>", line 1, in ?
AssertionError
>>> assert 1==2, "hi"
Traceback (most recent call last):
File "<stdin>", line 1, in ?
AssertionError: hi
>>> assert(1==2)
Traceback (most recent call last):
File "<stdin>", line 1, in ?
AssertionError
>>> assert(1==2, "hi")
Run Code Online (Sandbox Code Playgroud)
请注意,最后一个不会引发错误.调用带或不带括号的断言会导致这种行为有什么区别?我的做法是使用括号,但上面的建议我不应该这样做.
Python和JavaScript都允许开发人员使用或省略分号.但是,我经常看到它建议(在书籍和博客中)我不应该在Python中使用分号,而我应该总是在JavaScript中使用它们.
语言如何使用分号或者这只是文化差异是否存在技术差异?
我有一些字符串要连接,结果字符串将很长.我也有一些变量要连接.
如何组合字符串和变量,以便结果是多行字符串?
以下代码抛出错误.
str = "This is a line" +
str1 +
"This is line 2" +
str2 +
"This is line 3" ;
Run Code Online (Sandbox Code Playgroud)
我也尝试过这个
str = "This is a line" \
str1 \
"This is line 2" \
str2 \
"This is line 3" ;
Run Code Online (Sandbox Code Playgroud)
请建议一种方法来做到这一点.
有时,Python中包含三元运算符的行会变得太长:
answer = 'Ten for that? You must be mad!' if does_not_haggle(brian) else "It's worth ten if it's worth a shekel."
Run Code Online (Sandbox Code Playgroud)
是否有推荐的方法使用三元运算符将换行符设置为79个字符?我没有在PEP 8中找到它.
python ×9
string ×4
pep8 ×2
syntax ×2
assert ×1
coding-style ×1
formatting ×1
javascript ×1
json ×1
line-breaks ×1
multiline ×1
parentheses ×1