ユーザー入力を正しい値が返るまで繰り返す方法
概要
input() でユーザーから入力を受け取る際、不正な値(数値を期待しているのに文字列が入力される等)に対してエラーハンドリングし、正しい値が入力されるまで繰り返す方法。
エラーメッセージ
>>> age = int(input("年齢を入力: "))
年齢を入力: abc
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'abc'
原因
- 入力値の型チェックがない:
int()やfloat()への変換前にバリデーションを行っていない - ループによる再入力の仕組みがない: エラー発生時にプログラムがクラッシュし、再入力を求めない
解決策
1. while + try-exceptパターン
| |
2. 関数化して再利用可能にする
| |
関連エラー
関連エラー
Python の他のエラー
この記事は役に立ちましたか?