
ゆうき( @BASEBALLY15 )です^^
C言語では,条件を分ける時にswitch文を使うのですが,
Pythonでswitch文を使う場合,どうすればいいのですか・・・?
実は,Pythonには,switch文がありません.
そうなんですか!?
そこで,今回はswitch文に替わる方法をご紹介します.

目次
そもそも,switch文とは?
switch文は,C言語などで,条件によって複数の処理に分けたいときに使われます.
例えば,このように分かれるときに何層にも分かれるときにswitch文を使います.

C言語の場合,switch文はこのような構成になります.
~C言語の場合~
int ncommand;
switch (ncommand) {
case 1:処理内容
case 2:処理内容
case 3:処理内容
・・・
}
switch文に替わる方法とは?
前回に,AIで自分の顔と他人の顔を判定しました.
その時に,既にニューラルネットワークで学習させた場合と,
まだ学習させていない場合に分けて処理を行いました.
その時に,今回ご紹介するswitch文に替わる方法が使われています.
それでは,switch文の替わりになるコードを見ていきましょう⤵
ライブラリ
import numpy as np
#irisのデータを使うために用意
import seaborn as sns
sns.set_style("whitegrid")
#グラフを表示するためのライブラリ
import matplotlib.pyplot as plt
%matplotlib inline
コード(Today’s Code)
今回は,seabornに入っている,irisのデータを使います.
#irisのデータを読み込む
iris_df = sns.load_dataset("iris")
#表示
iris_df
sepal_length | sepal_width | petal_length | petal_width | species | |
---|---|---|---|---|---|
0 | 5.1 | 3.5 | 1.4 | 0.2 | setosa |
1 | 4.9 | 3.0 | 1.4 | 0.2 | setosa |
2 | 4.7 | 3.2 | 1.3 | 0.2 | setosa |
3 | 4.6 | 3.1 | 1.5 | 0.2 | setosa |
4 | 5.0 | 3.6 | 1.4 | 0.2 | setosa |
条件ごとの処理を決めよう!
結論:if文を使います!
それでは,コードを見ていきましょう⤵
まずは,条件ごとにどのような処理にするのかを決めます.
#入力された結果によって場合分けする
print("a:折れ線グラフを表示します")
print("b:ヒストグラムを表示します")
print("c:その他のグラフを表示します")
#改行
print()
#入力画面で選択できるようにする
n = str(input("『a』,『b』,『c』のいずれかを選択してください→"))
print(n)
このコード内で
n = str(input(“『a』,『b』,『c』のいずれかを選択してください→”))
と書くことで,このように入力画面で自由に選択できるようになります.

次に,条件ごとに処理を分けます.
if文で,条件ごとに処理を分けよう!
条件1:aを選択したとき
if n == "a":
iris_df.plot(legend=True, figsize=(12,4))
#保存
plt.savefig("plot.png")

条件2:bを選択したとき
elif n == "b":
iris_df.hist(bins=10)
#保存
plt.savefig("hist.png")

条件3:cを選択したとき
条件3では,さらに2つの条件に分けます.
1つ目の条件が,『ヒートマップの表示』で,
2つ目の条件が,『箱ひげ図の表示』です.
elif n =="c":
print()
print("1:ヒートマップを表示します")
print("2:箱ひげ図を表示します")
print()
k = int(input("『1』か『2』を選択してください→"))
print()
#もし,1を選択したとき,
if k == 1:
#ヒートマップを表示
sns.heatmap(iris_df.corr(), annot=True)
plt.savefig("heat.png")
#もし,2を選択したとき,
elif k == 2:
#ボックスプロットを表示
sns.boxplot(data=[iris_df.sepal_length,
iris_df.sepal_width,
iris_df.petal_length,
iris_df.petal_width])
plt.savefig("box.png")
k=1を選択したとき⤵

k=2を選択したとき⤵

このように,if文を上手く使うことで,
条件ごとにグラフを表示させることが出来ました^^
終わりに
Pythonで条件ごとに処理を行いたい場合,
switch文の替わりにif文を使うことが分かりました.
C言語を勉強をしたことがある方は,「結局,if文かよ!」と思うかもしれませんが,
Pythonにはswitch文がないので,if文を使うしかないのです!
今回の記事に間違いがあれば,どうか「Q &A」で教えて頂けると助かります.
今後も,Pythonを勉強する中で,疑問に感じたコードなどを投稿していきます^^
それでは・・・