Pythonの勉強
まぁ、多言語利用してるプログラマですのでね、気になったところだけ。
・Python2系とPython3系ではいろいろ違うので必ず3系でよろしく。2系はそろそろ朽ちるかと…
(まぁAnacondaで一緒にいれちゃうんだけど)
・拡張子は.py
・コマンドの最後に;がいらない。(書きたい)
・;は文字の区切りコード(なんでやねん。つーかこんな一行複数命令コード書くか?)
例:print "Hello";print "world"
・コメントは#
・文字コードはUTF-8にしとけばいいんちゃうかな
# coding: UTF-8
・ネストでプログラムを制御する
・トリプルクオーテーションで囲めばエスケープシーケンスを省略できる
・大文字小文字を区別する
・変数名 = オブジェクト
・変数名:1文字目は英文字かアンダーバー(_)
・変数名:2文字目以降は英数文字、アンダーバー
・変数名:予約語は使用できない
・変数名:大文字と小文字は区別される
・オブジェクトは真偽に分類できる
「True」は数値の「1」、「False」は数値の「0」と同じように扱う
数値の「0」や空文字は偽(false)、それ以外は真(true)、Nullも偽
空のタプル()、空のリスト[]、空のディクショナリ{}は偽(false)
NoneType型の「None」は偽(false)
オブジェクトの比較
str1 == str2 #valueの比較
str1 is str2 #オブジェクトの比較 逆は「is not」
・型は緩い
・if文
if 条件式1:
条件式1が真の時に実行する処理1
条件式1が真の時に実行する処理2
elif 条件式2:
条件式2が真の時に実行する処理1
else:
どれにも適合しない場合の処理
print x #ifを抜けた後の処理
・配列構造が3つ(厳密にいうと、ディクショナリ型はMAP型)
・リスト。ゆるいつくり。数値オブジェクトと文字列オブジェクトが入ってもいいし、リストオブジェクトを入れてもいい
list =[オブジェクト1, オブジェクト2, ...]
list = [10, [20, 16], [32, 34], 18]
value1 = list[0]
・インデックスは0から(逆説からのアクセスは「-1」から使える)
・値が被る場合は消し込まれる
・スライス使える
リストオブジェクト[開始インデックス:終了インデックス]
・追加、削除、変更等々色々メソッドが豊富で変更が柔軟(VBAしね)
・タプル:ほとんどリストと一緒だが、あとから変更できない
tuple = (オブジェクト1, オブジェクト2, ...)
tuple = オブジェクト1, オブジェクト2, #とも書ける。ややこしいな。
※要素が1つの時はtuple = (オブジェクト1, )と記述
・ディクショナリ:要は連想配列
dict = {キー1:値1, キー2:値2, ...}
value = dict["key"]
辞書では要素に順番は無いので、内部でどう並ぶかはわからない
・存在しないkeyを使うとKeyErrorになる
・キーに数値や文字列を使用できる
{1:"A", 2:"B"}
{"JP":u"日本", "CA":u"カナダ"}
{(50, 100):"test", (120, 150):"test2"}
・追加、削除、変更等々色々メソッドが豊富で変更が柔軟(VBAしね)
・while文(elseは省略可
while 条件式:
条件式が真の時に実行する処理1
else:
条件式が偽の時に実行する処理1(whileを抜けるときに行う)
while抜けた後に実行する処理
・for文
for 変数 in オブジェクト:
実行する処理1
else:
forを抜けるときに
for抜けた後に実行する処理
・色々回し方
for num in [4, 3, 12]:
for str in "Hello":
for var in range(0, 10):
for value in list1:
for key in range(len(list1)):
for key, value in enumerate(list1):
・2つのリストを同時ループするとき
for key in range(len(list1)):
print("リスト1:" + list1[key] + ", リスト2:" + list2[key])
を↓に置き換えれる(↑二つともが必ずあるとは限らない)
for value1, value2 in zip(list1, list2):
print("リスト1:" + value1 + ", リスト2:" + value2)
※zipの引数は、2個だけに限定されていない。3つでも4つでも(便利!!!)
思ってたより、使いやすいかも(長年逃げ続けてきたのに)