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

А так
if 'slovo' in locals() or 'slovo' in globals():
GrayDocker
А можно как-то более,..ммм,..общо задачу обрисовать?.. И версию змеюки, плиз.
gelius
Питон 2.7. Нужно выполнить цикл если существует переменная ‘slovo’.
Singularity, с твоим вариантом проблема отступов исчезла но цикл выполняется независимо от наличия переменной.
Также хотелось бы выполнять другой цикл, если переменная отсутствует.
py.user.next
Условие “если переменная отсутствует” говорит, что что-то не так в коде. Это напоминает прыжки по коду с помощью goto в старые времена.

Создай переменную со значением None. Это будет значить, что у неё нет никакого значения ещё.
gelius
То есть создается переменная со значением None. Если значение меняется выполняется один цикл, если остается прежним - другой. Можно пример реализации?
py.user.next
gelius
Можно пример реализации?
Напиши задание.
gelius
ОК. Вроде все подробно расписал. Есть два разных цикла while. Если существует переменная “slovo” выпоняется один, если несуществует - другой. Вариант с присвоением переменной null непонятен.
FishHook
gelius
Ну это же не джаваскрипт, тут нет undefined, тут будет ошибка. Если сильно хочется, перехватывайте исключение NameError, но любой Вам скажет, что это говнокод.
Интересно, как Вы видите решение своей проблемы в реализации на С?
Paranoia_Agent
Если нет переменной, выпадает исключение 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, цикл не выполнится и исключение, кстати, тоже не выпадет.
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