Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 29, 2014 04:51:27

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10015
Репутация: +  857  -
Профиль   Отправить e-mail  

while если переменная существует

gelius
ОК. Вроде все подробно расписал. Есть два разных цикла while.

Ты описываешь код. Код мы и так видим. Напиши задание, которое пытаешься решить с помощью этого кода.



Офлайн

#2 Июнь 30, 2014 18:02:43

gelius
Зарегистрирован: 2013-03-18
Сообщения: 132
Репутация: +  0  -
Профиль   Отправить e-mail  

while если переменная существует

Вообще немного в ступоре. Отдельно код предложенный Paranoia_Agent отрабатывает, но внутри моего кода говорит:

$ python script.py
  File "script.py", line 76
    povtor = 3
         ^
IndentationError: expected an indented block
Куда копать в таком случае?

Отредактировано gelius (Июнь 30, 2014 18:03:13)

Офлайн

#3 Июнь 30, 2014 18:06:19

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

while если переменная существует

У него там табы для отступов.

Офлайн

#4 Июнь 30, 2014 18:10:33

gelius
Зарегистрирован: 2013-03-18
Сообщения: 132
Репутация: +  0  -
Профиль   Отправить e-mail  

while если переменная существует

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)

Офлайн

#5 Июнь 30, 2014 18:45:30

gelius
Зарегистрирован: 2013-03-18
Сообщения: 132
Репутация: +  0  -
Профиль   Отправить e-mail  

while если переменная существует

Реально вместо except NameError указать какая именно переменная должна отсутствовать?

Офлайн

#6 Июнь 30, 2014 20:48:16

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

while если переменная существует

Бред какой-то. Вы сами понимаете код, который пишете? Во-первых, исключение NameError никогда не возникнет, ибо выше вы уже определили переменную slovo, попытавшись присвоить ей значение. Во-вторых, (почему “попытавшись”) если findall ничего не найдет, то там выскочит IndexError при попытке чтения элемента из пустого списка. Ну и в третьих- сам код, даже как пример- бред какой-то. Надо проверять, истин ли список, возвращённый findall'ом и в зависимостиот результата выполнять дальнейшие действия.

Офлайн

#7 Июнь 30, 2014 21:25:50

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10015
Репутация: +  857  -
Профиль   Отправить e-mail  

while если переменная существует

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)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version