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)
