YouTube | Facebook | X(Twitter) | RSS

ArcPy ユーザーのための Python 基本構文集

2018/7/11 (水)

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)
  • この記事を書いた人

羽田 康祐

伊達と酔狂のGISエンジニア。GIS上級技術者、Esri認定インストラクター、CompTIA CTT+ Classroom Trainer、潜水士、PADIダイブマスター、四アマ。WordPress は 2.1 からのユーザーで歴だけは長い。 代表著書『"地図リテラシー入門―地図の正しい読み方・描き方がわかる』 GIS を使った自己紹介はこちら。ESRIジャパン(株)所属、元青山学院大学非常勤講師を兼務。日本地図学会第31期常任委員。発言は個人の見解です。

-プログラミング
-