Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 27, 2014 05:12:27

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

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

if slovo:
    povtor = 10
    while povtor>0:
        ...telo...
        povtor=povtor-1
Говорит неожиданный отступ. Как не начинать цикл, если несуществует переменная “slovo”?

Офлайн

#2 Июнь 27, 2014 05:21:44

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

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

gelius
может просто в начале файла сделать slovo=False?

А так

if 'slovo' in locals() or 'slovo' in globals():

Офлайн

#3 Июнь 27, 2014 12:42:36

GrayDocker
Зарегистрирован: 2014-06-27
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

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

А можно как-то более,..ммм,..общо задачу обрисовать?.. И версию змеюки, плиз.



Python 3.4

Отредактировано GrayDocker (Июнь 27, 2014 12:44:14)

Офлайн

#4 Июнь 27, 2014 22:34:52

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

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

Питон 2.7. Нужно выполнить цикл если существует переменная ‘slovo’.
Singularity, с твоим вариантом проблема отступов исчезла но цикл выполняется независимо от наличия переменной.
Также хотелось бы выполнять другой цикл, если переменная отсутствует.

Офлайн

#5 Июнь 27, 2014 22:45:27

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

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

Условие “если переменная отсутствует” говорит, что что-то не так в коде. Это напоминает прыжки по коду с помощью goto в старые времена.

Создай переменную со значением None. Это будет значить, что у неё нет никакого значения ещё.



Отредактировано py.user.next (Июнь 27, 2014 22:46:39)

Офлайн

#6 Июнь 28, 2014 00:33:59

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

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

То есть создается переменная со значением None. Если значение меняется выполняется один цикл, если остается прежним - другой. Можно пример реализации?

Офлайн

#7 Июнь 28, 2014 00:47:41

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

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

gelius
Можно пример реализации?
Напиши задание.



Офлайн

#8 Июнь 28, 2014 18:45:32

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

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

ОК. Вроде все подробно расписал. Есть два разных цикла while. Если существует переменная “slovo” выпоняется один, если несуществует - другой. Вариант с присвоением переменной null непонятен.

Офлайн

#9 Июнь 28, 2014 19:04:18

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

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

gelius
Ну это же не джаваскрипт, тут нет undefined, тут будет ошибка. Если сильно хочется, перехватывайте исключение NameError, но любой Вам скажет, что это говнокод.
Интересно, как Вы видите решение своей проблемы в реализации на С?



Офлайн

#10 Июнь 28, 2014 22:11:02

Paranoia_Agent
Зарегистрирован: 2014-06-25
Сообщения: 75
Репутация: +  5  -
Профиль   Отправить e-mail  

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

Если нет переменной, выпадает исключение NameError, вот и лови его с помощью try/except:

try:
	if slovo:
		povtor=10
		while povtor>0:
			print('Тело цикла: №'+str(povtor))
			povtor=povtor-1
except NameError:
	print('Переменной не существует или что там делать, если ее нет')
Естественно, чтобы цикл выполнился, команда “if slovo” должно выдавать True, то есть если slovo=0, цикл не выполнится и исключение, кстати, тоже не выпадет.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version