Now Loading...

Pythonで作業を効率化しよう!Python基礎固め②編

Pythonで作業を効率化しよう!Python基礎固め②編

Light Webアルバイトのマキシと言います。 日々の作業の効率化をできるようにするためにPythonを学習しようと思い立ちました。 Pythonはシンプルなコードで初学者にも優しいプログラミング言語で豊富なライブラリを使うことで、自分が1からすべて作るのではなく、効率的にプログラムの作成を進めることができます。 そんな人気の高いプログラミング言語のPythonの基礎からスクレイピングまでの学習のアウトプットを月1で連載していきたいと思います。 1~3回までの内容は自動化に必要な箇所のみを取り上げてきたのですが、基礎の部分を飛ばして進めていたため今回は内容を改めて勉強し直す基礎固め編の第2回になります。 今回は、if文とfor文です。

01if文

01-1.if文の基本的な書き方

if文は他の言語でも用いますがPythonでif文を記述する際はインデント(字下げ)して記述します。
インデントはタブでもスペースでも可能ですが混在する場合はインデントエラーになるので気をつけてください。
タブの場合は環境によって使用できなかったりと変わってくるのでスペースを使用することを推奨します。 Pythonではインデントは半角スペース4つというルールが一般的です。
インデントが終わると、if文の一連の処理は終わります。また条件式の後には、必ず :(コロン)を付けてください。

x = 100
if x > 80:
    print("big")

---------- #出力 ----------
big

if文を記述する際に、条件がいくつかある場合、elifを使って条件を増やすことができます。また、全ての条件を満たさなかった場合の処理は、elseを使って書きます。

x = 60
if x >80:
    print("big")
elif x > 50:
    print("medium")

---------- #出力 ----------
medium

x = 40
if x >80:
    print("big")
elif x > 50:
    print("medium")
else:
    print("small")

---------- #出力 ----------
small

01-2.論理演算子を用いた条件の指定方法

and演算子:両辺の値がTrueの場合にTrue
if 条件式1 and 条件式2:
    条件式1、条件式2がともにTrueの時に実行する処理

x = 50
if (x>=20) and (x<=60):
    print("対象です。")
else:
    print("対象外です。")

---------- #出力 ----------
対象です。

or演算子:両辺の内、少なくとも1つがTrueの場合にTrue
if 条件式1 or 条件式2:
    条件式1、条件式2のいずれかがTrueの時に実行する処理

x = 35
if (x % 3 == 0) or (x % 5 == 0):
    print("3か5の倍数です")
else:
    print("3か5の倍数ではありません")
---------- #出力 ----------
3か5の倍数です

not演算子:not以降の条件式がTrueの時にFalse、Falseの時にTrue
if not 条件式1:
    条件式1がFalseの時に実行する処理

x = 80
if not (x < 100):
    print("100より大きいです")
else:
    print("100より小さいです")

---------- #出力 ----------
100より小さいです

01-3.三項演算子を使用したif文の書き方

三項演算子とは条件分岐を1行で表現するためのものです。 1行で表現できるのでコードを簡潔にすることができます。 ただし、複雑な条件分岐を無理に三項演算子で表現しようとすると、逆に分かりづらくなる場合もあるので注意が必要です。

三項演算子の書き方
x = 100
print("big") if x > 50 else print("small")

---------- #出力 ----------
big

例の値部分の解説

条件成立時の値:print("big")
条件式: x > 50
条件不成立時の値:print("small")

01-4.Pythonの真偽値

Pythonにおいて真偽値(真理値)はbool型のオブジェクトTrueとFalseで表されます。
bool型とは、「真 = True」と「偽 = False」という2値をとるデータ型です。
Pythonではbool型のTrue・False以外のオブジェクトもif文の条件式などでは真偽のいずれかに判定されます。
以下のオブジェクトは偽と判定されます。

  • 偽であると定義されている定数: None と False
  • 数値型におけるゼロ: 0, 0.0, 0j, Decimal(0), Fraction(0, 1)
  • 空のシーケンスまたはコレクション: '', (), [], {}, set(), range(0)

その他のオブジェクトはすべて真と判定されます。

02for文

Pythonのfor文は、イテラブルなオブジェクトから要素を順番に取り出して処理を行うための制御構文になります。
イテラブルなオブジェクトとは「繰り返し可能なオブジェクト」という意味でリスト(配列)やタプル、辞書、セット(集合)などが該当します。

02-1.for文の書き方

for 変数 in イテラブルなオブジェクト:
    処理

items = ("apple","lemon","banana")
for item in items:
    print(item)

---------- #出力 ----------
apple
lemon
banana

items = ["apple","lemon","banana"]
for item in items:
    print(item)

---------- #出力 ----------
apple
lemon
banana

辞書の要素をfor文で処理する
キーをループ処理する方法

キーをループ処理するには、.keys() メソッドを使用します。

for 変数 in dict 型変数.keys():
    処理

items = {
    "apple" : "150",
    "lemon" : "200",
    "banana" : "250"
}
for name in items.keys():
    print(name)

---------- #出力 ----------
apple
lemon
banana

値をループ処理する方法

値をループ処理するには、.values() メソッドを使用します。

for 変数 in dict 型変数 .values():
    処理

items = {
    "apple" : "150",
    "lemon" : "200",
    "banana" : "250"
}
for value in items.values():
    print(value)

---------- #出力 ----------
150
200
250

キーと値をセットにしたループ処理

キーと値をセットでループ処理する場合は、.items() メソッドを使用します。

for キーの変数,値の変数 in dict 型変数.items():
    処理

items = {
    "apple" : "150",
    "lemon" : "200",
    "banana" : "250"
}
for name,value in items.items():
    print(name,value)

---------- #出力 ----------
apple 150
lemon 200
banana 250

02-2.range関数を使用したfor文

for 文でrange() 関数を使うと、指定回数分だけの処理が行われます。

range関数を使用したfor文の書き方
for 変数 in range(繰り返し回数):
    処理

for i in range(5):
    print(i)

---------- #出力 ----------
0
1
2
3
4

範囲を指定して出力する

注意点としてrange() 関数の第2引数で渡した10は含まれません。

for i in range(5,10):
    print(i)

---------- #出力 ----------
5
6
7
8
9

第3引数を使うと、連番ではなく指定したステップごとに出力することも可能です。

for i in range(5,12,2):
    print(i)

---------- #出力 ----------
5
7
9
11

03まとめ

2回にわたりましたPython基礎固め編は以上になります。
今回紹介しましたif文とfor文はよく使われるものです。 ここを抑えておくと以前のExcelの自動化やWebブラウザの自動化の記事をより理解しやすくなると思います。
ぜひ今後のPythonの学習の下地として活用して頂けると嬉しいです。

ご依頼・ご相談はこちら

この記事を書いた人

岸 由真

Front-end Engineer

スタッフ紹介ページへ

Lightning Lightalk
最新記事

Lightning Lightalk
記事一覧はこちら