Ifの条件に使えるもの
はじめての人がつまずきやすいのは、「ifの条件には何を書けばいいの?」というところ。結論はシンプルで、条件には「True(真)かFalse(偽)を返すもの」なら何でも使えます。比較だけじゃなく、文字列のメソッドなども条件に使えるんです。
ブール値と条件式の基本
- ブール値(True/False):
プログラムが「はい/いいえ」を判断するための特別な値。Trueなら実行、Falseならスキップ。 - 比較は一例:
x < 10やname == "Taro"は、評価すると必ずTrueかFalseになります。
x = 7
if x < 10: # Trueなので中が実行される
print("10未満です")
Python- 関数・メソッドもOK:
isdecimal()やstartswith()のように、結果がTrue/Falseになるものは条件式に使えます。
文字列メソッドで条件判定
数字だけかを判定する(isdecimal)
- ポイント:
文字列が「全部が0〜9の数字」でできていればTrue。1文字でも数字以外が混ざるとFalse。
print("123".isdecimal()) # True
print("12a".isdecimal()) # False
print("0123".isdecimal()) # True(全角数字もOK)
Pythonアルファベットだけか(isalpha)
- ポイント:
文字列が「全部が文字」であればTrue。数字や記号が混ざるとFalse。
print("abc".isalpha()) # True
print("abc123".isalpha()) # False
Python英数字だけか(isalnum)
- ポイント:
文字と数字だけならTrue。空白や記号があるとFalse。
print("abc123".isalnum()) # True
print("abc-123".isalnum()) # False(-が含まれている)
Python先頭や末尾で判定(startswith / endswith)
- ポイント:
文字列が特定の語で始まる/終わるかを確認。
s = "hello_world.py"
print(s.endswith(".py")) # True
print(s.startswith("hello")) # True
Python例題で身につける
例題1:入力が数字なら足し算、そうでなければ注意
a = input("1つ目の数字を入力してください: ")
b = input("2つ目の数字を入力してください: ")
if a.isdecimal() and b.isdecimal():
# 文字列を整数に変換して計算
total = int(a) + int(b)
print("合計は", total)
else:
print("数字だけを入力してください")
Python- 学び:
andで2つの条件を同時に満たすかチェック。isdecimal()で数字か判定 →int()で数値に変換。
例題2:ユーザー名のチェック(英数字のみ、10文字以内)
username = input("ユーザー名を入力してください: ")
if username.isalnum() and len(username) <= 10:
print("登録できます")
else:
print("英数字のみ、10文字以内で入力してください")
Python- 学び:
isalnum()で英数字だけか判定。len()で文字数をチェック。- 条件を組み合わせて「ルール」を表現。
例題3:ファイル拡張子で動作を切り替える
filename = input("ファイル名を入力してください: ")
if filename.endswith(".txt"):
print("テキストとして読み込みます")
elif filename.endswith(".csv"):
print("CSVとして読み込みます")
else:
print("未対応の形式です")
Python- 学び:
if / elif / elseで分岐を増やす。endswith()で拡張子を安全に判定。
つまずきやすいポイント
- 数字判定の違いに注意:
isdecimal()は「10進数字のみ」。通貨記号や上付き・下付き数字などが混ざるとFalse。初心者は「普通の数字だけ?」と覚えてOK。 - 空白や記号が混じると落ちる:
isalnum()はハイフン、空白、ピリオドが入るとFalse。IDやユーザー名の仕様次第で許可したい記号があるなら、個別にチェックが必要。
s = "user-name"
print(s.isalnum()) # False(-があるため)
Python- 数値変換は判定のあと:
いきなりint(a)すると、数字じゃない場合にエラー。必ずisdecimal()などで確認してから変換する。
ミニ演習(手を動かす用)
- 演習1:年齢入力のバリデーション
age = input("年齢を数字で入力してください: ")
if age.isdecimal() and 0 <= int(age) <= 120:
print("入力ありがとうございます")
else:
print("0〜120の数字で入力してください")
Python- 演習2:パスワードの簡易チェック(8文字以上、英数字のみ)
pwd = input("パスワードを入力してください: ")
if len(pwd) >= 8 and pwd.isalnum():
print("OK")
else:
print("8文字以上で、英数字のみを使ってください")
Python- 演習3:メッセージが「OK」から始まるか判定
msg = input("メッセージ: ")
if msg.startswith("OK"):
print("承認しました")
else:
print("形式が違います")
Pythonまとめと次の一歩
- まとめ:
ifの条件は「True/Falseを返すもの」なら何でも使える。比較演算子だけでなく、文字列メソッド(isdecimal,isalpha,isalnum,startswith,endswithなど)を使うと、入力チェックや分岐がぐっと楽になります。 - 次の一歩:
実際に入力を変えてどんなときにTrue/Falseになるか試す。わからなくなったら「印字して確かめる」を習慣に。
s = input("入力: ")
print("isdecimal:", s.isdecimal())
print("isalpha:", s.isalpha())
print("isalnum:", s.isalnum())
Python