Python的编码规范要求每行的长度不超过80,那就就有一个问题,如果我真的需要在一行写80个字符以上的代码怎么办?
Python语句都可以很简单的实现把一行分为多行,比如下面这两种写法是等价的:
l = [1, 2, 3, 4, 5, 6]
l = [
1, 2, 3,
4, 5, 6
]
Python语句中一行过长的通过这种方法可以很容易地把一行写成多行,但是如果我就是有一个字符串长度就超过80个字符了咋办?
例如我有一个这样的字符串:
s = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras magna turpis, viverra et cursus eget, efficitur sed eros. Curabitur finibus ultricies nisi, nec convallis nunc gravida sed. Nam ac facilisis eros, quis tincidunt turpis. Vestibulum quis mi quis justo faucibus condimentum. Aliquam accumsan ultricies orci id mollis. Mauris faucibus dignissim luctus. Aenean lacus nunc, ultricies ac ante eu, fringilla accumsan nisi. Cras et nunc posuere, mattis mi at, rutrum felis. Etiam volutpat neque sodales condimentum consectetur.'
有人说Python不是有用三个引号包括的字符串吗?这样就可以写成多行了,例如这样:
s = """Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Aliquam bibendum purus at nibh rutrum dapibus.
Aliquam quis sem sagittis, rutrum magna quis, gravida quam.
Sed porta ex nec leo elementum, a efficitur neque ornare.
Ut tristique nunc vitae ultrices molestie.
"""
但是这样写会带来一个问题那就是每一行都会在后面加一个换行符,如果我的字符串只有一行呢?这样做就不太合适了。
我认为比较好的方式有如下几种:
1. 在行末添加转义符
s = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.\
Aliquam bibendum purus at nibh rutrum dapibus.\
Aliquam quis sem sagittis, rutrum magna quis, gravida quam.\
Sed porta ex nec leo elementum, a efficitur neque ornare.\
Ut tristique nunc vitae ultrices molestie."
2. 使用圆括号隐式转换
s = ("Lorem ipsum dolor sit amet, consectetur adipiscing elit."
"Aliquam bibendum purus at nibh rutrum dapibus."
"Aliquam quis sem sagittis, rutrum magna quis, gravida quam."
"Sed porta ex nec leo elementum, a efficitur neque ornare."
"Ut tristique nunc vitae ultrices molestie.")
# 注意:行末没有逗号
个人觉得第一种方式虽然能解决问题但是过于丑陋,推荐使用第二种方法。
作者:sanctz