def errorCheck(daySales):
while True:
try:
daySales = float(daySales)
except ValueError:
print('Please only enter a number - for example: 7')
print('Try again!')
except Exception as err:
print('Unknown error - please contact the programmer!')
print(type(err))
return(float(daySales))
counter=0
day = ['Monday','Tuesday','Wednesday','Thursday',
'Friday','Saturday','Sunday']
daySales=()
sales=[]
totalsales=[]
for i in range(len(day)):
print('Enter sales for ' + day[i] + ': ', end="")
daySales = input()
errorCheck(daySales)
sales = sales + [float(daySales)]
for i in range(len(day)):
print('\nYour sales for ' + day[i] + ' were: $', sales[i], end="")
print('\nWhich equates to a weekly sales total of: $' ,end="")
sumOfList = sum(sales)
print(sumOfList)
このスクリプトは、ユーザーが数字を入力した場合に実行しますが、例外が発生した場合はそれをキャッチしますが、次の手順に進みます。たとえば、月曜日の売上に「foobar」と入力すると、スクリプトは数字だけを入力するように指示しますが、次の入力は火曜日です。 ユーザが有効な番号を入力するまで、ループは 'day'にとどまることができますか?Python3のエラー処理ループ
あなたは 'while'ループを持っていますが、入力/例外に関係なく' return'を行っています。例外がない場合にのみ 'return'したいと思っています。また、ループ内で 'input()'を取得したいとします。それ以外の場合、ユーザーはどのように別の値を入力できますか? –