Pythonの基本構文#
改行#
Python では、改行が文の区切りとなります。
print("Hello")
print("World")
Hello
World
または、セミコロン(;)で区切ることもできます。
a = 5; b = 3; c = a + b
print(c)
8
文を数行に分けて記述したい場合は、行末にバックスラッシュ(\)を書きます。
total = 123 \
+ 456 \
+ 789
print(total)
1368
コメント(#)#
ハッシュ(#)から行末まではコメントとみなされます。
コメントはプログラムの実行には影響せず、プログラムのコードを読む人に向けたメモや説明のために使われます。
print("Hello") # Helloと表示します
Hello
インデント#
Python ではインデント(行頭の空白文字の数)が重要な意味を持ち、同じ数の空白やタブ文字でインデントされた文がブロックとみなされます。
インデントは通常4個の空白文字を使用します。
同じブロックのコードは同じ量のインデントが必要です:あるブロック(例えば、関数の本体、ループの内部、条件文の内部など)内のすべての行は同じレベルのインデントでなければなりません。
ブロックが終了すると、インデントは元に戻ります:ブロックの最後の行に到達すると、次の行はそのブロックを開始する前のインデントレベルに戻ります。
for i in range(5):
print(i) # ループの内部でインデントされています
if i == 3:
print("Found three!") # 条件文の内部でさらにインデントされています
print("Loop finished") # ループの外で、インデントは元に戻ります
0
1
2
3
Found three!
4
Loop finished
変数#
変数の命名#
Pythonで変数を定義できます。変数とは、プログラムで使いたいメモリ上の値に名前を付けたものです。値を保存したり参照したりするために使用されます。
Pythonで変数の作成は、いくつかのルールがあります。
大文字と小文字を区別する:
chss,Chss,CHSSはすべて異なる名前です。先頭で数字は使えないです。例えば、
1aは無効な変数名です。Pythonの予約語を避けます。
予約語の一覧を表示#
Note
強制ではないですが、可読性を向上するために、できるだけ推奨される命名規則にしたがった方が良いです。
| 対象 | ルール | 例 |
|---|---|---|
| パッケージ | 全小文字 なるべく短くアンダースコア非推奨 | tqdm, requests ... |
| モジュール | 全小文字 なるべく短くアンダースコア可 | sys, os,... |
| クラス | 最初大文字 + 大文字区切り | MyFavoriteClass |
| 例外 | 最初大文字 + 大文字区切り | MyFuckingError |
| 型変数 | 最初大文字 + 大文字区切り | MyFavoriteType |
| メソッド | 全小文字 + アンダースコア区切り | my_favorite_method |
| 関数 | 全小文字 + アンダースコア区切り | my_favorite_funcion |
| 変数 | 全小文字 + アンダースコア区切り | my_favorite_instance |
| 定数 | 全大文字 + アンダースコア区切り | MY_FAVORITE_CONST |
help("keywords")
Here is a list of the Python keywords. Enter any keyword to get more help.
False break for not
None class from or
True continue global pass
__peg_parser__ def if raise
and del import return
as elif in try
assert else is while
async except lambda with
await finally nonlocal yield
代入#
=を使って変数に値を代入する。
a=5
print(a)
print(a+5)
5
10
Advanced
多くのプログラミング言語では、変数自体が型を持ち、メモリ位置が固定されているが、Pythonの場合、変数はただの名前です。
つまり、代入は値をコピーするわけではない、データを入れてあるオブジェクトに名前を付けるだけです。名前はものの参照手段であり、もの自体ではないです。
変数の代入は、メモリ内のどこかにあるオブジェクトに長いヒモで繋がるというイメージです。そのため、CやJAVAのような静的言語では変数の型を明確的に指定しなければないが、Pythonでは型を指定する必要はありません。
#新たに生成したように見えるbは同じ値を指しているので、変数も値そのものもIDは同じになります。
a=5
b=5
print("a:{},b:{},5:{}".format(id(a),id(b),id(5)))
a:4511476144,b:4511476144,5:4511476144
#変数の型が異なるなら、変数IDも異なっています。
a='5'
b=5
print("a:{},'5':{},b:{},5:{}".format(id(a),id('5'),id(b),id(5)))
a:4513949872,'5':4513949872,b:4511476144,5:4511476144