在Python中,是否有可能将一行长的代码分成多行?

40 浏览
0 Comments

在Python中,是否有可能将一行长的代码分成多行?

和C语言一样,你可以将一行长代码分成多行短代码。但是在Python中,如果我这样做,会出现缩进错误… 这可行吗?

0
0 Comments

在Python中,如果想要将一个长字符串赋值给变量,可以按照以下方式操作:

net_weights_pathname = (
    '/home/acgtyrant/BigDatas/'
    'model_configs/lenet_iter_10000.caffemodel')

不要添加逗号,否则你将得到一个包含多个字符串的元组!这个方法之所以可行,是因为Python会自动将括号内的字符串连接起来,而不需要使用+运算符。

如果要进行字符串插值操作,可以在每个短字符串前面加上f,例如uri = (f"example.com/version8.2/apps/{self.market}" f"/app/{self.product_name}/ranks?start_date={self.week_ago_str}&end_date={self.today_str}")

如果把所有的字符串放在一个多行字符串中,即三个引号之间,例如("""line 1 line2"""),也能很好地工作,并且可能不会带来"逗号风险" 🙂

0
0 Comments

在Python中,有多种方法可以将一行长代码分为多行。首先是使用反斜杠\来实现行继续,比如:

>>> def print_something():
         print 'This is a really long line,', \
               'but we can make it across multiple lines.'

这种方式可以将一行代码拆分成多行,通过反斜杠来连接每一行。

其次是使用括号来实现行继续,例如:

>>> def print_something():
        print ('Wow, this also works?',
               'I never knew!')

这种方式可以将多个括号内的内容作为一行代码,实现行继续的效果。

另外,也可以再次使用反斜杠来实现行继续,例如:

>>> x = 10
>>> if x == 10 or x > 0 or \
       x < 100:
       print 'True'

这种方式可以将一行代码分成多行,通过反斜杠连接每一行。

根据PEP8的建议,最好的方式是在括号、方括号和花括号内使用Python的隐式行继续。如果有必要,可以在表达式周围添加额外的括号,但有时使用反斜杠看起来更好。请确保适当地缩进继续的行。在二元运算符周围断开的首选位置是在运算符之后,而不是之前。

这个问题是在PyOhio的一次代码风格讨论中提出的,我们得出结论,使用括号是一个很好的标准方式。虽然它不是完美的,因为修改文本不是很容易,但至少读起来还不错。

还有一个问题是关于在代码中使用三引号'''来实现多行,这是否是一个好习惯。另外,第二个方法在Python 2.7中打印出一个元组,而第一个方法在IDLE(v.3.5)中会报语法错误,为什么?如果我不以括号开头,会得到缺少括号的错误。使用括号后没有任何错误。

最后一句提到在运算符之后断开,这与PEP8中建议的在运算符之前断开的方式相对立。

不清楚PEP8是否有所更改,但你引用的内容并不存在,而且与PEP8的建议正好相反。对于新代码,PEP8建议在运算符之前进行换行。

0
0 Comments

在Python中,有时候需要将一行较长的代码拆分成多行以提高可读性。根据PEP 8中的建议,可以使用括号、方括号和大括号来实现隐式的行续。如果有必要,可以在表达式周围添加额外的括号,但有时使用反斜杠会更好看。在续行时要注意正确缩进。

例如,可以使用隐式行续来拆分一行较长的代码:

a = some_function(
    '1' + '2' + '3' - '4')

关于二元运算符周围的换行,PEP 8中指出:

几十年来,推荐的编码风格是在二元运算符之后换行。但这样做会影响可读性:运算符在屏幕上会分散在不同的列上,而且每个运算符都会跳到前一行的位置。

在Python代码中,允许在二元运算符之前或之后换行,只要在局部保持一致即可。建议在新代码中采用Knuth的风格(在运算符之前换行)。

例如,可以使用显式行续来拆分一行较长的代码:

a = '1'   \
    + '2' \
    + '3' \
    - '4'

对于第二个例子,不能在`\`后面加空格(虽然你看不见)。这个问题不仅仅发生在Python中;例如,在编写Shell脚本时,比如用于创建目录的`for`循环:

for i in dir1\ 
dir2\ 
dir3\ 
... mkdir $i

为了使这个脚本运行,`\`后面不能有空格。实际上,除了换行符之外,不允许有任何字符(包括注释)出现在`\`后面。

0