2.5. 代码缩进
优质
小牛编辑
123浏览
2023-12-01
2.5. 代码缩进
Python 函数没有明显的 begin 和 end, 没有花括号, 用于标函数的开始和结束。 唯一的分隔符是一个冒号 (:), 接着代码本身是缩进的。
例 2.5. 缩进 buildConnectionString 函数
def buildConnectionString(params): """Build a connection string from a dictionary of parameters. Returns string.""" return ";".join(["%s=%s" % (k, v) for k, v in params.items()])
代码块通过它们的缩进来定义的。我所说的 "代码块" 是指:函数、if 语句、for 循环、while 循环, 等等。开始缩进表示块的开始, 取消缩进表示块的结束。不存在明显的括号, 大括号或关键字。这就意味着空白是重要的, 并且要一致。在这个例子中, 函数代码 (包括 doc string) 缩进了 4 个空格。不一定非要是 4, 只要一致就可以了。没有缩进的第一行则在函数体之外。
例 2.6 “if 语句” 展示了一个 if 语句缩进的例子。
例 2.6. if 语句
def fib(n): print 'n =', n if n > 1: return n * fib(n - 1) else: print 'end of the line' return 1
这是一个名为 fib 的函数, 有一个参数 n。在函数内的所有代码都是缩进的。 | |
在 Python 中向屏幕输出内容非常容易, 只要使用 print 即可。 print 语句可以接受任何数据类型, 包括字符串, 整数和其它如字典和列表 (我们将在下一章学习) 等类型。甚至可以混在一起输出, 通过使用以逗号分隔的值列表把几个东西输出到一行上。每个值都输出到同一行, 通过空格隔开 (逗号并不打印出来) 。所以当用 5 来调用 fib 时, 将输出 "n = 5"。 | |
if 语句是一种类型的代码块。如果 if 表达式计算为 true, 缩进块被执行, 否则进入 else 块执行。 | |
当然 if 和 else 块可以包含许多行, 只要它们都同样缩进。这个 else 块中有两行代码。对于多行代码块没有其它特殊的语法, 只要缩进就行了。 |
在经过一些最初的抗议和几个与 Fortran 的嘲讽的类比之后, 您会心平气和地对待代码缩进, 并且开始看到它的好处。一个主要的好处就是所有的 Python 程序看上去都差不多, 因为缩进是一种语言的要求而不是一种风格。这样就使得阅读和理解他人的 Python 代码容易得多。
Python 使用硬回车来分割语句, 冒号和缩进来分割代码块。C++ 和 Java 使用分号来分割语句, 花括号来分割代码块。 |
进一步阅读
- Python Reference Manual 讨论了交叉缩进问题, 并且 演示了各种各样的缩进错误。
- Python Style Guide 讨论了良好的缩进风格。