基於ArcGIS的python編程3.python基礎(二)

上一篇文章我們簡單的學習了python的數據類型相關的知識,接下來我們將學習到python的語句與函數相關知識。在學習新的知識前,補充上一篇文章相關的兩個知識點:

  • 注意區分語句與表達式

##此處 3*15 為表達式,可以直接輸出 (python的注釋除了用#開頭,還可以用##開頭)n>>> 3*15 n45n>>> x=3*18 ##此處為語句。需要通過print才能輸出n>>> print xn54n

  • python的路徑處理

python的轉義字元如下

這裡就知識重點介紹基於ArcGIS的python編程常用的一種轉義字元(),這在處理路徑時經常遇到;文件夾的路徑是用反斜杠()分隔的,但在python中的()表示轉移符,所以在輸入路徑時要注意,正確的方法有一下三種:

  1. 利用單斜杠(/).例如:"E:/專業學習相關文檔/ArcGIS Python開發"。
  2. 使用兩個反斜杠() 例如:"E:專業學習相關文檔ArcGIS Python開發"
  3. 在路徑名前加一個(r),表示後面的轉義符不轉義,例如:r"E:專業學習相關文檔ArcGIS Python開發"

條件語句:

學習條件語句,第一個涉及到的可能就是比較運算符的使用,python的比較運算符與其他的語言的比較運算符並沒有太多的區別。python的比較運算符如下

例子:

import random #導入random庫nx = random.randint(0,6) #隨機生成一個0至6的整數nprint xnif x==6: #判斷x的值是否為了6,是則輸出You win!n print "You win!"n

從這個代碼我們可以看出python的語法與其他語言的區別,例如C#使用{ }來表示一個代碼塊,而python則用(:)表示代碼塊的開始,後面的一行或多行代碼通過相同的縮進表示同一個代碼塊,縮進的結束表示代碼塊的結束。python的縮進是不可或缺的,這也是定義代碼塊的唯一方式。像其他的語言那樣,python也有if-else 或if - elif-else 結構。

循環語句

python提供了for和while循環兩種循環語句,在for,while語句中經常結合continue和break一起使用。當要跳出當前循環的時候,使用break語句;要繼續當前循環的時候,使用continue語句。

while循環的例子如下:

i=0nwhile i<=10: #判斷i的值是否小於等於10,是則輸出i,i增加1,否則循環結束n print i #輸出in i+=1 #i增加1n

運行後的結果如下:

for循環的例子如下:

mylist=[A,b,c,D] #構建一個列表nfor x in mylist: #遍歷列表n print x #輸出列表的所有元素n

運行的結果如下:

循環的嵌套:(求100以內的素數(素數的定義是只要1和它本身才能整除))

#求100以內的素數ni=2nwhile i<=100:n for x in range(2,i): #range()函數的作用是取從2開始至i-1之間的整數n if i%x==0: #去i除以x的餘數,只要存在一個x使等式成立,就說明i 不是素數n break #跳出for循環n else: #循環正常執行完(即 for 不是通過 break 跳出而中斷的)的情況下執行n print 100以內的素數有:+str(i)n i+=1n

運行後的結果如下:

for,while循環是一個比較重要的知識點,比如說當我們想進行批量處理數據的時候,循環語句是必不可少的;在實際的項目當中,我們也可以結合else一起使用,形成while——else,for——else形式,當for或者while循環正常執行完(即 for 不是通過 break 跳出而中斷的)的情況下執行else代碼塊(例如求素數的應用);

在循環的嵌套中,for,while語句可以靈活的單獨或交叉使用。在寫循環語句的時候有兩個點需要注意的,一個是終止循環因子的設置,缺少了它,程序將會進入死循環;另外一個是是否執行循環的條件判斷(while語句中)。

函數:

函數是組織好的,可重複使用的,用來實現單一,或相關聯功能的代碼段。函數能提高應用的模塊性,和代碼的重複利用率。

自定義函數的語法:函數的代碼塊以def 關鍵詞開頭,後接函數名,參數寫在函數名後面的括弧中。例如自定義函數myprint()

def myprint(x): #定義一個函數輸出x的值n print xnmyprint("I am a GISer.") #函數的調用,參數為I am a GISer.n

最後輸出的結果為:

python函數的返回值不是必須的,如需要返回值,使用return語句即可,如果沒有return語句,python函數默認是沒有返回值的,例如一個求和的函數Add():

def Add(x,y): #定義一個Add函數,求x,y的和並返回n return x+ynna=Add(4,6) #調用Add函數求4,6的和並賦值給變數anprint a #輸出an

運行輸出的結果為 10.

python為我們封裝了很多函數,我們可以直接調用,例如前面用過的help(),range(),randomint()等,不過不同函數存放的類庫不一樣,我們需要調用函數前,需要先導入存放函數的類庫,例如randomint()函數對應的類庫random。Arcgis與python的連接就是通過站點包(類庫)arcpy,Arcgis相關的工具在python中就體現為一個個函數,這些函數都封裝在arcpy類庫中,我們導入arcpy類庫後,直接調用函數就行。

通過python基礎這兩篇文章簡單的介紹了python的數據類型,常用的語句以及一些語法。python的知識還有很多,前面也提到基於ArcGIS的python編程的難點不是python語言,而是Arcgis相關的基礎,所以python的介紹到此結束,下一篇文章開始將會著重開始Arcgis的學習。在學習過程中涉及到python新的知識點時再簡單的說一下。

歡迎大家一起交流,一起學習,一起進步!


推薦閱讀:

arcgis api for js入門開發系列十三地圖最短路徑分析
對於Esri公司的下一代桌面軟體定位,怎樣才能由Arcmap快速切換至ArcGIS Pro?
arcgis api for js入門開發系列九熱力圖效果
怎樣把excel數據用軟體做成分析圖?
ArcGIS 1.1

TAG:GIS地理信息系统 | ArcGIS | GIS软件工程师 |