Python サンプル集 |
Visual Basic 中学校 > Python サンプル集 > Python サンプル集目次 >
if を使用した条件判断
2023/1/15
→ C# のサンプルに切り替える → Visual Basic のサンプルに切り替える
目次
- 変数 value の値が 5 なら、処理を実行する
- 変数 value の値が 'こんにちは' なら、処理を実行する
- 変数 value の値が True なら、処理を実行する
- 関数のような条件判断(if 条件演算子)
- 条件が成立していないなら、別の処理を実行する。(else)
- if の処理は書かないで、elseの処理だけ書く
- 複数の条件に応じてそれぞれ別の処理を実行する (elif)
- 変数 value の値が 5 ではないなら、処理を実行する
- 条件を反転させる (not)
- x == 5 で かつ y == 8 なら、処理を実行する (and)
- x == 5 か または y == 8 なら、処理を実行する (or)
- x が 5 でなく、8 でもないなら、処理を実行する
- x が 5以上なら、処理を実行する (>=)
- x が 5より大きいなら、処理を実行する (>)
- x が 5以下なら、処理を実行する (<=)
- x が 5より小さいなら、処理を実行する (<)
- x が 5 ~ 12 の間なら、処理を実行する
- x と y が同じインスタンスなら、処理を実行する(is)
- リストの要素が同じなら、処理を実行する
- 文字列に 'A' を含むなら、処理を実行する
- 文字列が 'ベルギー' か 'オランダ' か 'ルクセンブルグ' なら、処理を実行する
- 文字列が '徳川家康' か '徳川家光' なら、処理を実行する(正規表現)
- 文字列が 0文字(=空文字)なら、処理を実行する
- 文字列が 0文字(=空文字) か None なら、処理を実行する
- 文字列が 0文字(=空文字)か、スペースのみか、None なら処理を実行する
- 文字列が 'france' なら大文字でも小文字でも、処理を実行する
- 文字列が 'リンゴ' なら ひらがな でも カタカナ でも、処理を実行する
- 変数が None なら、処理を実行する
- 変数が None ではないなら、処理を実行する
- 変数が指定した型なら、処理を実行する (isinstance)
- 変数が指定した型で、プロパティも一致すれば、処理を実行する
- 変数が指定した型でなければ、処理を実行する (not isinstance)
- 条件判断と同時に変数に代入する
変数 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 は等価です。')
文字列が 'リンゴ' なら ひらがな でも カタカナ でも、処理を実行する
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} が生成されました。')