メインコンテンツへスキップ
  1. 第01講 プログラミングAの復習/

Pythonの基本

条件分岐 繰り返し コマンドライン引数
目次

基本文法
#

コメント
#

教科書 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つの値を持つデータ型です. 真偽値は条件分岐や繰り返しの制御に使われます.

また,数値や文字列も真偽値として扱うことが可能です. 数値の場合,0Falseとして扱われ,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:
    条件12 が偽の場合に実行するコード

論理演算
#

教科書 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を加える.
12... # 途中省略
1112>>> 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