draemonash2のメモ書き
以下コマンド実行
python test01.py
基本構文例
def add(x, y):
ans = x + y
return ans
n = add(3, 5)
print n #=> 8
何もしない処理は、以下のように記述する。(これがないとインデントによるブロック構造の為、エラーが発生してしまう)
if value == 0:
pass
else
test = "test!"
ただし、ダブルクオーテーション×3で代用可能。
# 複数行のコメントアウト例
'''
print "test 3"
print "test 4"
'''
print "1234\"567890" ⇒ 1234"567890
print "1234'567890" ⇒ 1234'567890
print '1234"567890' ⇒ 1234"567890
print "1234\\567890" ⇒ 1234\567890
print "1234\n567890" ⇒ 1234(改行)567890
print "1234\t567890" ⇒ 1234(タブ)567890
if __name__ == "__main__":
関数の戻り値、複数可
def func():
return 3, "ABC"
n, s = func()
defステートメントのように関数を作成する際に使用するもの。defステートメントとは違い「式」。よってdefステートメントでは記述できない場所に記述することが可能。
func = lambda x,y=10,z=30: x + y + z
func(x=1) '⇒ 41
compile()
:正規表現パターンをコンパイルmatch()
:文字列の先頭がマッチするかチェック、抽出search()
:先頭に限らずマッチするかチェック、抽出fullmatch()
:文字列全体がマッチするかチェックfindall()
:マッチする部分すべてをリストで取得finditer()
:マッチする部分すべてをイテレータで取得sub()
, subn()
:マッチする部分を置換split()
:正規表現パターンで文字列を分割findall()
。マッチ位置を取得する場合は finditer()
を使う。findall()
pattern = r'(\[\d+\])'
line = "aaa [1] bbb [2] ccc"
matchlist = re.findall(pattern, line)
if matchlist:
print(matchlist[0][0] + matchlist[0][1])
finditer()
pattern = r'(\[\d+\])'
line = "aaa [1] bbb [2] ccc"
matchlist = list(re.finditer(pattern, line))
for matchobj in matchlist:
match_start_pos = matchobj.span()[0]
match_end_pos = matchobj.span()[1]
/
である。Windows上で実行する場合、変換したほうがいい?
/
は、Linux,Windows双方利用できるらしい。 [1]__init__()
(コンストラクタ)が自動的に作られる
Pose(Position(1.0, 2.0, 3.0), Rpy(4.0, 5.0, 6.0))
Pose(Position(x=1.0, z=3.0))
__eq__()
(インスタンス比較関数)が自動的に作られる__repr__()
(文字列化関数)が自動的に作られる
print()
などで中身が簡単に確認可能asdict
)__post_init__()
で初期化後の処理を書けるpython3 -m pip install <package>
が推奨されているので、こちらを使う。相違点 | Python2 | Python3 |
---|---|---|
print記述方式 | print “出力対象”(*1) | print(“出力対象”) |
ライブラリ数 | 多い | 少ない |
数値出力結果(*2) | 整数部のみ出力( ex. 3 ) | 小数部も出力( ex. 3.0 )(*3) |
long型有無 | ある | ない(int型として扱う) |
例外構文記述方法 | except Exception, e: | except Exception as e: |
(*1) Python2で丸括弧のなかに複数のオブジェクトがあった時は、タプルを作ってprintすることになる。
print 'Python', python_version() # -> Python 2.7.6
print('a', 'b') # -> ('a', 'b')
print 'a', 'b' # -> a b
from __future__ import division
」を追加することでPython3と同等の振る舞いとなる6 // 2
のように演算する言語チートシート参照
演算子 | 種別 | 説明 |
---|---|---|
+a | 代数 | 正数 |
-a | 代数 | 負数 |
a + b | 代数 | 加算 |
a - b | 代数 | 減算 |
a * b | 代数 | 乗算 |
a / b | 代数 | 除算 |
a % b | 代数 | a を b で割った余り |
a ** b | 代数 | a の b 乗 |
a // b | 代数 | 切り捨て除算 |
~a | ビット | ビット反転 |
a & b | ビット | AND:論理積 |
a | b | ビット | OR:論理和 |
a ^ b | ビット | XOR:排他的論理和 |
a « b | ビット | b ビット左シフト |
a » b | ビット | b ビット右シフト |
a = b | 代入 | a に b を代入する |
a += b | 代入 | a = a + b に同じ |
a -= b | 代入 | a = a - b に同じ |
a *= b | 代入 | a = a * b に同じ |
a /= b | 代入 | a = a / b に同じ |
a %= b | 代入 | a = a % b に同じ |
a **= b | 代入 | a = a ** b に同じ |
a //= b | 代入 | a = a // b に同じ |
a &= b | 代入 | a = a & b に同じ |
a |= b | 代入 | a = a | b に同じ |
a ^= b | 代入 | a = a ^ b に同じ |
a «= b | 代入 | a = a « b に同じ |
a »= b | 代入 | a = a » b に同じ |
a == b | 比較 | a が b と等しい |
a != b | 比較 | a が b と異なる |
a < b | 比較 | a が b よりも小さい |
a > b | 比較 | a が b よりも大きい |
a <= b | 比較 | a が b 以下である |
a >= b | 比較 | a が b 以上である |
a <> b | 比較 | a が b と異なる |
a is b | 比較 | a が b と等しい |
a is not b | 比較 | a が b と異なる |
a in b | 比較 | a が b に含まれる |
a not in b | 比較 | a が b に含まれない |
a and b | ブール | a も b も真であれば真 |
a or b | ブール | a または b が真であれば真 |
not a | ブール | a が偽であれば真 |
x if c else y | 条件 | c が真であれば x を、さもなくば y を返します。 |
a + b | 文字列 | 文字列 a と 文字列 b を連結 |
a * n | 文字列 | 文字列 a を n 回繰り返す |
a[n] | 文字列 | 文字列 a の n 番目の文字を取り出す |
a[n:m] | 文字列 | 文字列 a の n 番目から m 番目まで(m は含まない)の文字列を取り出す |
a[n:] | 文字列 | 文字列 a の n 番目から最後までの文字列を取り出す |
a[:m] | 文字列 | 文字列 a の 0 番目から m 番目まで(m は含まない)の文字列を取り出す |
a[n:m:s] | 文字列 | 文字列 a の n 番目から m 番目までの文字列を s個とばしで取り出す |