try/exceptを使い、elseを使わずにValueErrorを処理する方法が分かりません
例えば13の選択肢をユーザーに選択させるプログラムを書いて、3以外の数字 ループ続行
・1&2 ループ続行
・1
・文字 ループ続行
・3 終了
という4つの処理をしたい時サンプルコード1だとValueErrorが発生し、サンプル2ではValueErrorは回避できるものの、1~3以外の数字を入力した際にループが終了してしまいます。
サンプルではinputを先に数値として受け取るか後に受け取るかで試したのですがどちらもうまくいきません。
どうすれば4つ全ての処理を正しくできるのでしょうか?
python
1"""サンプル1""" 2def main() 3 i = 0 4 while i < 4 5 number = int(input("1~3の数字を入力")) 6 if number == 1: 7 print("おはよう") 8 elif number == 2: 9 print("こんにちは") 10 elif number == 3: 11 print("さようなら") 12 break 13 else: 14 print("1~3の数字を入力してください") 15 continue 16 try: 17 i = number 18 except ValueError: 19 print("数字を入力してください") 20 continue 21 22if __name__ == "__main__": 23 main()
python
1"""サンプル2""" 2def main() 3 i = 0 4 while i < 4 5 number = input("1~3の数字を入力") 6 try: 7 i = int(number) 8 except ValueError: 9 print("数字を入力してください") 10 continue 11 if number == 1: 12 print("おはよう") 13 elif number == 2: 14 print("こんにちは") 15 elif number == 3: 16 print("さようなら") 17 break 18 else: 19 print("1~3の数字を入力してください") 20 continue 21 22if __name__ == "__main__": 23 main()
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/23 01:56