制御構文を理解し、条件分岐や繰り返しを使う
if 構文の理解と、条件分岐の使い方
・データや変数鵜などの状態によって処理を分ける
・例えば、数値のデータが偶数雨の場合にだけ出力する
・重要な制御構文の1つ
>>> age = 30
>>> if age < 6:
... print('未就学')
... elif age < 20:
... print('未成年')
... else:
... print('成人')
...
成人
>>>
条件式と理論演算子の理解と使い方
• 条件式とは、if文の中で使う式のこと
• 条件式が評価され、真か偽のいずれかになる • 真をTrueとなり、偽はFalseとなる
・比較演算子の種類
== 等しい
!= 等しくない
< 右より小さい
> 右より大きい
<= 右以下
>= 右以上
is 同一オブジェクト
is not 同一ではない
in 内包しているか
not in 内容していないか
>>> 20 > 10
True
>>> 20 < 10
False
>>> 20 == 10
False
>>> 20 != 10
True
>>> 20 >= 20
True
・論理演算子
x or y x または y のどちらか 1 つが True なら Trueそれ以外は False
x and y x と y がどちらも True なら Trueそれ以外は False
not x x が True なら False、 x が False なら True
>>> True and True
True
>>> True and False
False
>>> True or False
True
>>> False or False
False
真偽値の理解と、論理演算の使い方
・ブール型は、TrueとFalseの2つを持つ
・ 真をTrue、偽をFalse
・ False とみなされるもの
ブール値 False
null None
整数のゼロ 0
float のゼロ 0.0
空文字列 ' '
空リスト [ ]
空タプル ( )
空辞書 { }
null None
整数のゼロ 0
float のゼロ 0.0
空文字列 ' '
空リスト [ ]
空タプル ( )
空辞書 { }
空集合 set( )
空集合 set( )空集合 set( )
>>> bool(20)
True
>>> bool('abc') True
>>> bool(0) False
>>> bool(0.0)
False
>>> bool('') False
>>> bool([])
False
>>> bool(False)
False
>>> bool(None)
False
for 構文のの理解と繰り返し処理の使い方
・ループ処理ともいわれ、リストなどのコンテナ内の要素を順次処理する
・繰り返し可能なオブジェクトを直接繰り返し処理に使う
・for .. in .. 構文の処理はブロック化し、処理ブロックはインデントで示す
>>> total = 0
>>> for number in [1, 3, 10, 2]:
... total = total + number
...
>>> print(total)
16
・ 無限に続けたい場合の繰り返し処理
>>> number = 1
>>> while number < 50:
... number = number * 2
...
>>> print(number)
64
シーケンスの種類を理解し、for 構文での使い方
・コンテナのすべては、for文のinの後に書ける
・これらを、イテラブルオブジェクトという
・コンテナの中で ( list 型・tuple 型 ) 順序を管理しているコンテナをシーケンスと呼ぶ
# シーケンスをfor文で使う
>>> for item in (2021, 'August'):
... print(item)
...
2021
August
# 文字列をfor文で使う
>>> for s in 'python':
... print(s)
...
p
y
t
h
o
n
# range型をfor文で使う
>>> list(range(11))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> total = 0
>>> for i in range(10):
... total += i # total = total + iと同じ意味
>>> print(total)
55
rangeの使い方
• rangeオブジェクトは、数列を作る組み込み関数
• 1つの数値を渡すと、0から、与えた数値-1までの数列が生成
• 2つの数値を渡すと、1つ目の数値から2つ目に与えた数値-1までの
数列
• 3つの数値を渡すと、2つの数値を渡したときと同じ範囲で、3つ目の段階の数列
>>> list(range(11))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> list(range(1, 11))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> list(range(1, 11, 2))
[1, 3, 5, 7, 9]
複数要素を返すシーケンス
・複数の要素を複数の変数に1回の操作で代入すること=アンパック代入
・' 複数の変数名 = 複数要素 ' という構文を使い、左辺と右辺の要素数は同じである必要がある
>>> year, month = (2021, 'August')
>>> year
2021
>>> month
'August'
>>> year, month, day = (2021, 'August', 30)
>>> print(year, month, day)
2021 August 30
>>>
要素のペアを辞書で確認
• 辞書は、キーと値のペアを持つ
• キーと値の組合せペアでデータとして利用することが多い
• 辞書を直接for文で繰り返すとキーが取得できる
• しかし、キーと値のペアでまとめて処理した方がわかりやすい
>>> bean = {'name': 'Mocha Mattari', 'country': 'Yemen'}
>>> for key in bean:
... print(key, bean[key])
...
name Mocha Mattari
country Yemen
>>>
>>> bean = {'name': 'Mocha Mattari', 'country': 'Yemen'}
>>> for key, value in bean.items(): # itemメソッドを使う
... print(key, value)
...
name Mocha Mattari
country Yemen
>>>
>>> bean = {'name': 'Mocha Mattari', 'country': 'Yemen'}
>>> bean.items()
dict_items([('name', 'Mocha Mattari'), ('country', 'Yemen')])
>>> list(bean.items())
[('name', 'Mocha Mattari'), ('country', 'Yemen')]
>>>
enumerateの例と使いどころ
・要素の順番に0から数値を返す仕組みがある
・組み込み関数enumerateを使う
・要素の番号(インデックス)と要素の値を返す
>>> for i, bean in enumerate(['Mocha', 'Kona', 'Mandeline', 'Traja']):
... print(i, bean)
...
0 Mocha
1 Kona
2 Mandeline
3 Traja
>>>
break と continue の理解
・for文の途中で処理を中断したい場合は、breakキーワードを使う。
>>> total = 0
>>> for number in [1, 3, 10, 2]:
... total = total + number
... break
...
>>> print(total)
1
・ for文ブロック内の処理を実行せずに、次の繰り返し要素を取り出す。
・continueキーワードを使って、次の要素を取り出す。
>>> total = 0
>>> for number in [1, 3, 10]:
... print(number)
... continue
... total = total + number # ここスキップされる ...
1
3
10
>>> print(total)
0
・処理を途中で止めたり、グロック内の処理を行わない場合は、条件分 岐との組合せで使われる
• 例えば、1から20までの数列に対して、偶数のみ加算し、計算を15で止めるという場合
>>> total = 0
>>> for i in range(1, 21):
... if i % 2 == 1: # 奇数であるか判定
... continue
... if i > 15:
... break
... total += i
...
>>> print(total)
56
>>>
# Pythonの組み込み関数を使う
>>> sum(range(2, 16, 2))
56
>>>
最後までお読みいただき、本当にありがとうございます。 明日も継続して学習のアウトプットを続けていきたいと思いますので、また覗きにきていただけると嬉しいです! 一緒に学べる仲間が増えると、もっと喜びます!笑 これからも宜しくお願い致しますm(__)m