Найти - Пользователи
Полная версия: Вопрос про элементы в цикле
Начало » Python для новичков » Вопрос про элементы в цикле
1
ahpex
Доброго времени суток! Вопрос в следующем:
Есть данный код.
def EratosfenGrating():
	n = 10
	Prime = set()
	def PrimeNumber(Prime):
		Grating = {i for i in range(2, n)}
		Min = 2
		while (Grating != set()):
			while not (Min in Grating):
				Min += 1
				Prime.add(Min)
				for i in range(1, n // Min):
					Grating -= {i * Min}
			break;
Почему если я буду, например, выводить переменные Prime/Min во 2м цикле
...
while not (Min in Grating):
Min += 1
Prime.add(Min)
print Min, Prime
...
мне выводит None, а в 1м все ок?
while (Grating != set()):
print Min, Prime
	while not (Min in Grating):
...
s0rg
Grating != set()
Это что вообще?

P.S. Решето Эратосфена на питоне можно реализовать в две строки кода.
ahpex
кажется это была попытка проверки на наличие элементов в множестве. но вопрос в другом.
знаю, что можно, но нужно конкретно так
s0rg
ahpex
кажется это была попытка проверки на наличие элементов в множестве
Это больше похоже на проверку является ли множество пустым, но намек в другом - код ужасен.
ahpex
да, ужасен, но хотелось бы получить ответ на вопрос вместо критики..
FishHook
ahpex, вложенная функция, та которая PrimeNumber нигде ни разу не вызывается, то есть этот кусок кода в принципе не работает вообще и если Вы туда вставите print, на консоль не выйдет вообще ничего.

Попробуйте сами дабы убедиться
def EratosfenGrating():
	n = 10
	Prime = set()
	def PrimeNumber(Prime):
                #!!!!!!!!
                print "This function is now starting"
                #!!!!!!!!
		Grating = {i for i in range(2, n)}
		Min = 2
		while (Grating != set()):
			while not (Min in Grating):
				Min += 1
				Prime.add(Min)
				for i in range(1, n // Min):
					Grating -= {i * Min}
			break;
EratosfenGrating()
ahpex
Дело не в том, она вызывается, просто я не указал этого в коде. Непонятно почему в 1м цикле значения переменных видно, а во втором - нет
Isem
s0rg
Grating != set()
Это что вообще?
Это проверка на непустое множество.
ahpex
Дело не в том, она вызывается, просто я не указал этого в коде. Непонятно почему в 1м цикле значения переменных видно, а во втором - нет
Невозможно воспроизвести то, о чем вы пытаетесь сказать.
s0rg
Isem
Это проверка на непустое множество.
Вы используете подобные конструкции в своем коде?
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