Форум сайта python.su
857
gelius
ОК. Вроде все подробно расписал. Есть два разных цикла while.
Офлайн
0
Вообще немного в ступоре. Отдельно код предложенный Paranoia_Agent отрабатывает, но внутри моего кода говорит:
$ python script.py File "script.py", line 76 povtor = 3 ^ IndentationError: expected an indented block
Отредактировано gelius (Июнь 30, 2014 18:03:13)
Офлайн
88
У него там табы для отступов.
Офлайн
0
py.user.nextЯ ищу регуляркой заданную фразу в предложенном файле. Если фраза существует нужно выполнить один цикл, если несуществует другой. Ничего кроме как записывать фразу в переменную, а потом проверять ее наличие не придумал.
Ты описываешь код. Код мы и так видим. Напиши задание, которое пытаешься решить с помощью этого кода.
rex = re.compile(r'ля-ля-ля') slovo = [d[2] for d in rex.findall(body)] slovo = str(slovo[0]) try: if slovo: povtor=10 while povtor>0: print('Тело цикла: №'+str(povtor)) povtor=povtor-1 except NameError: print('Переменной не существует или что там делать, если ее нет')
Отредактировано gelius (Июнь 30, 2014 18:11:05)
Офлайн
0
Реально вместо except NameError указать какая именно переменная должна отсутствовать?
Офлайн
Бред какой-то. Вы сами понимаете код, который пишете? Во-первых, исключение NameError никогда не возникнет, ибо выше вы уже определили переменную slovo, попытавшись присвоить ей значение. Во-вторых, (почему “попытавшись”) если findall ничего не найдет, то там выскочит IndexError при попытке чтения элемента из пустого списка. Ну и в третьих- сам код, даже как пример- бред какой-то. Надо проверять, истин ли список, возвращённый findall'ом и в зависимостиот результата выполнять дальнейшие действия.
Офлайн
857
gelius
Я ищу регуляркой заданную фразу в предложенном файле. Если фраза существует нужно выполнить один цикл, если несуществует другой.
import re s = 'abc def ghi' pat = r'def' match = re.search(pat, s) if match: for i in range(1, 10 + 1): print('1:', i) else: i = 10 while i > 0: print('2:', i) i -= 1
>>> import re >>> >>> s = 'abc def ghi' >>> >>> pat = r'def' >>> >>> match = re.search(pat, s) >>> if match: ... for i in range(1, 10 + 1): ... print('1:', i) ... else: ... i = 10 ... while i > 0: ... print('2:', i) ... i -= 1 ... 1: 1 1: 2 1: 3 1: 4 1: 5 1: 6 1: 7 1: 8 1: 9 1: 10 >>>
>>> import re >>> >>> s = 'abc de ghi' >>> >>> pat = r'def' >>> >>> match = re.search(pat, s) >>> if match: ... for i in range(1, 10 + 1): ... print('1:', i) ... else: ... i = 10 ... while i > 0: ... print('2:', i) ... i -= 1 ... 2: 10 2: 9 2: 8 2: 7 2: 6 2: 5 2: 4 2: 3 2: 2 2: 1 >>>
Отредактировано py.user.next (Июнь 30, 2014 21:29:07)
Офлайн