パソコン ブログ

【 Python 】条件分岐(if文)

更新日:

今回は、Pythonにおける条件分岐について記事にしたいと思います。

Pythonのインストールが終わってない方はこちら。

IDLEで実行?なにそれ?美味いの?って方はこちら。

もし何々ならば

ifは英語でいうと「もし」です。

プログラムでは、条件分岐と言います。

もし、Aならばコレをしなさい。BもしくはCならコレを、DかつEならコレを、全てに当てはまらなかったらコレをしなさい。

というような命令をすることができます。

とりあえず、何も考えずに以下のコードをPythonのIDLEへコピペして実行してみてください。

test.py



if str.isdecimal(x):

    x = float(x) # ifの条件を満たしている場合

    print (x) # ifの条件を満たしている場合

else: # 条件を満たしていない場合
    
    print ("数字って言ったでしょ")


結果はいかがでしたでしょうか?

プログラムの途中で、コメントアウトしたい場合、#に続いてコメントを入れられます。

解説編

日本語訳:1行目

x = input("何か数字を入力してください: ")

「何か数字を入れてください:」と表示させ、入力された文字列をxという変数に入れなさいという命令です。

input文で入力された文字や数字は、必ずstr型で変数に代入されます。

日本語訳:2行目

if str.isdecimal(x):

「もしxが半角数字であれば」です。

str.isdecimal()というのは、()の中に入れられた数値や文字もしくは変数が半角数字、全角数字であればtrue(真)を返し、そうでなければfalse(偽)を返すというPythonの関数です。

日本語訳:3・4行目

x = float(x)
print (x)

「xのデータ型を浮動小数点型にし、Xを出力しなさい」です。

インデントされていますので、3、4行目はif文の条件を満たす場合であると判断できます。


日本語訳:5行目

else:

「そうでなければ」です。

日本語訳:6行目

 print ("数字って言ったでしょ")

「数字って言ったでしょ」を出力しなさい。

こんな感じになるわけです。

if文の構文


if 条件式:
(インデント)何らかの命令
else:
(インデント)何らかの命令
が基本となります。


こんなことも。

test.py



x = input("何か数字を入力してください: ")

if str.isdecimal(x):

    x = float(x) # ifの条件を満たしている場合

    print (x) # ifの条件を満たしている場合

    if x >= 10 and x < 1000:

        print ("てか、一桁でいいじゃん")

    elif x < 10:

        print ("横着者バンザイ")

    else:

        print ("4桁以上ですか・・・")
        
else: # 条件を満たしていない場合
    
    print ("数字って言ったでしょ")


追加された部分


    if x &gt;= 10 and x &lt; 1000:
 
        print ("てか、一桁でいいじゃん")
 
    elif x &lt; 10:
 
        print ("横着者バンザイ")
 
    else:
 
        print ("4桁以上ですか・・・")


もし、xが10以上かつ1000未満なら「てか、一桁でいいじゃん」を出力し、xが10未満なら「横着者バンザイ」を出力し、それ以外なら「4桁以上ですか・・・」を出力しなさい。というのが追加されています。

if文の構文2


if 条件式A:
  条件式Aを満たす場合の何らかの処理
elif 条件式B:
  条件式Bを満たす場合の何らかの処理
else:
  全ての条件式に当てはまらない場合の何らかの処理


勘のいい方は気がついていると思いますが、elifを増やすことで、どんどん条件を細かくすることが出来ますヨ!

else:はifの条件に当てはまらない場合に作動するものですので、省いても特に問題ありません。

難関場所

ここで難しいのは、Trueを返す、Falseを返すという言葉と、突然出てきたstr.isdecimal()という関数だと思います。

TrueやFalseを返すというのはプログラミングをする上で、よく使用される言葉です。

今回の場合は「ifの条件を満たすか満たさないか」と言い換えることが出来ます。

私が上手い例を思いつかなかっただけで、str.isdecimal()はとりあえず、現時点では考える必要はありません。

最後に

条件分岐であるif文は、後述するループ(繰り返し)に並んで重要な構文です。

しっかりマスターしておきましょう!

最後までお読みいただきありがとうございました!


  • この記事を書いた人

こなゆき

パーフェクト趣味人。 知的好奇心MAX。 ゲーム・パソコン全般・科学・DIY・オーパーツとか怪しげなものも大好物。

-パソコン, ブログ

Copyright© さぶかるぐらし , 2019 All Rights Reserved.