《基于ArcGIS的Python编程秘笈(第2版)》——第1章 面向ArcGIS的Python语言基础
本节书摘来自异步社区《基于ArcGIS的Python编程秘笈(第2版)》一书中的第1章,第1.1节,作者: 【美】Eric Pimpler(派普勒) 更多章节内容可以访问云栖社区“异步社区”公众号查看。
第1章 面向ArcGIS的Python语言基础
同其他编程语言一样,Python也支持多种类型的程序架构。本章主要介绍Python的基本语言架构。首先,介绍如何创建新的Python脚本及编辑已有的脚本;其次,介绍Python语言的特点,如添加注释、创建变量并赋值、创建内置变量等,以使Python的代码更加简单明了。
然后,介绍Python语言提供的各种内置数据类型,如字符串、数字、列表和字典等。类和对象是Python等面向对象编程语言的基本概念,在使用ArcGIS编写地理处理脚本时会经常用到它们,所以本章也介绍了这些复杂的数据类型。
另外,本章还介绍了一些语句的概念,包括条件语句、循环语句和with语句等。使用Python编写ArcGIS地理处理脚本时,常常用with语句打开cursor(游标)来循环遍历代码块。cursor对象来自于ArcPy的数据访问模块,它有插入、搜索和更新3种数据处理的方式。
最后,介绍如何访问Python语言的其他功能模块。
学完本章,读者将会掌握以下内容。
- 在IDLE中创建和编辑Python脚本的方法。
- 在ArcGIS Python窗口中创建和编辑脚本的方法。
- Python的语言特点。
- 注释与数据变量。
- 内置数据类型(字符串、数字、列表和字典等)。
- 复杂数据结构。
- 循环结构。
- 其他Python功能。
1.1 使用IDLE进行Python脚本开发
正如前言提及的,在桌面ArcGIS的安装过程中,会同时安装Python和IDLE。IDLE是编写Python程序代码的集成开发环境,本书中的很多代码都是在IDLE或桌面ArcGIS的Python窗口中编写的。随着编程能力的不断提高,读者可以选择IDLE以外的其他开发环境,如PyScripter、Wingware、Komodo等进行代码的编写,具体选择哪种开发环境依个人喜好而定。
1.1.1 Python Shell窗口
单击“Start | AllPrograms | ArcGIS | Python 2.7 | IDLE”,可以启动Python的IDLE开发环境。需要注意的是,在ArcGIS的安装过程中一同安装的Python版本,取决于ArcGIS的版本。如ArcGIS 10.3使用Python 2.7,而ArcGIS 10.0则使用Python 2.6。
Python Shell窗口如图1-1所示。
Python Shell窗口用来显示输出结果和脚本的错误信息。初学者常常误以为地理处理脚本也写在Shell窗口中,实际上需要创建一个单独的代码窗口来编写脚本,详见本书1.1.2节。
虽然一般不在Shell窗口中编写完整的脚本,但是可以以交互的方式编写代码并获得及时的反馈。ArcGIS提供了一个内置的Python Shell窗口,使用方法与之类似,详见本书1.2节。
1.1.2 Python脚本窗口
在Python Shell窗口中单击“File | New Window”创建一个新的代码窗口,可以在这个独立的窗口中编写脚本。该窗口称为Python脚本窗口,如图1-2所示。
https://yqfile.alicdn.com/c73a58fb28bae66795ca5010513ace99844729b6.png" >
Python的脚本代码通常在这个代码窗口中编写,每个脚本都需要保存到本地或网络驱动器中。默认情况下,脚本保存的文件扩展名是“.py”。
1.1.3 编辑已有的Python脚本
打开已有的Python脚本有两种方式:一是在Python Shell窗口中单击“File | Open”,选择要打开的脚本文件;二是在Windows资源管理器中右击文件,单击“Edit with IDLE”,如图1-3所示。通过这两种方法中的任何一种即可打开一个新的脚本窗口,同时脚本会加载在脚本编辑器中。
https://yqfile.alicdn.com/a0acb66b84fc94081f37c42d96d4b77979c75c97.png" >
在本例中,IDLE加载了ListFeatureClasses.py脚本文件,其对应的Python脚本窗口中的代码如图1-4所示。
脚本窗口打开后,可以在其中写入或编辑代码,还可以在这个窗口中进行基本的脚本调试,调试是一个识别和修正代码错误的过程。
1.1.4 在IDLE中运行脚本
当写好一个地理处理脚本或者打开了一个已有的脚本之后,就可以在Python脚本窗口中执行代码。IDLE提供了语法检查功能,在运行脚本之前,可单击“Run | Check Module”来检查代码的语法错误。
如果有语法错误,一般情况下会跳转到Shell窗口并在Shell窗口中显示错误的详细信息,而有些语法错误不会跳转到Shell窗口,此时会弹出“Syntax error”对话框并在脚本窗口中高亮显示错误的位置,具体会出现哪种情况取决于语法错误的类型。如果没有语法错误,将不做提示。虽然IDLE界面可以检查语法错误,但是无法检查代码的逻辑错误,也没有像其他开发环境(如PyScripter、Wingware等)一样可以提供更高级的调试工具。
如果代码中不存在语法错误,单击“Run | Run Module”运行脚本,如图1-5所示。
运行脚本后,print 语句的输出结果、错误消息和系统消息都会在Python Shell窗口中显示。print语句在Shell窗口中只输出文本,它经常用于更新脚本的运行状态或显示代码的调试信息。
《基于ArcGIS的Python编程秘笈(第2版)》——第1章 面向ArcGIS的Python语言基础相关推荐
- arcgis下的python编程-基于ArcGIS的Python编程秘笈(第2版)
基于ArcGIS的Python编程秘笈(第2版) 译者简介 审阅人简介 1 面向ArcGIS的Python语言基础 1.1 使用IDLE进行Python脚本开发 1.1.1 Python Shell窗 ...
- 基于arcgis的python编程秘笈第2版_基于ArcGIS的Python编程秘笈(第2版)
基于ArcGIS的Python编程秘笈(第2版) 译者简介 审阅人简介 1 面向ArcGIS的Python语言基础 1.1 使用IDLE进行Python脚本开发 1.1.1 Python Shell窗 ...
- 基于arcgis的python编程秘籍_基于ArcGIS的Python编程秘笈 第2版
第1章 面向ArcGIS的Python语言基础1 1.1 使用IDLE进行Python脚本开发 2 1.1.1 Python Shell窗口 2 1.1.2 Python脚本窗口 3 1.1.3 编辑 ...
- 如何系统地自学python100天_Github上发布了一个Python学习秘笈,从萌新到王者的100天Python学习之旅...
北京千锋互联科技有限公司成都分公司骆昊(jackfrued)在Github上发布了一个Python学习秘笈,从萌新到王者的100天Python学习之旅. 简单的说,Python是一个"优雅& ...
- 基于ArcGIS的Python编程秘笈笔记(三):自动化地图制图和打印
引言 本篇博客介绍如何使用arcpy.mapping模块来实现多个与地图生产和打印有关的地理处理任务. ArcGIS10推出的arcpy.mapping模块提供了许多与自动化地图生产相关的功能. ar ...
- python起步输入-《Python编程:从入门到实践》第一章:起步
Python编程:从入门到实践 这篇文章主要知识点是关于Python编程,从入门到实践,起步,Python编程:从入门到实践,的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书 搭建编 ...
- 《基于嵌入式实时操作系统的编程技术》笔记清单:第六章行为同步
<基于嵌入式实时操作系统的编程技术>笔记清单:第三章任务划分. <基于嵌入式实时操作系统的编程技术>笔记清单:第四章任务设计. <基于嵌入式实时操作系统的编程技术> ...
- Python编程:从入门到实践第六章读书笔记6.3遍历字典
Python编程:从入门到实践第六章读书笔记6.3遍历字典 #coding:gbk#6.3.1遍历所有的键-值对 user_0 = {'username': 'efermi','first': 'en ...
- 《Python编程:从入门到实践》第二章练习题
<Python编程:从入门到实践>第二章练习题 <Python编程:从入门到实践>第二章练习题 1-1 简单消息 2-2 多条简单消息 2-3 个性化消息 2-4 调整名字的大 ...
最新文章
- 【PHPWord】图片
- fastjson 对象和json互转
- 单选选择才可以提交_第二篇:DJANGO开发产品选择表amp;调查问卷
- android输入法源码分析,基于Android的输入法的设计与实现.doc
- 深度学习:识别图片中的电话号码(2)
- 前端学习(3350):数组方法的运用和数值join
- 【源码】2012年斗地主算法大全
- SentOS 7防火墙配置与端口增删改查的命令
- Sharding-JDBC读写分离_MySql主从配置(2)_Sharding-Sphere,Sharding-JDBC分布式_分库分表工作笔记016
- flex 布局,flex-grow 宽度未等比放大问题解决办法
- cut out数据增强_被多种离散化场景困扰?8种python技巧!让数据处理更简单
- docker 启动镜像_Docker学以致用,开源项目和云服务,是最好的学习资源
- 使用 Microsoft Teams 开会到底有多少途径——参会
- 一种实用的BOOST电路_UC3842升压设计
- 【论文翻译】Multi-modal Knowledge Graphs for Recommender Systems
- 联合舰队的覆灭(7)
- 安邦金融:99%的人都不知道,原来保险还可以这样配置
- js逆向案例-obsfuscator混淆
- Install Qualcomm Development Environment
- 浏览器默认打开桔导航
热门文章
- 激活MyEclipse 6.5方法-通过一段Java程序生成激活码
- 惠普OMEN游戏本驱动曝内核级漏洞,影响数百万Windows 计算机
- 这个严重的无补丁 UPnP 漏洞影响几乎所有的IoT设备:绕过安全系统、扫描LANs
- 苹果发布2019年上半年透明度报告,收到数万条政府请求
- [仁润云技术团队]并发编程-(1)基本概念
- pycharm如何设置python版本、设置国内pip镜像、添加第三方类库
- 英国Just Eat自动驾驶机器人的外卖系统上线
- ubuntu两个conda安装和切换
- Struts2标签库整理【完整】
- 乔春洋:品牌文化的意义