[初学入门]ArcGIS中Python脚本学习

[初学入门]ArcGIS中Python脚本学习
[初学入门]ArcGIS中Python脚本学习

[初学入门]ArcGIS中Python脚本的使用

By:飞天小猪

目录

写在前面的话 (2)

前言 (2)

一、PYTHON语言基础 (3)

1数学运算符 (3)

2字符串操作 (4)

3模块的使用(M ODULES) (5)

4使用DEF构建函数 (6)

5流程控制结构:I F,W HILE,F OR (7)

6简单输入和输出 (9)

二、ARCGIS&PYTHON (10)

1如何创建地理处理对象(GEOPROCESSOR OBJECT) (10)

2获取地理处理帮助 (11)

2.1举例:如何使用Geoprocessor Programming Model中的Lists (11)

3使用地理处理工具——T OOLBOXES和A LIASES (12)

4在建模中使用脚本(S CRIPTS IN M ODEL B UILDER) (13)

5在P YTHON W IN里调试地理处理脚本 (19)

5.1 调试选择和消息 (20)

5.2PythonWin的调试工具 (21)

5.3地理处理工具举例 (22)

6使用描述(D ESCRIBE)和存在(E XISTS)获取数据信息 (22)

6.1描述 (23)

6.2存在(Exists) (24)

6.3在循环中使用描述和存在 (24)

7在P YTHON脚本中使用地图代数(M AP A LGEBRA) (27)

8数据管理和指针(D ATA M ANAGEMENT AND C URSORS) (28)

8.1数据管理(Data Management) (28)

8.2指针(Cursors) (29)

附录1:地理处理脚本中输入&输出方法指南 (32)

附录2:其他 (33)

写在前面的话

一直想学习ArcGIS中的Python脚本,大四下半学期终于有了时间,可是想找到这么一本好的教材不容易。茫茫互联网,终于找到了旧金山州立大学Jerry Davis教授的个人主页,对其中《Geoprocessing Scripts With Python》如获至宝,独乐乐不如众乐乐,现在将其教程翻译并结合自己的学习情况给出总结。希望能够给更多想学习Python的同学一个参考。

另外,在我刚开始接触Python时,是看了台湾辅仁大学一位老师的视频课件,在此致谢。

我想从两个大部分总结:一、Python语言基础;二、ArcGIS&Python。其中第一部分参考了《Python精要参考(第二版)》、《Python编程金典(读书笔记)》等书籍文献。对于多数读者来说,可能或多或少有一些编程基础,所以理解起来应该不成问题。

文中多数数据来自Jerry Davis教授的主页,放在“C:\prog”目录下,为了直观,我将运算结果一并编辑,方便参考。

值得一提的是ArcGIS的在线帮助文档,一个实时更新的GIS宝库,很多专业性知识都可以找到答案,点击链接ArcGIS10中文帮助、ArcGIS9.3.1或9.3英文帮助。获取更过脚本例子来学习:ESRI的地理处理模型和脚本工具库是个不错的选择。

由于我也是初次接触,翻译或者心得难免有纰漏之处,希望同仁们可以多多交流!

前言

在GIS建模或GIS数据管理中,你可能经常需要处理一系列步骤才可以完成的工作;你可能有一个工作目录下的数据需要重投影、裁剪到研究区域,或者用某种方法组合成期望的结果;我们也经常需要根据不同情形用不同方法处理数据,因此我们需要作出选择,而高质量的决策需要考虑很多低水平的决策,这可以通过脚本程序模型辅助完成。

脚本编程的主要目的是使枯燥的处理数据工作自动化,通过逻辑来指挥处理过程。我想自动化和逻辑是关键,它们区别于我们多数使用计算机时的交互活动。我们发E-mail,写文章或者设计地图,都需要和计算机交互,而处理一系列数据,我们需要自动化和利用逻辑来指导自动化。

在地理处理脚本逻辑中,我们需要在允许我们做的事情中作出决定,比如,处理栅格数据不同于矢量数据,或为没投影的数据设置投影,或处理仅在特定时间搜集的数据集。对于重要的GIS工作来说,脚本以及其他形式的程序是必需的,而非可有可无。

在接下来的联系中,我们会探索Python的使用以及创建脚本来使用ArcGIS里众多的地理处理工具。所有你能在ArcToolbox或Model中使用的工具都能够用在Python脚本中,这些脚本可以生成脚本工具,像其他地理处理工具一样使用。

一、Python语言基础

安装PythonWin,在…\ArcGisDesktop9.3.iso\Desktop\PythonWin目录下可以找到PythonWin的安装程序,默认

是不安装的,

。同时会安装win32com以及

允许任何脚本在基于Dispatch

的地理处理过程中工作。

ArcGIS10中引入了全新的

Python Window来增强内嵌的

Python体验。

警告:不要尝试更新随

ArcGIS安装的Python到一个新

的版本!

下面介绍Python的一些简

单语法和规则。

1数学运算符

Python提供了多样化的通用数学运算符——多数编程语言的特征,以及许多通过import的modules提供的符号。常用的有+,-,*,/,**(幂),%(取模,即除后的余数)。

下面的表格显示了整型(Integer)和浮点型(Float)各种组合运算的结果,记住一条规则,只要参与运算的有浮点型,则结果为浮点型;全为整型时,结果才为整型。

2字符串操作

注:使用Python帮助:有超过30种内置方法来处理字符,请到Sequence Types 下的String Methods寻找帮助!

字符串是一串字母,比如’San Francisco’,字符串下标从0开始。学习字符串语法的最好方法是自己动手尝试,下标展示之:

3模块的使用(Modules)

Python提供了一系列内置的方法(大量依赖于模块)用于通用编程。Python安装时自带了大量Modules,最常用的有math,sys,random,array以及os.path。

当然还有好多Modules可以下载,比如数字处理(Numeric)——numpy,可在https://www.360docs.net/doc/1e11420681.html,或https://www.360docs.net/doc/1e11420681.html,里搜索。https://www.360docs.net/doc/1e11420681.html,/moin/NumericAndScientific 页面中列举了一些。

使用Module前,必须import之。通常我们会将一行import 放在程序顶部,比如:

import arcgisscripting

当然,这不必成为你程序的第一行,但必须在使用它里面方法之前。

当要引用多个模块是,中间用逗号分隔,比如:

import arcgisscripting,sys,string,os,math

我们也可以自己为频繁使用的方法创建Module,下面,我们开始体验内置的Modules。

math和random模块

很多常用的数学计算功能都可以通过math找到,比如三角计算或对数计算,如果要使用复杂数字,就使用cmath模块。

和之前一样,通过以下表格来体现模块的使用:

4使用def构建函数

有点像Module,但更简单,函数是一个自己定义功能,用在之后的代码中,并且提供任何你想要使用的参数。这个函数从此可像变量那样在程序中使用,结合例子更容易理解。接下来的代码定义了一个将度转换为弧度的简单函数,同时也定义了一个弧度转换为度的函数,它们和Excel内置的函数类似。

import math

def radians(angdeg):

return angdeg*math.pi/180

def degrees(angrad):

return angrad*180/math.pi

print math.sin(radians(45))

print degrees(math.acos(0.5))

运行之,得到结果:0.707106781187 60.0

5流程控制结构:If,While,For

任何脚本或编程语言的一个重要特征就是执行一系列不同情形语句的能力。

你想要创建一系列山影栅格来代表夏天、冬天和春秋分。山影(hillshade)工具需要有太阳高度角和方位角作为输入参数。

接下来是一段相当简单的代码,通过太阳倾角(太阳光线正午垂直照射的纬度)获取太阳角和方位角以及纬度。输入两个参数:lat(研究区域的纬度,南半球为负)和decl(太阳倾角),由此得到sunangle和azimuth:

lat=30

decl=20

sunangle=90-lat+decl

azimuth=180

if sunangle>90:

sunangle=180-sunangle

azimuth=0

print sunangle,azimuth

上面的例子中lat和decl强制赋了值。

有三种流程控制操作:

if仅在一个特定情形下才执行语句;

while当一种情形存在下,持续执行语句

for遍历一系列值

这些语法和def有些相似:初始语句后加顿号、需要执行的语句块有缩进。

这三个结构的一些重要的公共特征:

①if、while、for语句均以冒号结尾,接下来是缩进的代码块,用于if、while、for定义的情形。在脚本编写窗口,你会发现,你在一行末尾打上冒号后,下一行自动缩进,在接下来的一行按下退格键取消缩进。

②如果你只需做一件事情,你可以在冒号后面同一行添加简短的语句,比如:

if x>0: print ‘x 比0大’

print ‘下一行不要缩进了。。。’

if(continued)

接下来,我们会探索一下另一个方便的模块:os.path:

开始之前,在d:/下创建一个“testfolder”文件夹,然后新建一个“test.txt”文件;

尝试以下代码段,确保print语句前有缩进。

import os.path

if os.path.exists("d:/testfolder/test.txt"):

print "测试文件夹存在"

print "txt文件存在"

elif os.path.exists("d:/testfolder"):

print "测试文件夹存在"

print "测试文件夹存在,但txt文件不存在"

else:

print "两者都不存在"

可选探索示例

接下来的例子做的事情对GIS非常重要,但是实际上不用任何地理处理代码。USGS7.5米分辨率DEM(数字高程模型)是文本文件(USGSDEM文件),投影为UTM,UTM北向和东向单位是米,但是高程单位可能是英尺(feet)或米(meters)。因此在获取垂直或水平距离信息时会有问题,比如坡度可以通过垂直距离/水平距离获得。如果你不在使用Z值之前设置为0.3048,将会出现错误结果。但是不幸的是,你可能不知道DEM文本文件的垂直单位是英尺还是米。这些信息保存在第539个字符里,“1”代表英尺,“2”代表米,所以可以通过读取这个文件判断。

下面的脚本演示了上述内容:

import fileinput

infile=r"c:\prog\pendata\woodside.dem"

firstline=fileinput.input(infile)[0]

unitchar=firstline[539]

unit="(unknown:not a 7.5' DEM?)"

if unitchar=="1":unit="feet"

if unitchar=="2":unit="meters"

print "\nElevation in"+" "+unit

fileinput.close()

输出结果:Elevation in feet

while(continued)

运行下面的代码,说明了一种while循环:

x=1

while x<10:

print x

x=x+1

屏幕依次输出1~9

“<=”(小于或等于)、“<>”(不等于)。

使用逻辑运算符计算得到结果为布尔型:true(1)和false(0)。

下面例子简单体会一下布尔型表达式:

x=1

while x<10:

print x

x=x+1

表达式“x<10”结果是true或false,所以这样允许我们在计算完一种情况时运行

一系列代码。许多情况下我们需要使用条件代码。

while循环的一个优点是允许我们跳过整个部分,如果条件不满足初始情况。由于

while提供一种容易结束循环的方法,我们甚至用它代替if语句。当循环一个数据

集时(GIS中很常用的工作)while循环很有用。在后面地理处理中我们会接触一些

例子。

for

尝试下面代码,演示了for循环:

for x in [1,2,3,4]:(注:[1,2,3,4]用range(1,5)代替是一样的)

msg="hello world"

print str(x)+" "+msg(注:当我们希望一个数字x和字符串连接时,必须先对数字进行格式转换即str(x),否则系统报错)

下面的代码创建并输出指定文件夹内shp文件名列表(每个都以‘.shp’结尾)import os

ws="c:/prog/hmbarea"

ilist=os.listdir(ws)#创建一个列表保存工作文件夹内的文件

fcs=[]#创建一个空列表,保存结尾为‘.shp’的文件

for i in ilist:

if i.endswith(".shp"):

fcs.append(i)

for fc in fcs:

print fc(输出结果如右图所示)

下面这个例子的循环较多次数。变量mu是算术平均数,s是标准差——这两个是

random.gauss()用到的参数,可以尝试改变n的值查看结

果!

import random

mu=50

s=10

z5=mu-s*1.96

z95=mu+s*1.96

count=0

n=100000

for i in range(n):

x=random.gauss(mu,s)

if xz95:count=count+1

print float(count)/n(每次运行的结果都不同,但都在0.05左右,即统计结果在5%左右)

6简单输入和输出

我们现在利用前面计算太阳角代码的片段,之前是直接指定参数值,现在我们有很多种

方法提供输入参数,现在我们用sys方法。尝试下面的代码,点击(run运行)之后,在对话框中函数自变量(Arguments)一栏填入:40 23.44,如下图:

import sys

lat=float(sys.argv[1])

decl=float(sys.argv[2])#使用arguments(argv)方法从“Arguments”一栏中获取输入参数,并指定一个浮点型转换将字符型输入值传递给lat和decl

sunangle=90-lat+decl

azimuth=180

if sunangle>90:

sunangle=180-sunangle

azimuth=0

print "正午太阳角="+str(sunangle)

print "方位角="+str(azimuth)(结果:正午太阳角=73.44 方位角=180)

二、ArcGIS&Python

1如何创建地理处理对象(geoprocessor object)

所有geoprocessing的Python脚本都可以通过import arcgisscripting或者win32com去穿件geoprocessor object。下面的例子显示二者区别:arcgisscripting module需要在Python2.5.1版本上创建并且需要此版本创建geoprocessor;通过win32com创建的geoprocessor可以在不同的Python版本上运行。

#9.3

import arcgisscripting

gp=arcgisscripting.create(9.3)

gp.workspace=”c:/Tongass”

gp.clip_analysis(“standb4”,”clipcov”,”standb4_clip”,”POLY”.”1.25”)

#Dispatch

import win32com.client

gp=win32com.client.Dispatch(“esriGeoprocessing.GpDispatch.1”)

gp.workspace=”c:/Tongass”

gp.clip_analysis(“standb4”,”clipcov”,”standb4_clip”,”POLY”.”1.25”)

理解ArcGIS中数据多样性格式对我们理解地理处理工具很有帮助。比如,特征数据可能是①单个shp文件;②geodatabase(地理数据库,我们可能指定地理数据库为

工作空间);③多边形、弧或点要素的coverage数据。当我们想遍历工作空间里的coverage文件时,应使用ListDatasets而不是ListFeatureClasses。

2获取地理处理帮助

如果你基本熟悉了Python的语法,便可以开始熟悉ArcGIS的Geoprocessing啦,获取这些方法帮助的途径有两个:

①ArcGIS帮助系统,Go To Geoprocessing/Automating your work with scripts/Scripting

object:Properites and Methods.

这里你会看到Geoprocessor Object,这个能让你很方便地获得所有对你有用的条目、设置和其他操作文档。比如,你想得到特定类型的文件,就找到listfeatureclasses方法:fcList=gp.ListFeatureClasses(“w*”,”polygon”)

注:此方法的语法为:object.ListFeatureClasses({wildCard} As String, {FeatureType} As String) As Python List

{} = optional wildcard为通配符,和星号(*)组合使用,如果没有通配符则返回工作目录下的所有feature classes。

②Geoprocessor Programming Model(PDF),包含方法(左箭头表示)、属性(可读写

的表示为杠铃形,只读的表示为部分杠铃形)

2.1举例:如何使用Geoprocessor Programming Model中的Lists

Lists(列表)及其属性和方法在图表中用紫色标出,如下:

现在我们试着编写一段脚本列举出属性表

中所有属性值(Fields)(以hmbarea栅格土地利

用为例,文件存在c:\prog\hmbarea下)

import arcgisscripting, sys

gp = arcgisscripting.create(9.3)

gp.workspace = " c:/prog/hmbarea"

fieldList = gp.ListFields("landuse", "*",

"all")

dsc=gp.describe("landuse")

print "landuse"+" "+dsc.DataType+":"

for field in fieldList:

... print https://www.360docs.net/doc/1e11420681.html,, field.Type (此时输出结果如右图)

3使用地理处理工具——Toolboxes和Aliases

总所周知,地理处理工具在脚本中的使用和ArcToolbox中相同,但是需要提供工具名称来使用它们。但是记住一个名称可能有好几个工具,比如,裁剪工具(Clip)在Coverage->Analysis->Extract工具集里,另一个是在Data Management Tools下的Raster工具集下。区别是每个工具适用不同的数据类型,但是我们如何在脚本中区分它们呢?

在ArcToolbox中,我们可以随意选择要使用的工具,但在脚本里就必须在某些方面加以区分。因此我们使用Aliases(别名)——已经成为工具名称的一部分。

每一个工具都有自己的别名,我们可以通过右键->属性来查看:

现在我们用一段脚本来解释:

import arcgisscripting,sys

gp=arcgisscripting.create(9.3)

gp.Workspace=”c:/prog/hmbarea”

gp.overwriteoutput=1 #OverWriteOutput:Boolean,为1表示允许覆盖已存在文件

# 将streams/arc转换为shp文件

gp.copyfeatures_management("streams/arc", "streams.shp")

#利用转换后的shp文件,做200米的缓冲

gp.buffer_analysis("streams.shp", "stbuff200.shp", 200)

# 用做过缓冲的shp裁剪

gp.Clip_analysis("geol.shp", "stbuff200.shp", "geolstr200.shp")

注:上面脚本用“#”注释的中文内容不要出现在脚本文件中,否则会出现错误结果截图:

如果你一次使用一个工具集中的若干工具,可以通过环境设置省下一些文字:gp.Toolbox = "Analysis"

gp.Buffer("streams.shp", "stbuff200.shp", 200)

gp.Clip("geol.shp", "stbuff200.shp", "geolstr200.shp")

4在建模中使用脚本(Scripts in ModelBuilder)

首先,需要记住的很重要的一点是,ArcToolbox里相当数量的工具实际上都是脚本。脚本都有一个图标。比如,空间统计分析工具(Spatial Staistics tools)

几乎都是Python脚本(一些是模型中使用了脚本

)。实际上,我们可以复制并编辑这些脚本作为其他用途。

为了在ModelBuilder中使用脚本或将脚本当做ArcToolbox中工具使用,我们需要考虑如何给它输入值以及让其设置输出值。仍然以太阳角计算代码为例,我们给其加上两句引用,四句输入输出语句,就可以用作Modelbuilder中的一个步骤了。

编辑下面的脚本,不过不要再PythonWin中运行之,因为getparameterastext 和setparameterastext只能用在脚本工具(ArcToolbox或Modelbuilder)中。

import arcgisscripting

gp=arcgisscripting.create(9.3)

lat=float(gp.getparameterastext(0))

decl=float(gp.getparameterastext(1))

sunangle=90-lat+decl

azimuth=180

if sunangle>90:

sunangle=180-sunangle

azimuth=0

gp.setparameterastext(2,str(sunangle))

gp.setparameterastext(3,str(azimuth))

这段代码中的“新面孔”:

getparameterastext:是Python传递给geoprocessor(我们称之为gp)的一个方法,允许工具提供输入参数。每次你运行这个工具时,都会看到一个对话框,提示输入参数,这个方法允许你在接下来的程序中使用。索引0和1指第一个和第二个参数。

setparameterastext:和getparameterastext相反,它传递第二个条目(比如str(sunangle)的值)给指定的输出参数。前两个参数索引为0和1,所以接下来输出参数的索引为2和3。

然后,我们需要将脚本加进工具(Making a script into a tool),那样才能在ArcToolbox或ModelBuilder或Command line中使用。如前面提到的那样,这个脚本只能用于工具,包括输入/输出方法是PythonWin不能处理的,但这些是多数工具必需的。

在ArcCatalog里,定位到Python脚本保存的文件夹,最好和数据在一个盘里,右键->新建toolbox。当然也可以使用之前创建的toolbox。

在ArcToolbox里,右键toolbox,选添加->scripts,填写如下图:

注意:脚本文件是一个脚本工具的参考!非常重要的一点,你使用脚本创建了

一个脚本工具,但是脚本本身并没有和工具一起保存,脚本工具作为toolbox 的一部分保存在“*.tbx”文件中。你也可以右键脚本工具点击“编辑”,出现PythonWin或其他任何IDE窗口,这看起来好像是脚本存在于工具中。所以,记得移动时将脚本工具文件和脚本本身一起拷贝。

“下一步”后是参数配置页面,如下图设置各参数如表格所示:

现在可以运行此toolbox了,对话框提示你输入latitude和declination。工具是否正确运行呢?如果是的话,你应该可以看到“Completed”,你可能会看到有一黑色窗体一闪而过,不用担心。那么,它是干什么的呢?

还记得结果是输出两个数字参数,那么,这些数字哪去了呢?

很好的问题,这仅能说明你能创建一个工具,但是不能想ArcToolbox那样运行。比如输出一种数据,栅格或特征数据(.shp)之类的。

但是它能在作为Modelbuilder工具正常运行,下面我们将使用它的输出参数创建一个hillshade。

在你的toolbox中新建一个model,将刚才创建的脚本工具(script tool)拖进来。 双击工具,输入参数,初始化之。打开“Sun Angle”和“Azimuth”发现它们还是默认值,说明此脚本工具还没有运行。右键单击工具,选择Run,然后发现两个输

出参数已经改变!

需要注意的是:latitude范围是-90~90,declination范围是-23.44~23.44。尝试输入latitude -70,declination 23.5,你会得到什么?为什么?

确保你已经得到值域内的太阳角和方位角,它们将是构建hillshade的输入参数。

首先,添加hillshade工具,双击指定一个elevation栅格数据(这里我选择了marbles 文件夹下的elevation),用下拉条指定azimuth和altitude值为azimuth和sun angle。

运行,然后右键单击输出文件,选“Add to Display”在ArcMap里查看结果。

?探索1:

如果你想通过日期获取太阳倾角,该怎么做呢?尝试下面代码,保存为

gp=win32com.client.Dispatch("esriGeoprocessing.GpDispatch.1")

#构建两个函数,首先判断输入月/日的合法性,然后获取是一年中的第几天

def jdate(im, id):

# 通过年月日起返回一年中的第几天

lastD = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

jd = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]

if ((im > 0) and (im < 13)):

if ((id > 0) and (id <= lastD[im - 1])):

return jd[im - 1] + id

else:

print "Date not in month"

return 0

else:

print "Month should be between 1 and 12 inclusive"

return 0

#计算倾角的函数

def declin(day):

rad = math.pi / 180

xlong = 279.164 + 0.985647 * day

xanom = 356.381 + 0.985600 * day

g = xanom * rad

elong = xlong + 1.915 * math.sin(g) + 0.02 * math.sin(2 * g)

elong = elong * rad

oblecl = 23.44 * rad

return math.asin(math.sin(oblecl) * math.sin(elong)) / rad

#主程序

month = int(sys.argv[1])

date = int(sys.argv[2])

lat = float(sys.argv[3])

decl = declin(jdate(month, date))

sunangle = 90 - lat + decl

azimuth = 180

if sunangle > 90:

sunangle = 180-sunangle

azimuth = 0

gp.setparameterastext(3,str(sunangle))

gp.setparameterastext(4,str(azimuth))

我们在思考远一点,如何根据一天内的任何时间而不是正午时间,获取太阳角和方位角呢?

感兴趣的可以从本文开头的链接中下砸相应代码学习。

探索2:

如何在PythonWin里运行这个脚本?首先我们得明确几个点:①我们将把hillshade 作为脚本的一部分使用,并为其提供输入参数:一个高程栅格(elevation raster);

②GetParameterastext仅在用作工具时起作用。

下表为脚本工具的参数设置:

代码如下:

import win32com.client, sys, math

gp = win32com.client.Dispatch("esriGeoprocessing.GPDispatch.1")

#函数定义,同上,下面仅给出函数名称:

def jdate(im, id):

def declin(day):

# 主程序,使用sys.argv[]代替getparameterastext()

month = int(sys.argv[1])

date = int(sys.argv[2])

lat = float(sys.argv[3])

gp.Workspace = sys.argv[4]#输入时注意,路径应为反斜杠“\”

elev = sys.argv[5]

hillsh = sys.argv[6]#给输出hillshade指定文件名

decl = declin(jdate(month, date))

sunangle = 90 - lat + decl

azimuth = 180

if sunangle > 90:

sunangle = 180-sunangle

azimuth = 0

gp.addmessage("about to try")

try:

gp.OverwriteOutput = 1

gp.addmessage("after overwriteoutputs setting, " + gp.workspace + "/" + hillsh)

gp.CheckOutExtension("spatial")

gp.addmessage(gp.workspace + "/" + hillsh)

gp.HillShade_sa (elev, gp.workspace + "/" + str(hillsh), azimuth, sunangle)

gp.addmessage("done with hillshade")

gp.CheckInExtension("spatial")

except:

## print gp.getmessages()

gp.addmessage(gp.getmessages())

gp.CheckInExtension("spatial")

阅读代码发现,第一个输入参数不适用的getparameterastext(0),而是sys.argv[1],这是因为getparameterastext()方法只在工具中起作用,而sys.argv[]有同样的效果,索引从1而不是0开始,当然,这需要首先引用sys模块。这里我们直接指定输出

文件在输入数据文件夹内,省去了setparameterastext()方法,当然这个方法在

PythonWin中也无法运行。

尝试输入参数如下图,得到右下结果:

5 在PythonWin里调试地理处理脚本

既然我们已经认真地学会了从Python中创建并运行地理统计工具,那么现在需要考虑如何调试我们的程序了。我们需要经常在Python和添加的地理处理系统引用之间调试程序。当一个地理处理工具运行失败后,我们需要从Pythonwin中得到一个丰富的消息,而不是“未知错误”。

5.1 调试选择和消息

Python优于AML的优点之一是它有更好的调试方法,调试程序有很多选择,这里不能一一列举。

打印语句(Print statements)

一开始就养成良好的调试方法是:将变量的当前值或脚本的处理过程打印在屏幕上。

比如,对之前的一段脚本加以修改:

import arcgisscripting,sys

gp=arcgisscripting.create(9.3)

gp.Workspace="c:/prog/hmbarea"

gp.overwriteoutput=1

gp.copyfeatures_management("streams/arc", "streams.shp")

gp.Toolbox="Analysis"

gp.buffer("streams.shp", "stbuff200.shp", 200)

print "Finished Buffer.Now Cliping..."

gp.Clip("geol.shp", "stbuff200.shp", "geolstr200.shp")

可以看出成功运行脚本!

然而当在工具中运行时,print语句不会产生错误,但也不会输出任何东西,因此,我们用gp.addmessage("Finished Buffer.Now Cliping...")代替print语句。那么,如果想无论在工具中或Pythonwin中都可以显示消息,就可以这两句都写上。我喜欢的做法是定义一个‘sendmsg’函数来输出消息:

def sendmsg(msg):

print msg

gp.addmessage(msg)

….

sendmsg("Finished Buffer.Now Cliping...")

获取工具消息和(try:…except:)

上面的方法很有用,但当我们运行我们并不了解很多信息的地理处理工具时就显得

无能为力了。如果在Pythonwin中运行Buffer时出现错误,比如输入文件不存在等,

只能看到“未知错误”的提示,这就引出了GetMessage上的方便!

现在我们要体验两种调试技巧:①GetMessages地理处理方法;②Python语言的错

误处理程序:try…except。

①现在我们添加GetMessages查看错误信息:

还是上面的代码,把“streams.shp”修改为“stream.shp”,查看错误信息:

gp.Toolbox="Analysis"

gp.buffer("stream.shp", "stbuff200.shp", 200)

gp.Clip("geol.shp", "stbuff200.shp", "geolstr200.shp")

运行之,查看错误信息,然后修改代码如下:

try:

gp.Toolbox="Analysis"

运维必备Python基础入门到精通

运维必备Python基础入门到精通 视频课程汇总

Python函数中文手册 函数列表 1、取绝对值 abs(x) Return the absolute value of a number. The argument may be a plain or long integer or a floating point number. If the argument is a complex number, its magnitude is returned. 如果你不知道绝对值什么意思,那就要补一下小学数学了! 基本用法 2 all(iterable)

Return True if all elements of the iterable are true (or if the iterable is empty). Equivalent to: 3 any(iterable) Return True if any element of the iterable is true. If the iterable is empty, return False. Equivalent to: 4 basestring() This abstract type is the superclass for str and unicode. It cannot be called or instantiated, but it can be used to test whether an object is an instance of str or unicode. isinstance(obj, basestring) is equivalent to isinstance(obj, (str, unicode)). 是字符串和字符编码的超类,是抽象类型。不能被调用或者实例化。可以用来判断实例是否为字符串或者字符编码。 5、二进制转换 bin(x) Convert an integer number to a binary string. The result is a valid Python expression. If x is not a Python int object, it has to define an __index__() method that returns an integer. 转换成二进制表达

python入门免费教程分享

python入门免费教程分享 通过Python入门爬虫比较简单易学,不需要在一开始掌握太多太基础太底层的知识就能很快上手,而且很快就能做出成果,非常适合小白一开始想做出点看得见的东西的成就感。你在学习Python?Python入门免费教程分享给你:python全新基础视频教程 https://https://www.360docs.net/doc/1e11420681.html,/s/1i5kvG5f python课程教学高手晋级视频h ttps://https://www.360docs.net/doc/1e11420681.html,/s/1htJW4KG python高级视频教程https://https://www.360docs.net/doc/1e11420681.html,/s/1nvf3NOt 那么,你是否清楚Python工程师在企业里面的定位是什么?主要有四个重要的定位:验证算法、快速开发、测试运维、数据分析。 1、验证算法:就是对公司一些常见设计算法或者公式的验证,公式代码化。 2、快速开发:这个大家应该都比较熟悉,快速开发,就是用成熟框架,更少的代码来开发网站; 3、测试运维:做运维同学应该清楚,在Linux运维工作中日常操作涵盖了监控,部署,网络配置,日志分析,安全检测等等许许多多的方面,无所不包。python可以写很多的脚本,把“操作”这个行为做到极致。

与此同时,python在服务器管理工具上非常丰富,配置管理(saltstack) 批量执行( fabric, saltstack) 监控(Zenoss, nagios 插件) 虚拟化管理 ( python-libvirt) 进程管理(supervisor) 云计算(openstack) ...... 还有大部分系统C库都有python绑定。 4、数据分析:Python有三大神器:numpy,scipy,matplotlib,其中numpy很多底层使用C语言实现的,所以速度很快,用它参加各种数学建模大赛,完全可以替代r语言和MATLAB。spark,Hadoop都开了Python的接口,所以使用Python做大数据的mapreduce也非常简单,加上py对数据库支持都很好,或者类似sqlalchemy的orm也非常强大好用。 了解完Python工程师在企业里面的定位,大家或许还需要找一家培训中心进行学习。 1.权威资深师资阵容,Python业内极具责任心、懂教学、拥有超强技术、有大型项目经验实战派讲师授课,由业内知名专家及企业技术骨干组成; 2.自主研发QFTS教学系统,拥有自主知识产权的Python开发培训课程体

Python入门教程

Python 入门教程1 ---- Python Syntax 1 Python是一个高效的语言,读和写的操作都是很简单的,就像普通的英语一样 2 Python是一个解释执行的语言,我们不需要去编译,我们只要写出代码即可运行 3 Python是一个面向对象的语言,在Python里面一切皆对象 4 Python是一门很有趣的语言 5 变量:一个变量就是一个单词,只有一个单一的值 练习:设置一个变量my_variable,值设置为10 [cpp] #Write your code below! my_variable = 10 3 第三节 1 Python里面有三种数据类型 interage , floats , booleans 2 Python是一个区分大小写的语言 3 练习 1 把变量my_int 值设置为7 2 把变量my_float值设置为1.23 3 把变量my_bool值设置为true [python] #Set the variables to the values listed in the instructions! my_int = 7 my_float = 1.23 my_bool = True

6 Python的变量可以随时进行覆盖 2 练习:my_int的值从7改为3,并打印出my_int [python] #my_int is set to 7 below. What do you think #will happen if we reset it to 3 and print the result? my_int = 7 #Change the value of my_int to 3 on line 8! my_int = 3 #Here's some code that will print my_int to the console: #The print keyword will be covered in detail soon! print my_int 7 Pyhton的声明和英语很像 8 Python里面声明利用空格在分开 3 练习:查看以下代码的错误 [python] def spam(): eggs = 12 return eggs print spam() 9 Python中的空格是指正确的缩进 2 练习:改正上一节中的错误

python入门基础教程必学的11个知识点

python入门基础教程必学的11个知识点 Python被誉为全世界高效的编程语言,同时也被称作是“胶水语言”,那它为何能如此受欢迎,下面我们就来说说Python入门学习的必备11个知识点,也就是它为何能够如此受欢迎的原因。 1、Python适用于哪些应用场景? 这个没有固定答案,很多人都说Python不适合开发GUI的程序,但Python 自己的IDE——IDEL和第三方的IDE——Eric就是Python写的。 目前看到的更多的人是拿来写Web,使用如Django、web.py框架,没记错Flask也是。 也有一个情况用的比较多,用Python当胶水,与各种语言结合,共同完成某软件功能,注意观察也许你会发现在安装一些软件的时候会有Python的身影。 我个人还拿Python模拟过端口转发和DNS服务等,所以真的是要看真么用,而不是能怎么用。

另外大数据分析Python也是比较适合的,从载入到分析,再到保存结果等,Python有一整套的模块应对。 2、Python能够胜任大数据吗? Python很适合做大数据相关的分析,内置的C编译的模块能应对常见的操作,个别极端的算法建议用C重写相关模块。 Python本身的特点更多的是高效率的开发和简单的维护,速度交给C去吧,更多的问题其实出自写代码的人没有更好的使用,而不是效率不够高。比如排序,本来Python有非常高效的内置C编译的模块,却非要自己写算法,这样的结果不慢都是奇怪的。 另外还要看需求是CPU密集型,还是IO密集型,如果是CPU密集型建议这部分操作由C实现,IO密集型的效率不会因为Python而有多少改变。 C的效率是高,但框架搭起来也费劲,所以还是结合着来吧,也因此,Python 被称为胶水语言。 3、Python是否可以完全代替Shell? 完全可以,Shell的功能Python均可实现,而且代码量更少、结构更优、可阅读性更好,而Python可实现的功能Shell却不一定能,如运维中会用到的用于网络通信的Socket模块、用于WEB的Django框架、用于性能采集的psutil 模块等,而且Shell对操作系统的命令依赖性较强,Python可在更大程度上规避。 在一个Shell的IDE是个很大的问题,虽然Python的原生IDE不怎么样,但第三方的IDE还是功能十分强大的,虽然不能和微软的Virtual Studio相媲美,但也是能完全满足Python的开发需求的。

python入门基础教程网盘下载

python入门基础教程网盘下载 不知你是否听说,Python是面向企业和第一流项目的、基于生产的语言,而且它几乎可以完成任何事情。既能创建一个树莓派应用,又能用Python来写桌面程序的脚本,还能通过Python来配置服务器。也许你刚想学Python,也许你观望了很久,但小编觉得这篇python入门基础教程可以帮到 你。 千锋Python基础教程:https://www.360docs.net/doc/1e11420681.html,/s/1qYTZiNE Python课程教学高手晋级视频总目录: https://www.360docs.net/doc/1e11420681.html,/s/1hrXwY8k Python课程windows知识点:https://www.360docs.net/doc/1e11420681.html,/s/1kVcaH3x Python课程linux知识点:https://www.360docs.net/doc/1e11420681.html,/s/1i4VZh5b Python课程web知识点:https://www.360docs.net/doc/1e11420681.html,/s/1jIMdU2i Python课程机器学习:https://www.360docs.net/doc/1e11420681.html,/s/1o8qNB8Q Python课程-树莓派设备:https://www.360docs.net/doc/1e11420681.html,/s/1slFee2T 对初学者来说,Python是很好的语言。许多新开发人员都在用它,经验丰富的开发人员也并没有放弃它。因为使用Python还有许多可做的事情。

Python是一门通用的语言,被设计得极易读写。此外,由于它被认为是真正通用的、可满足多种开发需求的语言,所以也为程序员提供了各式各样的选择。Python可以被用作系统操作、Web开发、服务器和管理工具、科学建模等。 千锋教育人工智能+Python全栈是真正的Python全栈开发,包含Python项目,爬虫、服务集群、网站后台、微信公众号开发,Python机器学习与数据挖掘,数据分析框架与实战,Python物联网树莓派的开发等。 千锋Python培训班的讲师,可以说是业界难以超越的讲师天团。尹老师,刘老师,杨老师均是清华大学毕业的高材生,精通多门编程语言,拥有丰富的开发经验,多年IT名企工作经验以及丰富的项目实战经验。 抓紧机会参加千锋教育人工智能+Python全栈课程吧。免费的,真正不花一分钱。千万不要错过!

Python基础教程视频全集下载

Python基础教程视频全集下载 现在大数据,量化分析,科学技术,人工智能,游戏很多方面都用到Python,目前国内Python人才需求量上升非常快,薪资也水涨船高。也有同学考虑找些Python基础教程视频进行学习,请看以下链接: 千锋Python基础教程:https://www.360docs.net/doc/1e11420681.html,/s/1qYTZiNE Python课程教学高手晋级视频总目录: https://www.360docs.net/doc/1e11420681.html,/s/1hrXwY8k Python课程windows知识点:https://www.360docs.net/doc/1e11420681.html,/s/1kVcaH3x Python课程linux知识点:https://www.360docs.net/doc/1e11420681.html,/s/1i4VZh5b Python课程web知识点:https://www.360docs.net/doc/1e11420681.html,/s/1jIMdU2i Python课程机器学习:https://www.360docs.net/doc/1e11420681.html,/s/1o8qNB8Q Python课程-树莓派设备:https://www.360docs.net/doc/1e11420681.html,/s/1slFee2T

以上是千锋Python视频全集,希望对你有帮助。如果你对于千锋Python 培训的内容感兴趣,请继续阅读。 千锋Python培训的主要学习内容包括三大模块,十大部分: 一、Python初级开发工程师 1.python语言基础(可以python基础语法入门和项目实践); 2.python语言高级(能够利用python进行一般的数据处理和爬虫); 3.python全栈工程师前端(掌握常用的前端技术); 4.python全栈工程师后端(学会企业级后端框架Django,并可完成大型网站构建); 二、Python高级开发工程师 5.python全栈工程师后端高级(目标是掌握两种轻量级和实时后端框架Flask和Tornado,完成两个实际项目); 6.Linux基础(懂得Linux常用命令和shell开发技术); 7.Linux运维自动化开发(清楚Linux运维自动化开发原理,并完成相应项目实践); 三、Python大神级数据分析师 8.python数据分析(学会python数据分析与可视化,了解数据统计和进入数据分析的原理,完成相应项目);

千锋教育Python入门教程

千锋教育Python入门教程 有人说,看着Python简单易学,想尝试自学,打算找些入门教程自学Python,不知道哪的视频好。现在,你可来对地方了,接下来附上千锋教育Python入门教程的链接。 千锋Python基础教程:https://www.360docs.net/doc/1e11420681.html,/s/1qYTZiNE Python课程教学高手晋级视频总目录: https://www.360docs.net/doc/1e11420681.html,/s/1hrXwY8k Python课程windows知识点:https://www.360docs.net/doc/1e11420681.html,/s/1kVcaH3x Python课程linux知识点:https://www.360docs.net/doc/1e11420681.html,/s/1i4VZh5b Python课程web知识点:https://www.360docs.net/doc/1e11420681.html,/s/1jIMdU2i Python课程机器学习:https://www.360docs.net/doc/1e11420681.html,/s/1o8qNB8Q Python 看完视频,建议你了解一下Python可以做什么: 1.网站后端程序员:使用它单间网站,后台服务比较容易维护。如:Gmail 、Youtube、知乎、豆瓣;

2.自动化运维:自动化处理大量的运维任务; 3.数据分析师:快速开发快速验证,分析数据得到结果; 4.游戏开发者:一般是作为游戏脚本内嵌在游戏中; 5.自动化测试:编写为简单的实现脚本运用在Selenium/lr,可实现自动化; 6.网站开发:借助django,flask框架自己搭建网站; 7.爬虫获取或处理大量信息:批量下载美剧、运行投资策略、爬合适房源、系统管理员的脚本任务等。 千锋教育Python培训课程共23周10大阶段力造Python全栈工程师,直击月薪15000!内容包括3.Python语言基础2.7.3、Python 3.x 进阶与python第三方库、PyQt开发、Linux指令、Linux Shell、Linux python运维自动化、KaliLinux 安全课程、Linux 网站后台-python开发、Python 数据库MySQL Oracle开发、HTML5基础CSS基础。 当然,没说完,还有Java-Script JQuery基础、Python项目爬虫,服务集群,网站后台,微信公众号开发、Python机器学习与数据挖掘,数据分析

-Python基础教程(自学记录)

第一章快速改造:基础知识 1.2交互式解释器 在IDLE编辑器,在提示符后输入help然后按回车;也可以按下F1获得有关IDLE的帮助信息 1.4数字和表达式 1/2返回0,整除除法;1.0/2返回0.5,用一个或者多个包含小数点的数字参与计算。另外改变除法的执行方式:from_future_import division //可以实现整除,1.0//2.0返回0.0 %取余数;**幂运算; >>> 1/2

>>> 1.0/2 0.5 >>> 1.0//2.0 0.0 >>> 10%3 1 >>> 9**(1/2) 1 >>> 9**(1.0/2) 3.0 >>> 2.75%0.5 0.25 >>> -9%4 3 >>> -3%2 1 >>> -3/2 -2 1.4.1长整数 普通整数不能大于2147483647也不能小于-2147483648,若更大的数,可以使用长整数。长整数结尾有个L,理论上小写也可以,不过为了便于识别,尽可能用大写。

1.4.2十六进制和八进制 0XAF返回175 ,十六进制; 010返回8,八进制 >>> 0xAF 175 >>> 010 8 1.5变量 包含字母、数字和下划线。首字母不能是数字开头。 1.8函数 Pow计算乘方:pow(2,3),2**3均返回8;pow等标准函数称为内建函数。 Abs(-10)求绝对值,返回10;round(1.0/2.0)返回1.0,把浮点数四舍五入为最接近的整数值。 >>> pow(2,3) 8 >>> 2**3 8 >>> abs(-10) 10 >>> round(1.0/2.0) 1.0

Python入门基础汇总

Python将纳入高考内容、小学生教材开始接触Python、Python列入全国计算机等级考试…… 全民学Python的话题铺天盖地,中国的Python学习者是全球第一,人才如此泛滥,甚至以 后孩子都会,学习它还能体现自身高价值? 30年前学英语的人凤毛麟角,但是现在,当英语成为了国际通用语言,学英语的人地位下降 了吗?仍然有大把人才靠英语的才能,过上令人羡慕的生活。 所以,不论竞争者多少,建立自己强有力的竞争力才是关键。现在学Python的人越多,正代 表着它成为编程届的国际通用语言大有可能。 短时间掌握一门技能是现在社会的需求。节奏越来越快,现在不是大鱼吃小鱼,而是快鱼吃 慢鱼的时代。人的时间比机器的时间值钱,而机器可以堆。 从大公司角度而言: 国内基于Python创业成功的案例不在少数,豆瓣、知乎、果壳,全栈都是 Python,大家对Python自然有信心。并且从这几家公司出来的程序员与 CTO,创业的话一般都会选择Python,雪球定会越滚越大。 从小公司角度而言: 现在创业公司越来越多,用Python出项目快,开发成本小,雇佣的员工数量也可以保持在可 控范围。 自学Python 学会基础,就从爬虫开始 现在大家学习Python,两个特别重要的方向就是爬虫和Web。利用 Python 爬虫我们可以进 行房地产、招聘等行业市场调研和商业分析、作为机器学习、数据挖掘的原始数据、爬取优 质的资源:图片、文本、视频等。 但是如果想学Python,我们会发现,画面是这样的:教你用Scrapy框架爬取xx,教你用Django框架爬取xx……这些框架,其实就是第三方公司推出的开源库。用库你可以很方便的爬取信息,但是问题也来了:

PythonWeb开发基础教程教案PDF版进店另有word版或PPT版

教案 课程名称Python Web开发基础教程课程代码 系(部) 教研室(实验室) 授课教师 职称 年月

课程 名称 Python Web开发基础教程总计: 62 学时课程 类别 专业课课程代码 授课教师学分 讲授: 44 学时 实验: 22 学时 其他:学时 授课对象教材 和主要参考资料教材:夏帮贵《Python Web开发基础教程》人民邮电出版社 2019.12 参考资料:[美] Julia Elman(茱莉亚·埃尔曼),[美] Mark Lavin(马克·拉温)著,侯荣涛,吴磊译《轻量级Django》,中国电力出版社,2016.10 课程简介 Python 因其功能强大、简单易学、开发成本低廉,已成为深受广大应用程序开发人员喜爱的程序设计语言之一。Python 被广泛应用到各种领域,从简单的文字处理,到Web 应用和游戏开发,甚至于数据分析、人工智能和航天飞机控制,Python 都能胜任。随着网络的广泛普及,Web 应用开发已成为开发人员的必备技能之一。Python 具备上百种Web 开发框架,使用Web 框架在Python 中开发Web 应用,可以极大地提高开发效率。 Django 是Python 世界中成熟的Web 框架。Django 功能全面,各模块之间紧密结合。由于Django 提供了丰富、完善的文档,因此开发人员可以快速掌握Python Web 开发知识并及时解决学习中遇到的各种问题 《Python Web开发基础教程》课程作为Python Web开发入门教学课程,讲授内容主要包括:开发环境配置、Django 配置、URL 分发、模型和数据库、视图、模板、表单、Django 工具等内容。 本课程是一门实践性非常强的课程,因此在教学过程中应注重理论紧密联系实际和加强实习环节的教学,通过实验要掌握Python Web开发方法技巧。 教学难点重点第 1 章Python Web 开发起步第 2 章Django 配置 第 3 章URL 分发 第 4 章模型和数据库 第 5 章视图 第 6 章模板 第7 章表单 第8 章Django工具 第9 章Python在线题库

鱼c小甲鱼零基础学python全套课后题

第一节课 0. Python 是什么类型的语言? Python是脚本语言 脚本语言(Scripting language)是电脑编程语言,因此也能让开发者藉以编写出让电脑听命行事的程序。以简单的方式快速完成某些复杂的事情通常是创造脚本语言的重要原则,基于这项原则,使得脚本语言通常比C语言、C++语言或Java 之类的系统编程语言要简单容易。 也让脚本语言另有一些属于脚本语言的特性: ?语法和结构通常比较简单 ?学习和使用通常比较简单 ?通常以容易修改程序的“解释”作为运行方式,而不需要“编译” ?程序的开发产能优于运行性能 一个脚本可以使得本来要用键盘进行的相互式操作自动化。一个Shell脚本主要由原本需要在命令行输入的命令组成,或在一个文本编辑器中,用户可以使用脚本来把一些常用的操作组合成一组串行。主要用来书写这种脚本的语言叫做脚本语言。很多脚本语言实际上已经超过简单的用户命令串行的指令,还可以编写更复杂的程序。 1. IDLE 是什么? IDLE是一个Python Shell,shell的意思就是“外壳”,基本上来说,就是一个通过键入文本与程序交互的途径!像我们Windows那个cmd窗口,像Linux那个黑乎乎的命令窗口,他们都是shell,利用他们,我们就可以给操作系统下达命令。同样的,我们可以利用IDLE这个shell与Python进行互动。 2. print() 的作用是什么? print() 会在输出窗口中显示一些文本(在这一讲中,输出窗口就是IDLE shell 窗口)。 3. Python 中表示乘法的符号是什么? Python中的乘号是*(星号)。 4. 为什么>>>print('I love https://www.360docs.net/doc/1e11420681.html, ' * 5) 可以正常执行, 但>>>print('I love https://www.360docs.net/doc/1e11420681.html, ' + 5) 却报错?

Python入门教程 超详细1小时学会Python精编版

Python入门教程超详细1小时学会Python 为什么使用Python 假设我们有这么一项任务:简单测试局域网中的电脑是否连通.这些电脑的ip范围从192.168.0.101到192.168.0.200. 思路:用shell编程.(Linux通常是bash而Windows是批处理脚本).例如,在Windo ws上用ping ip 的命令依次测试各个机器并得到控制台输出.由于ping通的时候控制台文本通常是"Reply from ... " 而不通的时候文本是"time out ... " ,所以,在结果中进行字符串查找,即可知道该机器是否连通. 实现:Java代码如下: String cmd="cmd.exe ping "; String ipprefix="192.168.10."; int begin=101; int end=200; Process p=null; for(int i=begin;i

reader.close(); p.destroy(); } 这段代码运行得很好,问题是为了运行这段代码,你还需要做一些额外的工作.这些额外的工作包括: 1.编写一个类文件 2.编写一个main方法 3.将之编译成字节代码 4.由于字节代码不能直接运行,你需要再写个小小的bat或者bash脚本来运行. 当然,用C/C++同样能完成这项工作.但C/C++不是跨平台语言.在这个足够简单的例子中也许看不出C/C++和Java实现的区别,但在一些更为复杂的场景,比如要将连通与否的信息记录到网络数据库.由于Linux和Windows的网络接口实现方式不同,你不得不写两个函数的版本.用Java就没有这样的顾虑. 同样的工作用Python实现如下: import subprocess cmd="cmd.exe" begin=101 end=200 while begin

Python基础入门教程

Python基础入门教程 你可能已经听说过很多种流行编程语言,比如非常难学的C语言,非常流行的Java语言,适合初学者的Basic语言,适合网页编程的JavaScript语言,那么你知道Python是一种怎样的计算机程序设计语言吗?下面应广大读者需求,给大家呈上一篇Python基础入门教程的文章。 Python 是由Guido van Rossum 在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的。 Python 本身也是由诸多其他语言发展而来的,这包括ABC、Modula-3、C、C++、Algol-68、SmallTalk、Unix shell 和其他的脚本语言等等。 像Perl 语言一样,Python 源代码同样遵循GPL(GNU General Public License)协议。 现在Python 是由一个核心开发团队在维护,Guido van Rossum 仍然占据着至关重要的作用,指导其进展。 Python 特点

? 1.易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。 ? 2.易于阅读:Python代码定义的更清晰。 ? 3.易于维护:Python的成功在于它的源代码是相当容易维护的。 ? 4.一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。 ? 5.互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。 ? 6.可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。 ?7.可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。 ?8.数据库:Python提供所有主要的商业数据库的接口。 ?9.GUI编程:Python支持GUI可以创建和移植到许多系统调用。 ?10.可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。

Python基础入门课程-学习笔记

Python基础入门课程 --学习笔记 近期忽然有点迷上了爬虫Python,可能原因是最近人工智能,深度学习炒的比较热火有关。所以在网上搜了一大圈,想找点基础教程看看,发现还真不少,不过还真没有发现比较适合我这种菜鸟的教程,要么是英文的,要么一开始就讲的比较深,连测试环境都搭建不起了。让人一看就有点畏难放弃了。最后终于发现了唐老师的视频教程,好了,废话不多说,我就把我最近一段时间的学习笔记给大家分享一下。 要想学习Python,首先要搭建测试环境。本教程所用的环境如下: 一、测试环境: 系统:64位win7中文版 浏览器:Google Chrome,尽量不要用IE浏览器,测试中可能不能使用。 Python:Anaconda3-4.3.1-Windows-x86_64.exe Python可以自行通过Baidu自行搜索下载安装即可。 二、Python安装: 如果你能下载到上面的版本,直接双击运行安装即可,可以更改安装路径到D盘,因为占用空间比较大。我就是安装到D盘。安装完成后你就可以在开始菜单-所有程序-Anaconda3找到Jupyter Notebook。本次教程所有脚本全部在该notebook中运行和测试。

三、入门学习: 如果你顺利看到这里,并能在你的电脑上看到上面的截图,那么恭喜你,你已经成功的拥有了本次学习测试的环境。 1、打开Jupyter notebook。 路径:开始菜单-所有程序- Anaconda3找到Jupyter Notebook单击打开, 界面如下。如能打开Dos窗口,不能出现下面的截图,请尝试安装Google Chrome,并设置成默认浏览器即可解决。 单击上图中的New,从下来菜单中选择Python 3即可打开代码编辑窗口。 如下两图:

【黑马程序员】Python入门教程、python基础教程

【黑马程序员】Python入门教程、python基础教程 黑马程序员视频库网址:https://www.360docs.net/doc/1e11420681.html,(海量热门编程视频、资料免费学习)学习路线图、学习大纲、各阶段知识点、资料网盘免费领取+QQ 3285264708 / 3549664195 适合人群:零基础小白 学习周期:15天 课程章节:2章(每章包含1-100小节课程) 学习后目标:1.掌握基本的Linux系统操作。2.掌握Python基础编程语法。3.建立起编程思维和面向对象思想。 0基础小白也能学会的人工智能 完整视频:https://www.360docs.net/doc/1e11420681.html,/course/534.html?1911sxkqq 课程资料:https://https://www.360docs.net/doc/1e11420681.html,/s/1EDaAE9eG0fhW7V5haowbig 提取码:9kml 内容简介: 本套课程从零开始,讲解人工智能的全部核心基础,4天课让你掌握机器学习、线性代数、微积分和概率论,学完课程你可以自己推导损失函数,实现梯度下降,手写神经网络,把控无人驾驶,完成手写字识别... 2019年python入门到精通(19天全) 完整视频:https://www.360docs.net/doc/1e11420681.html,/course/542.html?1910sxkqq

课程资料:https://https://www.360docs.net/doc/1e11420681.html,/s/1UzxLIXhkRppccqf2vGyOhA 提取码:ueva 内容简介: python基础学习课程,从搭建环境到判断语句,再到基础的数据类型,之后对函数进行学习掌握,熟悉文件操作,初步构建面向对象的编程思想,最后以一个案例带领同学进入python的编程殿堂 Python入门教程完整版(懂中文就能学会) 完整视频:https://www.360docs.net/doc/1e11420681.html,/course/273.html?1910sxkqq 课程资料:https://https://www.360docs.net/doc/1e11420681.html,/s/12-dymJ8FjWzh6b5NKJuP3Q 提取码:gqly 内容简介: 1-3 天内容为Linux基础命令;4-13 天内容为Python基础教程;14-15 天内容为飞机大战项目演练。 python进阶深入浅出完整版 完整视频:https://www.360docs.net/doc/1e11420681.html,/course/541.html?1910sxkqq 课程资料:https://https://www.360docs.net/doc/1e11420681.html,/s/1Y83bFUKz1Z-gM5x_5b_r7g 提取码:ix8q 内容简介: python高级学习课程,从linux操作系统到网络编程,再到多任务编程以及http同学协议,熟练掌握mysql数据库的使用,构建完整python编程技能,进入python殿堂,一窥python 编程之美。 Python进阶之Django框架

python基础教程pdf

python基础教程pdf 1-3天内容:为Linux基础命令 4-13天内容:为Python基础教程14-15 天内容:为飞机大战项目演练 第一阶段(1-3天): 该阶段首先通过介绍不同领域的三种操作系统,操作系统的发展简史以及Linux系统的文件目录结构让大家对Linux系统有一个简单的认识,同时知道为什么要学习Linux命令。然后我们会正式学习Linux 命令 1. 文件和目录命令:ls,cd,touch,mkdir,rm 2. 拷贝和移动命令:tree,cp,mv 3. 文件内容命令:cat,more,grep 4. 远程管理命令:ifconfig,ping,SSH的工作方式简介以及ssh命令

5. 用户权限及用户管理命令:chmod,chgrp,useradd,passwd,userdel 6. 软件安装及压缩命令:apt简介及命令,tar,gzip压缩命令,bzip2压缩命令 7. vim的基本使用 第二阶段(4-10天) 该阶段我们正式进入Python这门语言的学习,首先通过了解Python 语言的起源,Python语言的设计目标,Python语言的设计哲学,Python语言的优缺点和面向对象的基本概念,以及Python语言的执行方式,还有Python集成开发环境PyCharm的使用为我们接下来的学习做铺垫。 然后我们会学习int,string,float三种简单的变量类型,变量间的计算,变量的输入输出,if判断语句,while循环语句,for循环语句,break和continue的使用,函数的基本使用,模块的使用,列表,元组,字典三种高级变量,字符串的常用操作。

Python快速入门教程,十分钟让你入门Python

Python快速入门教程,十分钟让你入门Python 怎么入门Python? 怎么深化学习?怎么能够在Python学习中更加容易上手?下面咱们就来解析一下Python学习的步骤和法门,给我十分钟,教你快速入门。 根底语法 首先找一份通俗易懂,同时言简意赅的入门教程,迅速了解Python的根底语法。 通俗易懂极好了解,可是为何要言简意赅呢?内容详实翔实不好么?详实翔实本没有错,可是不太合适初学者。学习语法是一个对比单调的进程,假如这个进程太长或许细节太多,很简略造成初学者的畏难心思,致使无法坚持下去。而且关于没有接触过的概念,假如学习以后没有在实践中领会这些概念的用处,也很简略忘掉。所以倒不如一开始只学习非常主要的、必不可少的中心概念,把握言语的整体概略,细节比及日后实践中再逐步学习。 学习构造

刚学习完根底语法,直接学习构造会不会太马上,太突兀了?不会,而且这么做很有必要。 关于刚入门的人,最主要的是培育Ta的学习爱好和决心。学有所用,而且学得会,学习者才干坚持下去。可是关于一个初学者来说,用根底常识、根底工具来写出一个“能用”的东西,实在是太难了!而运用构造,能让你用不多的代码迅速构建出一个可用的功用,这关于爱好的培育至关主要。 有的人可能会忧虑,自个的根底常识都那么薄弱,怎么能学好构造呢?本来这个忧虑却是不用,大多数大型的构造都把功用封装得很完好,界说了一套在自个的构造下干事的“规矩”,学习构造更多的是学习这些“规矩”,入门倒不需要很深的理论根底。 教师教导 构造能够处理爱好的疑问,教师教导能够处理决心和功率的疑问。 人的大脑是软弱的,遇到一个疑问对比难,大脑会试着处理;遇到两个疑问对比难,大脑会先试着逃避,镇定后再测验处理;假如连续遇到三个无法处理的疑问,大脑基本上会挑选抛弃。而教师的效果即是让你的大脑每次只需要面临一个疑问。遇到疑问,自个试着处理,还是搞不定,问教师,教师教你处理。这么你的大脑就不会一连遇到几个疑问,最终挑选抛弃了。 同时,有教师为你保驾护航也会让你的学习进展大幅进步。编程中遇到疑问不会处理再多见不过了,没有人能够在不遇到疑问的情况下学会编程。而教师的效果是确保你遇到疑问一天以内能够得到处理,而不是在一个疑问上卡一周。一般来说,有教师教导的学习比没有教师教导的学习进展要快一倍。

Python基础入门课程学习笔记

Python 基础入门课程 -- 学习笔记 近期忽然有点迷上了爬虫 Python ,可能原因是最近人工智能, 深度学习炒的 比较热火有关。所以在网上搜了一大圈,想找点基础教程看看,发现还真不少, 不过还真没有发现比较适合我这种菜鸟的教程, 要么是英文的, 要么一开始就讲 的比较深, 连测试环境都搭建不起了。 让人一看就有点畏难放弃了。 最后终于发 现了唐老师的视频教程, 好了,废话不多说, 我就把我最近一段时间的学习笔记 给大家分享一下。 要想学习 Python ,首先要搭建测试环境。本教程所用的环境如下: 一、测试环境: 系统: 64 位 win7 中文版 浏览器:Google Chrome,尽量不要用IE 浏览器,测试中可能不能使用。 Python : Anaconda3- Python 可以自行通过 Baidu 自行搜索下载安装即可。 二、 Python 安装: 如果你能下载到上面的版本,直接双击运行安装即可,可以更 改安装路径到 D 盘,因为占用空间比较大。我就是安装到 D 盘。安装完成后你就可以在开始菜 单- 所有程序 -Anaconda3 找到 Jupyter Notebook 。本次教程所有脚本全部在该 notebook 中运行和测试。 三、 入门学习: 如果你顺利看到这里,并能在你的电脑上看到上面的截图, 已经成功的拥有了本次学习测试的环境。 1、 打开 Jupyter notebook 。 路径:开始菜单-所有程序-Anaconda3找到Jupyter 界面如下。如能打开 Dos 窗口,不能出现下面的截图, Chrome 并设置成默认浏览器即可解决。 单击上图中的New 从下来菜单中选择Python 3即可打开代码编辑窗口。 如下两图: 好了,终于可以看到 Python 的一些真面目了,下面我们就和他来一个亲 民接触吧。还是从最经典的“ Hello Word!”入手,让我们看看如何通过 Python 输出“Hello Word ”。在代码输入处输入以下代码:print ( “Hello, Word!” ) 然后按 Control+enter 键运行即可看到屏幕上输出 Hello Word ! 是不是有点成就感了。好,我们继续。 2、 变量 python 是一种动态类型语言,在赋值的执行中可以绑定不同类型的值, 这个过程叫做 变量赋值操作 ,赋值同时确定了变量类型。 在 python 中变量定义方法很简单: a = 3 这个操作过程就是赋值,意思把整型数字5赋值给了变量a ,用等号来连 接变量名和值。之后就可以在表达式中使用这个新变量了 A * 5 的结果就是 15,如下图所示。 Say_Hello = “你好,很高兴见到你”这个赋值语句就把“你好,很高 兴见到你”赋值给 Say_hello 变量,并且定义了 SayHello 的变量类型为 那么恭喜你,你 Notebook 单击打开, 请尝试安装 Google

python入门基础代码

python入门基础代码 #查找index函数的帮助 help(str.index) #for循环和break语句 from math import sqrt for i in range(2,101): flag=1 k=int(sqrt(i)) for j in range(2,k 1): if i%j==0: flag=0 break if(flag): print i #continue语句,满足条件跳出continue后面的语句sumA=0 i=1 while i<=5: sumA =i i =1 if i==3:

continue print 'i=%d,sum=%d'%(i,sumA) #循环中的else语句 k=5 for i in range(1,10): if k==3: break else: print i #自定义函数/素材1-100间素数 from math import sqrt def isprime(x): if x==1: return False k=int(sqrt(x)) for j in range(2,k 1): if x%j==0: return False return True for i in range(2,101): if isprime(i): print idef f(x,y=True): #默认参数要放在参数列表的最后

'x and y both correct words or not' if y: print x,'and y both correct' print x,'is Ok' f(68) f(68,False) #传递函数 def addme2me(x): return(x x) def self(f,y): print f(y) self(addme2me,2.2) #lambda函数 my_add=lambda x,y:x y my_add(5,6) #数据获取与表示 f=open(r'E:\360Downloads\firstpro.txt','w') #新建一个文件f.write('hello,world') #f为对象,write写入文件 f.close() f=open(r'E:\360Downloads\firstpro.txt','r') #r代表读出 p1=f.read(5) #5代表读出的字节数 p2=f.read()

相关文档
最新文档