在这种情况下,如何在Python中正确使用(断言)?

在这种情况下,如何在Python中正确使用(断言)?,python,set,assert,Python,Set,Assert,我是Python的新用户。我正在编写一个简单的代码来返回两件事:两个集合的并集(其中每个集合都包含数字和单词)以及并集的长度。 我试图用一个非常简单的例子来使用assert,如下所示,但是,它一直给我AssertionError。 我是这样定义函数的: def union(A, B): AuB = A.union(B) total = (AuB,len(AuB)) print(total) 然后我用这个来执行它: A = {1,4,-3, "bob"} B = {2,1

我是Python的新用户。我正在编写一个简单的代码来返回两件事:两个集合的并集(其中每个集合都包含数字和单词)以及并集的长度。 我试图用一个非常简单的例子来使用
assert
,如下所示,但是,它一直给我
AssertionError
。 我是这样定义函数的:

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: 
AssertionError回溯(最近一次调用)
在()
2b={2,1,-3,“吉尔”}
3工会(A、B)
---->4断言联合(A,B)=({-3,1,2,4,'bob','jill',},6)
断言者错误:
在这种情况下,请告知使用
assert
的最佳方式,因为我必须使用它


感谢
def union
中的而不是
打印
使用return

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

问题不在于如何使用
assert
,而在于您试图断言什么。您的
union
函数打印一个“结果”,但实际上返回
None
(因为您没有任何
return
语句)。因此,您实际上是在断言
None==({-3,1,2,4,'bob','jill'},6)
这是
False
,请使用
返回总计
,而不是(或者如果您真的想)打印(总计)