我是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:
请告知在这种情况下使用assert
的最佳方式是什么,因为我必须使用它。你知道吗
谢谢
在
def union
而不是print
中使用return。你知道吗问题不在于如何使用
assert
,而在于您试图断言什么。您的union
函数打印一个“result”,但实际返回None
(因为您没有任何return
语句)。所以你实际上是在断言None == ({-3, 1, 2, 4, 'bob', 'jill'}, 6)
,也就是False
,使用return total
而不是(或者如果你真的想的话,除了print(total)
)。你知道吗相关问题 更多 >
编程相关推荐