2017-08-14 21 views
0
try: 
def function_addition(x,y): 
    assert (y!=0) 
    total= x/y 
    return total 
num1=float(input("Write a number :")) 
num2=float (input("Write a second number:")) 
result=function_addition(num1,num2) 
assert (num2 !=0) 
print (result) 

: プリント(「!エラーあなたの入力を確認してください」)try/exceptとassertの違いは何ですか? AssertionErrorが除い

は、私は上記のコードを書いたが、私が行うとき、私は同じ結果を得た理由を私は知らない:except ZeroDivisionError: So can I delete assert and replace it by except ZeroDivisionError ? `

答えて

1

assert条件が真であるかどうかをチェックして例外をスローするだけです。 try/exceptブロックでは、いくつかのステートメントを実行して、例外がスローされたかどうかを確認して、exceptの部分で処理できるようにします。例:

assert(1 == 2) 

はあなたにAsertionErrorを与えるだろう。

try: 
    # some statements 
    # ... 
except OSError as err: 
    #If an OSerror exception is thrown, you can process it here. For example: 
    print("OS error: {0}".format(err)) 

あなたのコードは次のようになります。

def function_addition(x,y): 
    try: 
     assert (y!=0) 
    except: 
     raise ValueError('y is 0.') 
    total= x/y 
    return total 


num1=float(input("Write a number :")) 
num2=float (input("Write a second number:")) 
try: 
    result=function_addition(num1,num2) 
except ValueError as ve: 
    print(ve) 
else: 
    print(result) 

あなたはfun.pyファイルに保存し、それを実行する場合は、この出力を持つことになります。

Write a number :1 
Write a second number:2 
0.5 
# Run it again. 
Write a number :0 
Write a second number:0 
y is 0. 
関連する問題