对于给定的代码:
pattern = r'(?:some_pattern)'
def find(seq):
ret = []
while True :
m= pattern_re.match(seq)
if not m :
break
myseq= m.group(2)
assert len(myseq)%3 == 0
assert len(myseq) > 6
ret.append(myseq)
pos = m.end()
return ret
sequence = 'some sequence'
my_seq = find(sequence)
这将返回ret,其中仅采用第一个断言函数而不是第二个。有什么解决方案吗?
问题只是如何使代码同时考虑断言函数
答案 0 :(得分:2)
对于初学者,你为什么要使用assert?
一旦第一个断言失败,就会引发AssertionError
并停止执行程序。
你应该使用正常的条件。除此之外,这段代码有很多错误或异常,我认真建议你阅读http://docs.python.org/tutorial/上的Python教程
指针:
此外,您粘贴了一个明显不执行的示例,因为缩进是错误的,并且代码中不存在最后一行调用的函数。如果您需要帮助,请更准确: - )