2017-10-19 10 views
1

私はPythonにとって非常に新しいユーザーです。私は2つのものを返すための簡単なコードを書いています:2組の組合(それぞれに数字と言葉が入っている)と組合の長さ。 私はassertを以下のように非常に簡単な例で使用しようとしていますが、それは私にAssertionErrorを与え続けます。 これは私が機能を定義した方法です:この場合、Pythonで正しく(assert)を使うには?

def union(A, B): 
    AuB = A.union(B) 
    total = (AuB,len(AuB)) 
    print(total) 

その後、私はそれを実行するためにこれを使用します。

A = {1,4,-3, "bob"} 
B = {2,1,-3,"jill"} 
union(A,B) 
assert union(A,B) == ({-3, 1, 2, 4, 'bob', 'jill'}, 6) 

はしかし、これは結果のエラーです:

AssertionError       Traceback (most recent call last) 
<ipython-input-4-cb63795cc161> in <module>() 
     2 B = {2,1,-3,"jill"} 
     3 union(A,B) 
----> 4 assert union(A,B) == ({-3, 1, 2, 4, 'bob', 'jill'}, 6) 

AssertionError: 

が何であるかを教えてください私はそれを使用しなければならないので、assertをこの場合使用する最良の方法です。

おかげdef unionの代わりprint使用リターンで

答えて

0

def union(A, B): 
    AuB = A.union(B) 
    total = (AuB,len(AuB)) 
    return total 
+0

ありがとう@Arunmozhi ..すごくうまくいった! –

-1

問題は、assertの使用方法ではなく、アサートしようとしているものです。 union関数は "結果"を出力しますが、returnステートメントがないため、実際にはNoneを返します。したがって実際にNone == ({-3, 1, 2, 4, 'bob', 'jill'}, 6)Falseであると主張している場合は、print(total)の代わりに(または実際には必要な場合には)return totalを使用してください。

関連する問題