僕は仕事でC言語、エクセルマクロ、Python、Matlabなど複数の言語のコードを使用していますが、文法を完全には覚えていないものも多くあります(∵)
コードを書く際に時間がある場合は、まずは文法を完全に覚える必要はなく、すぐに検索できるようにまとめておくだけでも十分だと思います。数をこなして書いているうちに自然と身につくと思いますので。
というわけで今回はPythonの基本文法についてまとめていきたいと思います。
コメント
プログラムを書くうえで一番大事なものといえば、、、そう!コメントの書き方ですね。
複数人でコードを書いている場合、コメントを残しておくことで、他の人が読む際に大きな助けとなります。また、自分で書いたコードでさえも数日後に読み返すと内容を忘れていることは多々あります。
#コメント
と書くことで#以降の文字はコメントとして扱われます。
a=1 #aは商品の個数を格納するための変数
上記のように書くことで、a=1はプログラムとして実行され、同じ行に#以降のコメントを残すこともできます。
また、自分で書いたコードをデバッグする際にもコメントは役に立ちます。
エラーが発生している行を無視したり、デバッグのために実行したくない行をコメントアウトすることで、任意の行をスキップして実行することができます。
数値型の演算子
- + : 足し算
- – : 引き算
- * : 掛け算
- / : 割り算
- // : 割り算(小数点以下切り捨て)
- % : 余りを求める
- ** : 累乗
文字列
“(ダブルクォーテーション)または ‘(シングルクォーテーション)で囲むことで文字列として扱うことができます。
name1 = "みけ"
name2 = 'たろう'
どちらでもOKです。
また、文字列を連結したい時には「+」を使います。
name1 + name2
"みけたろう"
コレクション(リスト / タプル / セット / ディクショナリ)
リスト型はいわゆる配列です。
squares = [1, 4, 9, 16, 25]
squares[0] #1
squares[3] #16
squares[0:4] #[1, 4, 9, 16]
squares[-2:] #[16, 25] (最後から2番目〜最後)
リスト型は後から要素の変更が可能です。
squares = [1, 4, 9, 16, 25]
squares += [36, 49, 64, 81, 100]
#[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
squares[5] = 256
#[1, 4, 9, 16, 25, 256, 49, 64, 81, 100]
タプル型はリスト型と似ていますが、要素の変更ができません。
tuple = ("a", "b", "c", "d")
#("a", "b", "c", "d")
tuple[2] = "e" #変更できず、エラーとなります。
この場合、要素は後から変更できずエラーとなります。その代わり、タプル型の方が高速処理が可能です。
セット型は、重複しない複数の要素を管理する場合に使います。また、リスト型とは異なり、順番という概念が存在しないため、インデックスを使って要素を取り出すことはできません。
set = {"a", "b", "c", "d", "e"}
#{"e", "b", "c", "a", "d"} #順番は保持されません。
set[3] #要素は取り出せず、エラーとなります。
set.add("f") #要素を追加する。
set.remove("a") #要素を削除する。
ディクショナリ型はキーと値をペアで複数管理する場合に使います。こちらもリスト型とは異なり、順番という概念が存在しません。その代わり、キーを使用して要素を取り出すことができます。
dict = {1:"Tokyo", 2:"Kanagawa"}
dict[1]
#Tokyo キーを使用して要素を取り出す
dict.items()
#dict_items([(1, "Tokyo"), (2, "Kanagawa")]) 全ての要素を取り出す
dict.keys()
#dict_keys([1, 2]) 全てのキーを取り出す
dict.values()
#dict_values(["Tokyo", "Kanagawa"]) 全ての値を取り出す
if文
条件によって分岐処理を行う場合にif文を使用します。
if (x == 1):
print("xは1です")
elif (x == 2):
print("xは2です")
else:
print("xは1と2以外です")
比較演算子
- x == y #xとyが等しい
- x != y #xとyが異なる
- x < y #xよりyが大きい
- x <= y #xよりyが等しいか大きい
- x > y #xよりyが小さい
- x >= y #xよりyが等しいか小さい
- x in y #要素xがシーケンスyの中に含まれる
論理演算子
- and #(a == 1 and b == 1)
- or #(a == 1 or b == 1)
- not #(not a == 1)
for文
決められた回数分処理を繰り返したり、配列の要素を順番に処理したりする場合にfor文を使用します。
for i in range(10): #10回処理を繰り返す
print(i)
for i in range(3, 7): #3から7まで処理を繰り返す
print(i)
for i in range(0, 10, 2): #0から10まで2ずつカウントアップして処理を繰り返す
print(i)
for pref in ["東京", "神奈川", "栃木", "埼玉"]: #配列の要素分処理を繰り返す
print(pref)
コメント