基本文法 #
コメント #
教科書 p.17(Lesson 2)Pythonでは #
以降の文字列はコメントとして扱われます.
コメントはプログラムの説明やメモを書くために使います.
型 #
文字列 #
教科書 p.20(Lesson 2)Pythonでは文字列はシングルクォート '
またはダブルクォート "
で囲みます.
文字列中に改行を含めたい場合は,シングルクォート3つ('''
)またはダブルクォート3つ("""
)で囲みます.
>>> s1 = 'Hello, World!' # シングルクォートで囲まれた文字列
>>> s1
'Hello, World!'
>>> s2 = "Hello, World!" # ダブルクォートで囲まれた文字列
>>> s2 # ダブルクォート,シングルクォートで囲まれた文字列は同じ
'Hello, World!'
>>> s3 = """改行を含む文字列.
... 途中で改行できます.""" # 3つのダブルクォートで囲まれた文字列は改行を含められる.
>>> s3
'改行を含む文字列.\n改行できます.'
>>> s4 = s1 + '\n' + s2 # 文字列を繋げるには `+` を使う(文字の連結).
>>> s4
'Hello World\nHello World'
数値 #
教科書 p.21(Lesson 2)Pythonでの数値は整数と浮動小数点数,虚数があります. これらの数値はダブルクォートやシングルクォートでは囲みません.囲んでしまうと文字列として扱われます. 数値は,四則演算や比較演算を行うことができます.
- 整数(
int
型)42
は42の整数を表します.
- 浮動小数点(
float
型)3.14
は3.14の浮動小数点数を表します.
- 虚数(
complex
型)3+4j
は実部が3,虚部が4の複素数を表します.
数値は2進数(binary),8進数(octal),16進数(hexadecimal)で表現することもできます.
- 2進数は
0b
で始まる(binaryのb
). - 8進数は
0o
で始まる(octalのo
). - 16進数は
0x
で始まる(hexadecimalのx
).
>>> i = 42 # 整数
>>> f = 3.14 # 浮動小数点数
>>> c = 3 + 4j # 複素数
>>> i + c
(45+4j)
>>> i * f
131.88
>>> binary = 0b1001 # 2進数の1001
>>> print(binary) # 何も指定しなければ10進数で表示される.
9 # 2進数の1001は10進数の9に対応する.
>>> octal = 0o1001 # 8進数の1001
>>> print(octal)
513 # 8進数の1001は10進数の513に対応する.
>>> hex = 0xff # 16進数のff
>>> print(hex)
255 # 16進数のffは10進数の255に対忋する.
>>> 0o10+0xf+0b1 # 異なる進数の値でも計算できる.
24
>>> 0o8 # 8進数には8が含まれないためエラーになる.
File "<stdin>", line 1
0o8
^
SyntaxError: invalid digit '8' in octal literal
真偽値(bool値) #
教科書 p.62(Lesson 4)真偽値とは,True
または False
の2つの値を持つデータ型です.
真偽値は条件分岐や繰り返しの制御に使われます.
また,数値や文字列も真偽値として扱うことが可能です.
数値の場合,0
がFalse
として扱われ,0
以外はTrue
として扱われます.
文字列の場合は空文字列(''
)が False
として扱われ,それ以外は True
として扱われます.
真偽値 | True |
False |
---|---|---|
数値 | 0 以外 |
0 |
文字列 | 空文字以外 | 空文字('' ) |
型の確認 #
値の型を確認するには,type
関数を使います.
>>> type(42) # 42は int 型
<class 'int'>
>>> type(3.14) # 3.14は float 型
<class 'float'>
>>> type(3+4j) # 3+4jは complex 型
<class 'complex'>
>>> type('30') # '30'はシングルクォートで囲んでいるため str 型になる.
<class 'str'>
>>> s = "Hello World"
>>> type(s) # 変数を与えても型を確認できる.
<class 'str'>
>>> type(True)
<class 'bool'>
変数 #
教科書 p.30(Lesson 3)変数はデータに名前を付けられる仕組みです. データにわかりやすい名前を付けることで,プログラムを読みやすくすることができます. 例えると,データに名前が付けられた箱に入れる,中学,高校における数学の \(x\) や\(y\)のようなもの,データに名札をつけるといった感じです.
変数に値を代入するには,変数名 = 値
のように書きます.
変数名に利用できる文字は,アルファベット,数字,アンダースコア(_
)からなり,数字で始まってはいけません.
また,大文字小文字を区別します.
条件分岐 #
教科書 p.60(Lesson 4)Pythonでは条件分岐に if
文を使います.
if
文の後ろに条件を書き,条件が真の場合の処理内容をインデント(字下げ)して書きます.
複数の処理を行いたい場合は,同じ量だけインデントして,処理を書いていきます.
同じ量のインデントが続く限り,処理が実行されます.
この同じ量のインデントで書かれた処理の集まりをブロックと呼びます.
条件が偽の場合に実行するコードは,else
文を使って書きます.
実行する命令の範囲はインデントで指定します.
条件が真になるとは,条件式が True
と評価されることを指します.
if 条件1:
条件1が真の場合に実行するコード
elif 条件2:
条件2が真の場合に実行するコード
else:
条件1,2 が偽の場合に実行するコード
論理演算 #
教科書 p.71(Lesson 4)and
演算子- 両方の条件が真の場合に真を返す.
or
演算子- どちらかの条件が真の場合に真を返す.
not
演算子- 条件を反転させる.
pass
#
if
文の次の行は必ずインデントした上で,何らかの命令が必要です.
何もする必要がない場合は,pass
文を使います.
if 条件: # 条件が真の場合に何もしない.
pass
繰り返し #
Pythonでは繰り返しに for
文と while
文を使います.
for
文
#
教科書 p.75(Lesson 4)
Python での繰り返し処理の一つである for
文は以下のように書きます.
for 変数 in 繰り返し処理できる仕組み:
繰り返し処理
for
文は,リストやタプル,文字列などの繰り返し処理できる仕組み
(イテレータ; iterator)
を使って繰り返し処理を行います.
繰り返し処理
の範囲はインデントで指定します.
繰り返し処理できる仕組み
の一つに range
関数があります.
range
関数は,for i in range(回数)
のようにfor文で用いると,指定した
回数`だけ繰り返し処理を行います.
>>> for i in range(3): # 3回繰り返す.0, 1, 2 が順番にiに代入される.
... print(i)
0
1
2
>>> for i in range(1, 3) # 開始値と終了値も指定できる.
... print(i)
1
2 # iが3になると繰り返し処理が行われる前に終わるため,3は出力されない.
>>> for i in range(1, 4, 2) # 開始値,終了値,間隔を指定できる.
... print(i)
1
3 # 開始値1から終了値4まで,2ずつ増加する.
range(開始値, 終了値, 間隔)
終了値
は必ず指定する.開始値
が省略されると0
が指定されたことになる.間隔
が省略されると1
が指定されたことになる.間隔
に負数を指定することもできる.間隔
に少数は指定できない.
while
文
#
教科書 p.79(Lesson 4)
Python でのもう一つの繰り返し処理である while
文は以下のように書きます.
while 条件:
繰り返し処理
while
文は条件
がTrue
の間,繰り返し処理
を行います.
繰り返し処理
の範囲はインデントで指定します.
i = 1
>>> while i <= 12: # iが12以下の間,繰り返す.
... print(i, "月")
... i = i + 1 # iに1を加える.
1 月
2 月
... # 途中省略
11 月
12 月
>>> while i <= 12: # iが12以下の間,繰り返す.
... print(i, "月")
... i = i + 1 # もし,インデント量が異なるとエラーになる.
File "<stdin>", line 3
i = i + 1
^
IndentationError: unindent does not match any outer indentation level