《Python地理数据处理》——2.2 一个脚本的基本结构

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来命名,它所表示的意义将会很明显。

时间: 2024-09-20 00:17:17

《Python地理数据处理》——2.2 一个脚本的基本结构的相关文章

《Python地理数据处理》——导读

前言本书可以帮助你学习使用地理空间数据的基础知识,主要是使用GDAL / OGR.当然,还有其他选择,但其中一些都是建立在GDAL的基础之上,所以如果你理解了本书中的内容,就可以很轻松地学习其他知识.这不是一本关于地理信息系统或遥感的图书,虽然其中解释了一些相关的背景理论.相反,本书将教你如何编写用于操作和创建空间数据的Python代码以及一些简单的分析案例.你可以使用这些构建块来实现自己设计的.更复杂的分析.前言 [第1章 引言 1.1 为什么使用Python和开源工具](https://yq

Python实现保证只能运行一个脚本实例

  这篇文章主要介绍了Python实现保证只能运行一个脚本实例,本文直接给出实现代码,需要的朋友可以参考下 保证只能运行一个脚本实例,方法是程序运行时监听一个特定端口,如果失败则说明已经有实例在跑. 使用装饰器实现,便于重用 代码如下: import functools def just_one_instance(func): ''' 装饰器 如果已经有实例在跑则退出 复制代码 代码如下: :return: ''' @functools.wraps(func) def f(*args,**kwa

《Python地理数据处理》——1.3 地理数据处理

1.3 地理数据处理 地理数据处理是处理空间数据的总称,不管处理的是栅格数据,还是矢量数据.可以想象一下,地理数据处理的覆盖面相当广泛.我一直认为,使用GIS的地理数据处理工具就像做数据统计一样,几乎可以应用于所有事情中,甚至在日常生活中也会用到地理数据处理,不管你是否意识到这一点.例如,我会根据是开车还是骑自行车来选取不同的出行路线,当我骑自行车上班时,我会选择避开没有护栏的高流量道路.对于有陡峭山坡的路线,开车时我不会顾虑太多,但骑自行车时就会比较关心.像这种基于上班所做的路线选择,不仅考虑

《Python地理数据处理》——第1章 引言1.1 为什么使用Python和开源工具

第1章 引言 本章内容 介绍空间数据的基本类型 什么是地理处理 QGIS软件的使用 人类制作地图的历史远比我们开始写作的时间久远,法国著名的拉斯科岩洞壁画上就有一幅星空图.古时候,世界各地的人们都曾使用过地图,如巴比伦人.希腊人和中国人.制图的艺术在这数千年中也在不断发展演化,从最初将洞壁岩穴作为介质,到后来将泥土沙盘.羊皮纸.纸作为介质,再到现在的电子地图.随着技术的发展和进步,地图上所包含的细节越来越多,每个要素也越来越精确.事实上,因为最早期的地图结构简单,大多数人可能很难将其作为真正意义

《Python地理数据处理》——2.7 类

2.7 类 通读本书时,会遇到有其他数据和附有函数的变量,这些对象创建自类.虽然我们不会在这本书中讲述如何创建你自己的类,但需要知道它们,因为你会用到别人定义好的类.类是一个非常强大的概念,但在本书中你只需要理解它们是可以包含内部数据和函数的数据类型.对象或该类型的变量包含这些数据和函数,而函数在特定对象上运行.你已看到了几种数据类型,例如列表.可以有一个列表类型的变量,而该变量包含了列表类型所有的函数,如append函数.当在列表中调用append函数时,它只将数据追加到特定的列表,而不是其他

《Python地理数据处理》——2.8 小结

2.8 小结 Python解释器对于学习程序是如何运行或尝试编写少量代码很有用,但在脚本中编写多行代码,运行效率会更高.另外,可以保存脚本并在以后使用它们,这是程序设计的一个主要原因. 模块是代码库,可以加载到脚本中使用.如果需要用Python做某事,不管想做什么,在某处可能会有一个内置模块帮你搞定. 习惯在变量中存储数据,因为它会使代码更容易适应后期的变更. Python有几个核心数据类型,针对不同的数据类型和不同的应用场景,所有的这些数据类型都极有用. 可以通过使用控制流语句根据不同的条件改

《Python地理数据处理》——2.6 函数

2.6 函数 如果你发现会重复使用相同的代码,可以创建自己的函数并进行调用,而不是重复编写相同的代码.这使得事情变得更容易,也不容易出错,因为不可能有那么多的地方出现拼写错误.创建一个函数,需要给它一个名称,并告诉用户需要提供什么参数来使用它.让我们创建一个简单的函数来计算一个阶乘. **def factorial(n): answer = 1 for i in range(1, n + 1): answer = answer * i return answer** 这个函数的名字是factor

《Python地理数据处理》——2.3 变量

2.3 变量 除非你的脚本非常简单,否则运行时将需要某种方式来存储信息,这就是变量发挥作用的地方.想一想当你使用软件打开一个文件时发生了什么,不管它是什么样的文件,该软件都会显示一个打开对话框,你需要选择一个文件,然后单击"OK"按钮,随后该文件被打开.当单击"OK"按钮,选定的文件名称将被存储为一个变量,以便该软件知道什么文件被打开.即使你一生中从未编写过任何程序,在数学意义上你也可能会熟悉这个概念.回想一下代数课,其中根据x的值计算y的值,x变量可以是任何值,相

《Python地理数据处理》——2.5 控制流

2.5 控制流 你写的第一个脚本可能会包括一系列按顺序执行的语句,就像我们目前为止看到的所有例子一样.然而,编程的真正力量是根据不同的条件而改变的能力.类似于你可能会根据销售价格来决定在超市里买哪种蔬菜,你的代码应该基于数据类别,比如它是在处理点,还是线,来确定到底需要做什么.控制流是改变这种代码执行顺序的概念. 2.5.1 if语句改变执行顺序最简单的方法是测试一个条件,并根据测试的结果做一些不同的事情.可以用一个if语句实现,下面是一个简单的例子: if n == 1: print('n e