在这种情况下,如何在Python中正确使用(断言)?
我是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
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
,请使用返回总计
,而不是(或者如果您真的想)打印(总计)