функция подтверждения в python - PullRequest
0 голосов
/ 28 февраля 2012

Для данного кода:

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, в котором берется только первая функция подтверждения, а не вторая.Любое решение для этого?

вопрос просто в том, как заставить код учитывать обе функции assert

1 Ответ

2 голосов
/ 28 февраля 2012

Для начала, почему вы используете assert?

Как только первый assert терпит неудачу, поднимается AssertionError и выполнение программы останавливается.

Вы должны использовать нормальные условия,Кроме того, в этом коде так много неправильного или необычного, я серьезно советую вам прочитать руководство по Python по адресу http://docs.python.org/tutorial/

Указатели:

  • оператор вывода после возврата
  • использование assert вместо условных выражений
  • ненужный цикл while
  • нет правильного отступа

Кроме того, вы вставили пример, который явно не выполняется, так какотступ не верен, и функция, вызываемая в последней строке, не существует в вашем коде.Пожалуйста, будьте более точны, если вам нужна помощь: -)

...