python系列教程144——跨行代码

Posted 人工智能AI技术

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python系列教程144——跨行代码相关的知识,希望对你有一定的参考价值。

朋友们,如需转载请标明出处:https://blog.csdn.net/jiangjunshow

声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于这套python教程不是由我所写,所以不如我的AI技术教学风趣幽默,学起来比较枯燥;但它的知识点还是讲到位的了,也值得阅读!想要学习AI技术的同学可以点击跳转到我的教学网站。PS:看不懂本篇文章的同学请先看前面的文章,循序渐进每天学一点就不会觉得难了!

Python的语句一般都是在行末尾结束的。不过,当语句太长、难以单放在一行时,有些特殊的规则可用于使其位于多行之中。

•如果使用括号对,语句就可横跨数行。如果在封闭的()、或[]这类配对中编写代码,Python就可让你在下一行继续输入语句。

•如果语句以反斜线\\结尾,也可横跨数行。这种方法几乎都已经不再使用了。因为很容易导致错误:偶尔忘掉一个\\通常会产生语法错误,并且可能导致下一行默默地被错误地看做一条新语句,这会产生不可预期的结果。

•三重引号字符串块也可以横跨数行。

以下是使用括号配对规则让行保持连续的例子。你可以把内容放在任意数目的行中:

L = ["Good",

"Bad",

"Ugly"] # Open pairs may span lines

如果你喜欢使用反斜线来使这一行继续也是可以的,但是这在实际的Python中并不是很常见。

if a == b and c == d and \\

   d == e and f == g:

   print('olde')             # Backslashes allow continuations...

因为任何表达式都可以包含在括号内,如果程序代码需要横跨数行,你可以直接把语句包含在圆括号中:

if (a == b and c == d and

    d == e and e == f):

    print('new')     # But parentheses usually do too

反斜线则不太好用,因为它们太容易被漏掉了。在下面的例子中,x通过反斜杠赋值为10,这是本来的意图;如果偶然漏掉了反斜杠,那么,x赋值为6,并且不会报告错误(+4本身是一个有效的表达式语句)。在复杂赋值的实际程序中,这可能会引发一个非常令人讨厌的bug:

x = 1 + 2 + 3 \\           # Omitting the \\ makes this very different

+4

另一种特殊情况是,Python允许在相同行上编写一个以上的非复合语句(语句内未嵌套其他语句),由分号隔开。有些程序员使用这种形式来节省程序文件的量,但是,如果你坚持一个语句一行,会使程序更具可读性:

x = 1; y = 2; print(x) # More than one simple statement

最后,Python可把复合语句的主体上移到首行,只要该主体是简单(非复合)语句。简单if语句及单个测试和动作常常用到这种用法:

if 1: print('hello') # Simple statement on header line

但是不建议这么做。因为让每条语句都在其自身的行上会让代码的可读性更好。

以上是关于python系列教程144——跨行代码的主要内容,如果未能解决你的问题,请参考以下文章

Python入门教程第79篇 反斜线字符

python系列教程175——def语句

python系列教程183——global语句

python系列教程138——增强赋值语句

python系列教程138——增强赋值语句

python系列教程183——global语句