Найти - Пользователи
Полная версия: Что не так с логикой ?
Начало » Python для экспертов » Что не так с логикой ?
1
accex
Решал я тут тестовое задание. Суть - нужно было написать регулярку для удаления из строки незакрытых скобок вместе с содержимым, если (!) после них нету закрытых блоков aaaa((bbbb)(ccccc' -> ‘aaaa((bbbb)’ ну и написать тесты для этого

Убирал скобки этим:

from __future__ import unicode_literals
import re
search_unclosed_brackets = re.compile('\([^\)]+$')
def safe_brackets(string):
    """
    Args:
        string (str): source string
    Returns:
        string:
    """
    string = search_unclosed_brackets.sub('', string)
    return string

В тестах использовалась эта регулярка

self.assertFalse(bool(re.findall(r'[\(][^\)]+$',safe_brackets(string)))

Но вот как-то забраковали сей код. Что тут некорректно? За искл. того, что регулярка не срегариует на строку “(”. (+ на * заменить)
ZerG
гичо не ясно по самому заданию
py.user.next
accex
ну и написать тесты для этого
Вообще-то, с этого надо начинать, а не писать потом.
Напиши тесты, нюансов там много.

accex
В тестах использовалась эта регулярка
А если открывающая скобка в конце строки, то подобный тест спокойно её пройдёт. (Почему подобный, потому что хрень какая-то это, а не тест.)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB