基于Python的GIS编程
2021-12-15 22:16:24 0 举报
AI智能生成
基于Python的GIS编程
作者其他创作
大纲/内容
Python基础
注释
类型
单行注释#
多行注释“”“
两句特殊的注释
指定指示器的路径
#!/user/bin/python3.X
指定编码
#-*- coding:utf-8 -*-
python2.x版本解释器默认Ascll编码,不支持中文
作用
进行代码调试,对问题进行排查,对代码进行完善
提高代码可读性,提高开发效率
变量
概念
存储的数据
一段有名字的连续存储的空间
程序中临时存放数据的场所
定义及使用
变量名=数据
先定义才能使用
命名规则
变量名区分大小写
严禁使用关键字作为变量名
由字母、数字、下划线组成,不能以数字开头
基本运算符
算数运算符
+
-
*
**(指数)
%(取余)
/(除)
//(只保留整数)
比较运算符
==(等于)
!=(不等于)
>;(大于)
<;(小于)
>;=(大于等于)
<;=(小于等于)
逻辑运算符
and(两个为真才为真)
or(一个为真即为真)
not(取反,如果x为真,则结果为假)
赋值运算符
=(将=号右边的值赋值给左边的变量)
+=(c+=a等效于c=c+a)
-=(c-=a等效于c=c-a)
*=(c*=a等效于c=c*a)
/=(c/=a等效于c=c/a)
%=(c%=a等效于c=c%a)
**=(c**=a等效于c=c**a)
//=(c//=a等效于c=c//a)
判断语句与循环控制
相关概念
流程
计算机执行代码的顺序
流程控制
对计算机代码执行的顺序进行有效的管理,只有流程控制才能实现在开发当中的业务逻辑
流程控制分类
顺序流程
就是代码自上而下的执行结构,也是Python默认的流程
选择流程/分支流程
根据在某一步的判断,有选择的去执行相应的逻辑的一种结构
判断语句
分类
单分支
if
双分支
if--else
多分支
if--elif--else
适用
适用于对未知的循环次数 用于判断
循环语句
分类
while
for...in
在满足一定条件下,一直重复的去执行某段代码的逻辑【事情】
break/continue语句
breake
结束当前循环并进入下一个循环
continue
结束整个循环不再继续
适用
适用于已知的循环次数【可迭代对象遍历】
函数
函数基础概念
定义
一系列Python语句的组合,可以在程序中运行一次或多次,一般是完成具体的独立的功能
def函数名():代码块
使用原因
代码的复用最大化以及最小化冗余代码,整体代码结构清晰,问题局部化
使用方法
先定义,才能使用
函数参数
概念
实现某项特定的功能,进而为了得到实现功能所需要的数据
分类
必选参数
形式参数
定义的时候是不占内存地址的
def sum(a,b):
实际参数
实际占用内存地址的
sum(20,15)
函数调用
概念
在调用的时候必选参数 是必须要赋值的
默认参数
概念
始终存在于参数列表中的尾部
语法
def sum1(a,b=40,c=90): print(‘默认参数使用=%d’%(a+b))
函数调用
在调用的时候如果未赋值,就会用定义函数时给
定的默认值
定的默认值
可选参数
概念
可变参数(当参数的个数不确定时使用,比较灵活
语法
*args
def getComputer(*args):#可变长的参数 getComputer(1) getComputer(1,2) getComputer(1,2,3)
注意点
接受的数据是一个元组类型
可选参数必须放到关键字可选参数之前
关键字参数
概念
** 来定义, 在函数体内 参数关键字是一个字典类型 key是一个字符串
语法
def keyFunc(**kwargs):
注意点
可选参数必须放到关键字可选参数之前
接受的数据是一个字段类型
函数返回值
概念
函数执行完以后会返回一个对象,如果在函数的内部有return 就可以返
回实际的值,否则返None
回实际的值,否则返None
类型
可以返回任意类型,返回值类型应该取决于return后面的类型
用途
给调用方返回数据
多个返回值
在一个函数体内可以出现多个return值:但是肯
定只能返回一个return
定只能返回一个return
全局及局部变量
局部变量
相关概念
就是在函数内部定义的变量【作用域仅仅局限在
函数的内部】
函数的内部】
不同的函数 可以定义相同的局部变量,但是各自
用各自的 不会产生影响
用各自的 不会产生影响
作用
为了临时的保存数据 需要在函数中定义来进行存储
就是定义在函数内部
def TestMethod():name:‘洛克’ print(name,pro) pass
全局变量
修改全局变量
如果在函数的内部要想对全局变量进行修改的话
对于不可变类型【str 元组 number】必须使用
global 关键字进行声明
对于不可变类型【str 元组 number】必须使用
global 关键字进行声明
利用关键字global进行声明
相关概念
如果一个变量可以在函数内部调用,也可以在函
数外部调用,那么这个变量就称为全局变量
数外部调用,那么这个变量就称为全局变量
全局变量与局部变量重复,局部变量不会影响全局
变量,函数使用局部变量
变量,函数使用局部变量
参数引用
值是靠引用来传递来的,可以用id()查看一个对象的引用是否相
同,id是值保存在内存中那块内存地址的标识
同,id是值保存在内存中那块内存地址的标识
万物皆对象,在函数调用的时候,实参传递的就是
对象的引用
对象的引用
内置(api)函数
概念
安装后就自带有的函数
数学运算函数
abs( )绝对值函数
round( ) 对浮点数进行近似取值,保留几位小数
pow( ) 求指数
divmod( ) 求商和余数
max( ) 最大值
min( ) 最小值
sum( ) 求和
eval( ) 执行字符串表达式
类型转换函数
int()转为整型
float()转换成浮点数
str()转换成浮点数
ord()字符转数字
chr()数字转字符
bool()转为布尔型
bin()转为二进制
hex()转为十六进制
oct()转为八进制
list()元组转换为列表
tuple()列表转换元组
dict()创建字典
bytes()转为字节数组
序列操作
all()
用于判断给定的可迭代参数 iterable 中的所有元
素是否都为 TRUE,如果是返回 True,否则返
回 False元素除了是 0、空、FALSE 外都算
TRUE
素是否都为 TRUE,如果是返回 True,否则返
回 False元素除了是 0、空、FALSE 外都算
TRUE
any()
函数用于判断给定的可迭代参数 iterable 是否全
部为 False,则返回 False,如果有一个为
True,则返回 True(元素除了是 0、空、FALSE
外都算 TRUE)
部为 False,则返回 False,如果有一个为
True,则返回 True(元素除了是 0、空、FALSE
外都算 TRUE)
sorted()
函数对所有可迭代的对象进行排序操作
sorted 可以对所有可迭代的对象进行排序操作,
与sort区别
sort是应用在 list 上的方法
reverse()
用于反向列表中元素
该方法没有返回值,但是会对列表的元素进行反
向排序
向排序
range()
函数可创建一个整数列表,一般用在 for 循环中
range(start, stop[, step]
zip()
函数用于将可迭代的对象作为参数,将对象中对
应的元素打包成一个个元组,然后返回由这些元
组组成的列表
应的元素打包成一个个元组,然后返回由这些元
组组成的列表
enumerate()
将一个可遍历的数据对象(如列表、元组或字符
串)组合为一个索引序列,同时列出数据和数据下
标,一般用在 for 循环当中
串)组合为一个索引序列,同时列出数据和数据下
标,一般用在 for 循环当中
语法
enumerate(sequence, [start=0])
set集合
概念
python中的一种数据类型,是一个无序且不重复
的元素集合
的元素集合
操作函数
add()添加一个元素
clear()清空集合的元素
difference()
两个集合的差集,a中存在,b中不存在
intersection()
两个集合的交集,a中存在,b中也存在的
union()
并集 包含a中的元素,也包含b中的元素
pop()
集合pop随机移除某个元素并且获取那个参数,集
合pop没有参数
合pop没有参数
discard()
移除指定元素
update()
更新集合
GIS学科基础
地图学
测量学
空间分析
GIS原理
计量地理学
ArcGIS基础
ArcMap基础
ArcCatalog基础
ArcToolbox基础
数据类型
基本数据类型
数字(num)
int(有符号整数)
long(长整型)
float(浮点型)
complex(复数)
bool(布尔型)
True
False
查询语法
type()
高级数据类型
序列相关概念
在Python中 序列就是一组按照顺序排列的值(数据集合)
三种内置的序列类型
字符串、列表、元组
优点
可以支持索引和切片的操作
特征
第一个正索引为0,指向的是左端
第一个索引为负数的时候,指向的是右端
切片
可以根据下表来获取序列对象的任意( 部分)数据
语法结构
(start:end:step)step默认1
列表(list)
符号
[ ]
概念
是一种有序的数据集合
特点
支持增删改查
列表中的数据是可变化的(数据项可以变化,内存地址不会改变)
数据项之间用逗号来分割,数据项可以是任何类型的数据
支持索引和切片来进行操作
常用方法
append()
在列表后面追加元素
count()
统计元素出现的次数
extend()
扩展,相当于批量添加
index()
获取指定元素索引号
insert()
在指定位置插入
pop()
删除最后一个元素
remove()
移除左边找到的第一个元素
reverse()
反转列表
sort()
列表序列,reverse=True,倒序
元组(tuple)
符号
( )
概念
是一种不可变的序列,在创建之后不可做任何的修改
特点
不可变
用()创建元组类型,数据项用逗号来分割
可以是任何的类型
当元组中只有一个元素时,要加上逗号,不然后解释器会当作其他类型来处理
支持切片操作
字典(dict)
符号
{ }
概念
字典是有键值对组成的集合,通常使用键来访问数据,效率非常高
和list一样支持对数据的添加、修改、删除
特点
不是序列类型没有下标的概念,是一个无序的键值集合,是内置的高级数据类型
用{ }来表示字典对象,每个键值对用逗号分隔
键必须是不可变的类型【元组、字符串】值可以是任意的类型
每个键必定是唯一的,如果存在重复的键,后者会覆盖前者
字符串(str)
常用方法
capitalize()
首字母变大写
endswith/startswith()
是否x结束/开始
find()
检测x是否在字符串中
isalnum()
判断是否是字母和数字
isalpha()
判断是否是字母
isdigit()
判断是否是数字
islower()
判断是否是小写
join()
循环取出所有值用xx去连接
lower/upper()
大小写转换
swapcase()
大写变小写 ,小写变大写
lstrip/rstrip/strip
移除左/右/两侧空白
split()
切割字符串
title()
把每个单词首字母变大写
replace(old,new,count=None)
old被换字符串,new替换字符串,count换多少个。无count表示全部替换
count()
统计出现的次数
共有方法
合并操作+
两个对象相加操作,会合并两个对象
*复制
对象自身按指定次数进行+操作
in判断元素是否存在
判断指定元素是否存在于对象中
Python输入于输出
输入
input()
输出
%
字符串格式化方法,使用%作占位符,%后面跟着的是变量的类型
name=‘ling’ print(“我的名字%s”%(name))
.format()
name='ling' print(“我的名字{}”.format(name))
f''
name='ling' print(f'我的名字是{name}')
面向对象
相关概念
面向对象编程
面向过程
按照解决问题的步骤去写代码【根据业务逻辑去写代码】
在思考问题的时候,首先分析&apos怎么按照步骤去实现&apos;然后将问题解决拆解成若干个步骤,并将这些步骤对应成方法一步一步的最终完成功能
面向对象
关注的是设计思维
三大特征
封装
继承
多态
类与对象
类
概念
就是一个模板,模板里可以包含多个函数,函数里实现一些功能
组成部分
类的名称
类名
类的属性
一组数据
类的方法
允许对进行操作的方法(行为)
例子
事物名称(类名):人(person)
属性:身高(height)、年龄(age)
方法:吃(eat)、跑(run)
类的抽象
具有相同或类似属性和行为的一系列对象的集合都可以抽象出一个类
类的语法结构
#class 类名: #属性 #方法
对象
根据模板创建的实例,通过实例对象可以执行类中的函数
收藏
0 条评论
下一页