ArcPy サイト パッケージを使用するために必要な最低限の Python 基本構文です。ArcGIS Pro 2.1 の Pytyon 3.5、ArcMap の Python 2.7 共通で利用できる構文です。
変数
# 動的にデータ タイプが変化 a = 1 print(a) a = 10 print(type(a)) a = "10" print(type(a)) # 日本語や数字、予約語は変数名に使えない 1 = "123" あ = 100 print = 100 # 変数は大文字、小文字を区別 scale = 10000 SCALE = 20000
Pytyon の一般的なデータ タイプ
# 文字列(テキスト データを保持) a = "moji" print(a) # 数値(数を保持) a = 40000000 print(a) a = 3.14159264 print(a) #リスト(複数のデータを格納するコンテナ、インデックスで要素にアクセス、スライス、検索、足し掛け算、置き換え) a = ["Tokyo", "Nara", "Hiroshima"] print(a[0]) # 要素にアクセス a[0] = "Hiroshima" # 要素の変更 del a[1] # 要素の削除 a.append("Nara") # 要素の追加 a += ["Tokyo"] # 要素の追加 "Tokyo" in a # 検索 true/false a[1] = "Kure" # 要素の置き換え # タプル(リストと同じ、要素の書き換えができない、足し算はできる) a = ("Tokyo", "Nara", "Hiroshima") print(a[0]) a[0] = "Kure" # 要素の変更できない del a[1] # 要素の削除できない a += ("Kure") # 追加できる # 辞書(リストに類似、キーで要素にアクセス、キーは変更不能オブジェクトに限定) a = {13:"Tokyo", 29:"Nara", 34:"Hiroshima"} print(a[13]) # キーを使って要素を取り出す a[1] = "Hokkaido" # キーと要素の追加 del a[13] # キーの削除 a.keys() # キーの一覧確 13 in a # 特定のキーの確認 true/false インタプリタのみ #データ タイプを調べる関数 print(type())
文字列
# シングル クォーテーション a = 'python' # ダブル クォーテーション a = "python" #トリプル クォーテーション a = '''python Lecture''' a = """python Lecture""" a = """ python Leccture""" # エスケープ シーケンス print("D:\test") print("D:\nakamura") b = "\npython\n\tlecture" # row 文字列 print(r"D:\test") #日本語を扱う場合 #モジュールの先頭1行目か2行目にファイルの文字コードを記述 #coding:CP932 もしくは #coding:Shift_JIS #文字列をユニコードとして設定 unichar = u"ユニコード文字" print(unichar) #PyScripterのPythonインタプリタではユニコード文字が必須 #文字列をユニコードとして設定 unichar = u"ユニコード文字" print(unichar) #PyScripterのPythonインタプリタではユニコード文字が必須 uni = u"日本語" # ユニコード文字列 str = uni # ユニコード文字列 str = uni.encode("cp932") # 文字列 uni = str.decode("cp932") # ユニコード文字列 uni = unicode(str,"cp932") # ユニコード文字列
関数
# range 関数 val = range(1,10,2)) #関数名(引数) #[1,3,5,7,9] #val 格納されているリスト オブジェクト # Python のヘルプの確認 http://docs.python.jp/2/library/
引数と戻り値
# len() - 引数に与えた値の長さを返す、引数にリスト型を指定した場合は要素数を返す a = "Python Lecture" print(len(a)) b = ["python","ESRI","JAPAN"] print(len(b)) #max() - 最大値を返す a = (6260474.996464 , 6338807.996464) print(max(a)) #round() - 引数に指定した値の小数点以下を第二引数の値で丸める a = 1811884.623694 print(round(a)) print(rouns(a,2))
モジュール
# データタイムモジュール import datetime d1 = datetime.date.today() d2 = datetime.date(2014,4,1) day = d1 - d2 print(day) #math モジュール - 数学関数にアクセス import math print(math.sqrt(64)) print(math.pow(10,2)) #string モジュール - 文字列を操作する関数にアクセス import string print(string.split("-155.5 -43.5")) print(string.upper(r"d:\student")) #os.path モジュール -パス名を操作 import os.path print(os.path.basename(r"C:\Temp\Japan.shp")) print(os.path.dirname(r"C:\Temp\Japan.shp"))
ステートメント
#ステートメント #単純文 #import = モジュールをインポート import math import string #from … import - モジュール内の特定の関数をインポート from math import sqrt print(sqrt(64)) #import … as - モジュールを任意の名前を付けてインポート import math as m print(m.sqrt(64)) #print … 出力結果を Python インタプリタ ウィンドウに表示 print("Hello") #ステートメント #複合文 #if .. elif .. else 文- 条件分岐 shp = "polygon" if shp == "point": print("ポイントです") elif shp == "polyline": print("ポリラインです") elif shp == "polygon": print("ポリゴンです) else: print("不明です") #for ..in 文 fcs = ["徳島.shp","香川.shp","愛媛.shp","高知.shp"] for fc in fcs:</pre> <pre> print(fc.replace(".shp", "_temp"))
サンプル
#生まれてからの日数 import datetime today = datetime.date.today() birthday = datetime.date(1981,4,1) life = today - birthday print(life)