switch文の替わり

ゆうき( @BASEBALLY15 )です^^

C言語では,条件を分ける時にswitch文を使うのですが,
Pythonでswitch文を使う場合,どうすればいいのですか・・・?

実は,Pythonには,switch文がありません.

そうなんですか!?

そこで,今回はswitch文に替わる方法をご紹介します.

そもそも,switch文とは?

switch文は,C言語などで,条件によって複数の処理に分けたいときに使われます.

例えば,このように分かれるときに何層にも分かれるときにswitch文を使います.

awitch文
(PowerPointで作成)

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_lengthsepal_widthpetal_lengthpetal_widthspecies
05.13.51.40.2setosa
14.93.01.40.2setosa
24.73.21.30.2setosa
34.63.11.50.2setosa
45.03.61.40.2setosa

条件ごとの処理を決めよう!

結論:if文を使います!

それでは,コードを見ていきましょう⤵

まずは,条件ごとにどのような処理にするのかを決めます.

#入力された結果によって場合分けする

print("a:折れ線グラフを表示します")

print("b:ヒストグラムを表示します")

print("c:その他のグラフを表示します")

#改行
print()

#入力画面で選択できるようにする
n = str(input("『a』,『b』,『c』のいずれかを選択してください→"))

print(n)

このコード内で

n = str(input(“『a』,『b』,『c』のいずれかを選択してください→”))

と書くことで,このように入力画面で自由に選択できるようになります.

switch文の入力画面

次に,条件ごとに処理を分けます.

if文で,条件ごとに処理を分けよう!

条件1:aを選択したとき

if n == "a":
    
    iris_df.plot(legend=True, figsize=(12,4))
    
    #保存
    plt.savefig("plot.png")
plot図

条件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を勉強する中で,疑問に感じたコードなどを投稿していきます^^

それでは・・・

Q &A

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA