ヘッダー
Python サンプル集
 

if を使用した条件判断

2023/1/15

→ C# のサンプルに切り替える → Visual Basic のサンプルに切り替える

目次

 

変数 value の値が 5 なら、処理を実行する

value = 5

if value == 5:
    print('valueは5です。') #←これが表示されます。

 

これでもできます。

value = 5

if value == 5: print('valueは5です。') #←これが表示されます。

 

 

変数 value の値が 'こんにちは' なら、処理を実行する

value = 'こんにちは'

if value == 'こんにちは':
    print('valueは「こんにちは」です。') #←これが表示されます。

 

 

変数 value の値が True なら、処理を実行する

value = True

if value:
    print('valueはTrueです。') #←これが表示されます。

メモ:if value == True:と書いても同じです。

 

 

関数のような条件判断(if 条件演算子)

value = 5

result = 'Fiveです。' if value == 5 else 'Fiveではありません。'

print(result)

 

 

 

条件が成立していないなら、別の処理を実行する。(else)

value = 123

if value == 5:
    print('valueは5です。')
else:
    print('valueは5ではありません。') #←これが表示されます。

 

 

if の処理は書かないで、elseの処理だけ書く

value = 123

if value == 5:
    pass #何もしません。
else:
    print('valueは5ではありません。') #←これが表示されます。

 

 

複数の条件に応じてそれぞれ別の処理を実行する (elif)

value = 66

if value == 5:
    print('valueは5です。')
elif value > 10:
    print('valueは10より大きいです。') #←これが表示されます。
elif value > 50:
    # 10より大きい場合、1つの上のelifが実行されるので、このelifの処理はvalueの値に関係なく絶対に実行されません。 
    print('valueは50より大きいです。')
else:
    print('valueは 5 ではないし、10より大きくもないです。')

 

 

変数 value の値が 5 ではないなら、処理を実行する

value = 123;

if value != 5:
    print('valueは5ではありません。') #←これが表示されます。

 

 

条件を反転させる (not)

条件式に not を付けると結果が判定します。次の例は、実行環境がLinuxでなければ処理を実行します。

import platform

if not (platform.system() == 'Linux'):
    print('実行環境はLinuxではありません。') #←これが表示されます。

メモ:この例では、if platform.system() != 'Linux': と書いても同じです。

 

 

x == 5 で かつ y == 8 なら、処理を実行する (and)

x = 5
y = 8 

if x == 5 and y == 8:
    print('x は 5 で かつ y は 8 です。') #←これが表示されます。

 

 

x == 5 か または y == 8 なら、処理を実行する (or)

x = 123
y = 8 

if x == 5 or y == 8:
    print('x が 5 か または y が 8 か またはその両方です。') #←これが表示されます。

 

 

x が 5 でなく、8 でもないなら、処理を実行する

x = 123

if x != 5 and x != 8:
    print('x が 5 ではないし、8 でもありません。') #←これが表示されます。

 

これでもできます。

x = 123

if not (x == 5 or x == 8):
    print('x が 5 ではないし、8 でもありません。') #←これが表示されます。

 

 

x が 5以上なら、処理を実行する (>=)

x = 78

if x >= 5:
    print('x は 5 以上です。') #←これが表示されます。

メモ:「以上」にはその数を含みます。たとえば、5以上の一番小さい数は5です。

 

 

x が 5より大きいなら、処理を実行する (>)

x = 78

if x > 5:
    print('x は 5 より大きいです。') #←これが表示されます。

メモ:「より大きい」にはその数を含みません。たとえば、5より大きい一番小さな整数は6です。

 

 

x が 5以下なら、処理を実行する (<=)

x = -45

if x <= 5:
    print('x は 5 以下です。') #←これが表示されます。

メモ:「以下」にはその数を含みます。たとえば、5以下の一番大きい数は5です。

 

 

x が 5より小さいなら、処理を実行する (<)

x = -45

if x < 5:
    print('x は 5 より小さいです。') #←これが表示されます。

メモ:「より小さい」にはその数を含みません。たとえば、5より小さい一番大きな整数は4です。

 

 

x が 5 ~ 12 のなら、処理を実行する

x = 12

if x >= 5 and x <= 12:
    print('x は 5 ~ 12 の間です。') #←これが表示されます。

 

 

x と y が同じインスタンスなら、処理を実行する (is)

x = [1, 2, 3]
y = [1, 2, 3]
z = x

if x is y:
    #これは表示されません。 x と y は内容が同じでも別のインスタンスです。
    print('x と y は同じインスタンスです。')

if x is z:
    #これが表示されます。
    print('x と z は同じインスタンスです。')

 

 

リストの要素が同じなら、処理を実行する

x = [1, 2, 3]
y = [1, 2, 3]
z = x

if x == y:
    #これは表示されます。
    print('x と y の要素は同じです。')

if x == z:
    #これも表示されます。
    print('x と z の要素は同じです。')

メモ:== でのリストの比較では、要素の順序も一致している必要があります。

 

 

文字列に 'A' を含むなら、処理を実行する

value = 'ITALIA'

if 'A' in value:
    print('ITALIA には A が含まれています。') #←これが表示されます。

 

 

文字列が 'ベルギー' か 'オランダ' か 'ルクセンブルグ' なら、処理を実行する

value = 'オランダ'

if value == 'ベルギー' or value == 'オランダ' or value == 'ルクセンブルグ':
    print('ベネルクスです。') #←これが表示されます。

 

これでもできます。

value = 'オランダ'; 

if value in ['ベルギー', 'オランダ', 'ルクセンブルグ']:
    print('ベネルクスです。') #←これが表示されます。

 

 

文字列が "徳川家康" か "徳川家光" なら、処理を実行する(正規表現)

import re

value = '徳川家光'

if re.search('^徳川家[康光]$', value):
    print('徳川家康または徳川家光です。') #←これが表示されます。

 

 

文字列が 0文字(=空文字)なら、処理を実行する

value = '' # 長さ 0 の文字列。「空文字」とも呼びます。

if value == '':
    print('文字列は空文字です。') #←これが表示されます。

メモ:value が None のときは処理は実行されません。

 

 

文字列が 0文字(=空文字) か None なら、処理を実行する

value = ''
#value = None #←Noneで試したい場合

if not value:
    #これが表示されます。
    print('文字列はNoneか空文字です。') 

if value:
    #この例ではこれは表示されません。 value は空文字だからです。
    print('文字列には何か1文字以上あります。※スペースも1文字とみなします。')

 

 

文字列が 0文字(=空文字)か、スペースのみか、None なら処理を実行する

value = '   ' #3つのスペース

if not value or value.isspace():
    print('文字列はNoneか空文字か1つ以上のスペースです。') #←これが表示されます。

 

 

文字列が 'france' なら大文字でも小文字でも、処理を実行する

value = 'frANCE'

if value.lower() == 'France'.lower():
    print('大文字小文字を無視すると文字列は France と等価です。')

 

ドイツ語のエスツェット (ß) と ss を等しいとみなすような比較は下記でできます。 casefold がポイントです。

value = 'Fleiß'

if value.casefold() == 'Fleiss'.casefold():
    print('言語特性を考慮すると Fleiß と Fleiss は等価です。')

参考:Built-in Types — Python 3.11.1 documentation

 

 

文字列が 'リンゴ' なら ひらがな でも カタカナ でも、処理を実行する

import jaconv

value = 'リんゴ'

if jaconv.hira2kata(value) == 'リンゴ':
    print('ひらがな・カタカナを無視すると文字列は リンゴ と等価です。')

メモ:この例を実行するには、jaconv をインストールする方法があります。その一般的な方法はpip install jaconv を実行することです。

メモ:→ jaconv

メモ:ひらがなとカタカナを変換したり比較したりできるPythonの標準的な機能はありません。

 

 

変数が None なら、処理を実行する

value = None

if value == None:
    print('value は None です。') #←これが表示されます。

 

 

変数が None ではないなら、処理を実行する

value = "OK!"

if value != None:
    print('value は None ではありません。') #←これが表示されます。

 

 

変数の値が指定した型なら、処理を実行する (isinstance)

この例は、変数 value の値が DateTime 型であるならメッセージを出力します。(メモ参照)

from datetime import datetime

value = datetime.now()

if isinstance(value, datetime):
    print('value は datetime型 と互換性があります。') #←これが表示されます。

メモ:isinstance 関数は厳密に型が一致していなくても互換性がある型であれば True を返します。たとえば、基底クラスの型 は True と判断します。わかりやすい例では isinstance(value, object) は 常に True です。

 

参考:変数 valueの値 が datetime 型であるか厳密に判断するには type を使用して比較します。

from datetime import datetime

value = datetime.now()

if isinstance(value, object):
    # このメッセージは表示されます。isinstance は 互換性がある型を True と判断するからです。
    print('value の値は object型 と互換性があります。')

if type(value) is object:
    # このメッセージは表示されません。type と is を組み合わせた比較は厳密に判断するからです。
    print('value の値は object型 です。')

if isinstance(value, datetime):
    # このメッセージは表示されます。
    print('value の値は datetime型 と互換性があります。')

if type(value) is datetime:
    # このメッセージは表示されます。
    print('value は datetime型 です。')

 

 

変数が指定した型で、プロパティも一致すれば、処理を実行する

この例は、変数 value が DateTime 型でDayプロパティが1、Hourプロパティが12以上ならばメッセージを出力します。

from datetime import datetime

value = datetime(2024,2,1,15,0,0)

if isinstance(value, datetime) and value.day == 1 and value.hour >= 12:
    #これが出力されます。valueはdayが1でhourが15だからです。
    print('月の初めの日の午後ですね。')

 

 

変数の値が指定した型でなければ、処理を実行する (not isinstance)

この例は、変数 value が DateTime 型と互換性がなければ処理を実行します。

from datetime import datetime

value = 'OK!'

if not isinstance(value, datetime):
    print('value は datetime型 と互換性がありません。') #←これが表示されます。

 

 

条件判断と同時に変数に代入する

この例は、1~6のランダムな数値を生成し、数値によってメッセージを変えます。メッセージには生成された数値を含みます。

import random

i = 0
if (i := random.randint(1, 6)) >= 4:
    print(f'高い数 {i} が生成されました。')
else:
    print(f'低い数 {i} が生成されました。')