2017-09-28 12 views
-1
hours = input("Enter hours: ") 

rate = input("Enter rate: ") 

try: 
    hours = float(hours) 
    rate = float(rate) 
except: 
    print("Enter real numbers") 

def computepay(hours, rate): 
    if hours <= 40.0: 
     pay = hours * rate 
     return pay 
    elif hours > 40: 
     pay = 40 * rate 
     exhrs = (hours - 40) * (1.5 * rate) 
     totpay = pay + exhrs 
     return totpay 

print("Pay: %s" % computepay(hours, rate)) 
+0

実行を継続しているということですか? –

答えて

0

それは正常な動作です。例外が発生した場合はスクリプトを終了し、それ以外の場合はメッセージを出力します。ただし、スクリプトを終了させることはありません。

1

exceptブロックは、tryブロック内のコードによって例外が発生したときに実行されます。あなたのユーザーがそれらの番号を再入力する必要があることを知っている魔法はありません。自分でコードを入力する必要があります。

また、例外については常に具体的にする必要があります。これを行う可能性のある方法の1つは、

while True: 
    hours = input("Enter hours: ") 
    rate = input("Enter rate: ") 
    try: 
     hours = float(hours) 
     rate = float(rate) 
     break    # end the while loop if no error occurred 
    except ValueError: 
     print("Enter real numbers") 
関連する問題