python中换行符怎么写_语法 - 如何在Python中执行换行符(换行符)?

语法 - 如何在Python中执行换行符(换行符)?

我有一长串代码,我希望在多行之间分解。 我使用什么,语法是什么?

例如,添加一串字符串,

e = 'a' + 'b' + 'c' + 'd'

并将它分成两行:

e = 'a' + 'b' +

'c' + 'd'

7个解决方案

960 votes

什么是线? 你可以在下一行有参数而没有任何问题:

a = dostuff(blahblah1, blahblah2, blahblah3, blahblah4, blahblah5,

blahblah6, blahblah7)

否则你可以这样做:

if a == True and \

b == False

查看样式指南以获取更多信息。

从您的示例行:

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

'4' + '5'

要么:

a = ('1' + '2' + '3' +

'4' + '5')

请注意,样式指南表示使用括号的隐式延续是首选,但在这种特殊情况下,只是在表达式周围添加括号可能是错误的方法。

Harley Holcombe answered 2018-12-23T13:31:08Z

184 votes

从Python代码的样式指南:

包装长行的首选方法是在括号,括号和括号内使用Python隐含的行继续。 通过在括号中包装表达式,可以在多行上分割长行。 这些应该优先使用反斜杠来继续行。

反斜杠有时可能仍然合适。 例如,long,多个with语句不能使用隐式延续,因此可以接受反斜杠:

# Yes: easy to match operators with operands

income = (gross_wages

+ taxable_interest

+ (dividends - qualified_dividends)

- ira_deduction

- student_loan_interest)

另一个这样的情况是使用断言语句。

确保适当地缩进续行。 打破二元运算符的首选位置是运算符之后,而不是它之前。 一些例子:

# Yes: easy to match operators with operands

income = (gross_wages

+ taxable_interest

+ (dividends - qualified_dividends)

- ira_deduction

- student_loan_interest)

编辑:PEP8现在推荐数学家及其出版商使用的相反惯例(用于打破二进制操作)以提高可读性。

Donald Knuth在二元运算符之前的破坏风格垂直对齐运算符,从而在确定添加和减去哪些项目时减少了眼睛的工作量。

从PEP8开始:如果在二元运算符之前或之后换行?:

Donald Knuth在他的计算机和排版系列中解释了传统规则:“虽然段落中的公式总是在二元运算和关系之后中断,但显示的公式总是在二元运算之前中断”[3]。

遵循数学传统通常会产生更易读的代码:

# Yes: easy to match operators with operands

income = (gross_wages

+ taxable_interest

+ (dividends - qualified_dividends)

- ira_deduction

- student_loan_interest)

在Python代码中,只要约定在本地一致,就允许在二元运算符之前或之后中断。 对于新代码,建议使用Knuth的样式。

[3]:Donald Knuth的The TeXBook,第195和196页

jfs answered 2018-12-23T13:32:32Z

61 votes

使用反斜杠结束一行的危险在于,如果在反斜杠之后添加空格(当然,很难看到),则反斜杠不再按照您的想法进行操作。

有关更多信息,请参阅Python Idioms和Anti-Idioms(适用于Python 2或Python 3)。

George V. Reilly answered 2018-12-23T13:32:57Z

21 votes

您可以在括号和大括号之间划分线条。 此外,您可以将反斜杠字符\附加到一行以显式断开它:

x = (tuples_first_value,

second_value)

y = 1 + \

2

Konrad Rudolph answered 2018-12-23T13:33:17Z

20 votes

将\放在行尾或将该语句括在parens ( .. )中。来自IBM:

b = ((i1 < 20) and

(i2 < 30) and

(i3 < 40))

要么

b = (i1 < 20) and \

(i2 < 30) and \

(i3 < 40)

SCdF answered 2018-12-23T13:33:41Z

17 votes

从马的口:明确的线  加盟

可以是两条或更多条物理线   加入逻辑行使用   反斜杠字符(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),如下:   当物理线路以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

以反斜杠结尾的行不能   发表评论。 反斜杠不会   继续发表评论。 反斜杠确实如此   除了字符串,不要继续使用令牌   文字(即除了之外的标记)   字符串文字不能拆分   物理线路使用反斜杠)。 一个   反斜杠在其他地方是非法的   在字符串文字之外的行。

Jason Navarrete answered 2018-12-23T13:34:15Z

-1 votes

可能不是pythonic方式,但我通常使用带有join函数的list来编写像SQL查询这样的长字符串。

query = " ".join([

'SELECT * FROM "TableName"',

'WHERE "SomeColumn1"=VALUE',

'ORDER BY "SomeColumn2"',

'LIMIT 5;'

])

Hardik Sondagar answered 2018-12-23T13:34:36Z

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值