エラー処理が実行されない
Pythonでカップ麺専用のタイマーを作っています。
inputで時間を入力し、指定の値より超えるとcontinueで返す仕組みです。残りは文字を入力したときの返ってくる処理が円滑にいけば完成なのですが、except ValueErrorではなく、python既存のエラーで処理を返されました。
作成したタイマープログラムのコード
python
1from time import sleep 2import time 3import pygame.mixer 4 5minute_to_second=60 6 7def alert(): 8 print("時間です") 9 Sound() 10 exit() 11 12def Sound(): 13 pygame.mixer.init() 14 pygame.mixer.music.load("Onmtp-Ding04-2.mp3") 15 pygame.mixer.music.play(-1) 16 input() 17 pygame.mixer.music.stop() 18 19while True: 20 print("タイマーを設定する時間を指定してください") 21 minute=int(input("何分に設定するか選択してください。:")) 22 second=int(input("何秒に設定するか選択してください:")) 23 if minute==0 and second==0: 24 print("設定を終了しました。") 25 break 26 27 try: 28 if 0<=minute<=5: 29 wait_time=(minute*minute_to_second)+second 30 else: 31 if 0>minute or 5<minute: 32 print("入力できる数字は0から5までです。") 33 continue 34 except ValueError: 35 print("数字以外は入力しないでください。") 36 37 else: 38 try: 39 if 0<=second<=59: 40 print(str(minute)+"分"+str(second)+"秒にタイマーをセットしました。") 41 sleep(wait_time) 42 else: 43 if 0>second or 59<second: 44 print("入力できる数字は0から59までです。") 45 continue 46 except ValueError: 47 print("数字以外は入力しないでください。") 48 49 alert() 50
該当のエラー表記
python
1タイマーを設定する時間を指定してください 2何分に設定するか選択してください。:h 3Traceback (most recent call last): 4 File "C:\Users\koshishiba\Documents\Python Scripts\timer.py", line 21, in <module> 5 minute=int(input("何分に設定するか選択してください。:")) 6ValueError: invalid literal for int() with base 10: 'h'
試したこと
minuteで8を入力すると範囲外の数値エラーはcontinueで処理される。しかし、minuteないしsecondで文字列を入力するとexcept ValueErrorとして処理が返らず、python既存のエラーとして返ってくる。
補足情報(FW/ツールのバージョンなど)
初投稿のため至らぬ点があるかと思いますがよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー