gelius
Июнь 27, 2014 05:12:27
if slovo:
povtor = 10
while povtor>0:
...telo...
povtor=povtor-1
Говорит неожиданный отступ. Как не начинать цикл, если несуществует переменная “slovo”?
Singularity
Июнь 27, 2014 05:21:44
geliusможет просто в начале файла сделать slovo=False?
А так
if 'slovo' in locals() or 'slovo' in globals():
GrayDocker
Июнь 27, 2014 12:42:36
А можно как-то более,..ммм,..общо задачу обрисовать?.. И версию змеюки, плиз.
gelius
Июнь 27, 2014 22:34:52
Питон 2.7. Нужно выполнить цикл если существует переменная ‘slovo’.
Singularity, с твоим вариантом проблема отступов исчезла но цикл выполняется независимо от наличия переменной.
Также хотелось бы выполнять другой цикл, если переменная отсутствует.
py.user.next
Июнь 27, 2014 22:45:27
Условие “если переменная отсутствует” говорит, что что-то не так в коде. Это напоминает прыжки по коду с помощью goto в старые времена.
Создай переменную со значением None. Это будет значить, что у неё нет никакого значения ещё.
gelius
Июнь 28, 2014 00:33:59
То есть создается переменная со значением None. Если значение меняется выполняется один цикл, если остается прежним - другой. Можно пример реализации?
py.user.next
Июнь 28, 2014 00:47:41
gelius
Можно пример реализации?
Напиши задание.
gelius
Июнь 28, 2014 18:45:32
ОК. Вроде все подробно расписал. Есть два разных цикла while. Если существует переменная “slovo” выпоняется один, если несуществует - другой. Вариант с присвоением переменной null непонятен.
FishHook
Июнь 28, 2014 19:04:18
gelius
Ну это же не джаваскрипт, тут нет undefined, тут будет ошибка. Если сильно хочется, перехватывайте исключение NameError, но любой Вам скажет, что это говнокод.
Интересно, как Вы видите решение своей проблемы в реализации на С?
Paranoia_Agent
Июнь 28, 2014 22:11:02
Если нет переменной, выпадает исключение 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, цикл не выполнится и исключение, кстати, тоже не выпадет.