我是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
的最佳方法是什么,因为我必须使用它。
由于
答案 0 :(得分:0)
在 10-19 12:39:04.399 2912-2912/com.example.myapp I/ExifInterface_JNI: Corrupted image.
10-19 12:39:04.414 2912-2912/com.example.myapp W/ExifInterface: Invalid image: ExifInterface got an unsupported image format file(ExifInterface supports JPEG and some RAW image formats only) or a corrupted JPEG file to ExifInterface.
java.io.EOFException
at java.io.DataInputStream.readByte(DataInputStream.java:270)
at android.media.ExifInterface.getJpegAttributes(ExifInterface.java:1834)
at android.media.ExifInterface.loadAttributes(ExifInterface.java:1475)
at android.media.ExifInterface.<init>(ExifInterface.java:1174)
at com.lostsym.founder.SelectSuitActivity.onActivityResult(SelectSuitActivity.java:621)
at android.app.Activity.dispatchActivityResult(Activity.java:6932)
at android.app.ActivityThread.deliverResults(ActivityThread.java:4085)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:4132)
at android.app.ActivityThread.-wrap20(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1533)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
而不是def union
使用return。
print
答案 1 :(得分:-1)
问题不在于如何使用assert
,而是在试图断言。您的union
功能会打印一个&#34;结果&#34;但实际上会返回None
(因为您没有任何return
语句)。所以你实际上断言None == ({-3, 1, 2, 4, 'bob', 'jill'}, 6)
False
,使用return total
而不是(或者如果你真的想要的话)print(total)
。