2.2 一个脚本的基本结构
在绝大多数Python脚本的顶端,你第一眼看到的是导入语句。这些代码意味着加载外部模块,以便脚本使用。一个模块是一个基本的代码库,你可以在脚本中访问和使用,并且大型的专业模块生态系统是Python的另一个优势。如果没有外部模块支持,在Python中处理GIS数据会很困难,其中道理类似GIMP和Photoshop等工具便于处理数字图像。本书的目的是教你如何使用这些工具处理GIS数据,在这个过程中,你也将利用一些Python自带的模块。对于处理文件系统这种任务而言,这些模块是不可或缺的。
下面来看一个使用内置模块的简单例子。运用模块,需要做的第一件事是使用import语句加载它,然后可以通过模块名的前缀访问模块对象,便于Python知道在哪里可以找到它们。这个示例加载随机模块,然后利用包含在模块中的高斯函数从标准正态分布中得到一个随机数。
>>> import random
>>> random.gauss(0, 1)
-0.22186423850882403
你可能会在Python脚本中发现没有分号和花括号,而这在其他语言中常用于结束一行代码和一个代码块。Python则是使用空格来做这些事情。Python不是使用分号换行,而是按回车键换行。然而,有时一行代码太长无法用文件中的一行完全显示,这种情况下需要在合理的地方打断,例如在逗号后面,Python解释器就会知道这些代码属于同一行。Python使用缩进定义代码块,从而代替花括号。如果你习惯于使用花括号或end语句,最初会感觉很不习惯,但缩进也很有效并迫使你编写可读性更强的代码。因此,你需要注意缩进的使用。事实上,因为随意缩进而遇到语法错误,对于初学者来说很常见。例如,在一行代码开头,即使一个多余的空格,都将导致一个错误。你会在2.5节中看到如何使用缩进的例子。Python是要区分大小写的语言,这意味着大写字母和小写字母是不同的。例如,random.Gauss(0,1)在最后一个例子中无法使用,因为gauss全部需要小写。如果你得到某未定义错误信息(即Python不知它是什么),但你又确信它存在,那就需要检查拼写和大小写错误。给代码添加注释可以帮助记住它做了什么或为什么以特定的方式做。我可以保证现在你所编写的思路清晰的代码,6个月后再看也并不那么简单。Python脚本运行时会忽略注释,但对于真正看代码的人来说。注释是非常宝贵的,不管是自己,还是别人试图理解你的代码,注释都是非常必要的参考。要创建注释,需要在文本前缀附上哈希符号#:
# This is a comment
除了注释,描述性的变量名也可提高代码的可读性。例如,如果命名变量m,需要从头到尾地阅读代码来寻找这个变量中存储的是什么。相反,如果用mean_value来命名,它所表示的意义将会很明显。