Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 7, 2013 14:17:32

ahpex
Зарегистрирован: 2013-01-19
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос про элементы в цикле

Доброго времени суток! Вопрос в следующем:
Есть данный код.

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):
...

Отредактировано ahpex (Апрель 7, 2013 14:20:28)

Офлайн

#2 Апрель 7, 2013 16:58:52

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

Вопрос про элементы в цикле

Grating != set()
Это что вообще?

P.S. Решето Эратосфена на питоне можно реализовать в две строки кода.

Отредактировано s0rg (Апрель 7, 2013 18:31:22)

Офлайн

#3 Апрель 7, 2013 18:53:57

ahpex
Зарегистрирован: 2013-01-19
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос про элементы в цикле

кажется это была попытка проверки на наличие элементов в множестве. но вопрос в другом.
знаю, что можно, но нужно конкретно так

Офлайн

#4 Апрель 7, 2013 18:57:12

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

Вопрос про элементы в цикле

ahpex
кажется это была попытка проверки на наличие элементов в множестве
Это больше похоже на проверку является ли множество пустым, но намек в другом - код ужасен.

Офлайн

#5 Апрель 7, 2013 23:27:56

ahpex
Зарегистрирован: 2013-01-19
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос про элементы в цикле

да, ужасен, но хотелось бы получить ответ на вопрос вместо критики..

Офлайн

#6 Апрель 8, 2013 05:41:25

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

Вопрос про элементы в цикле

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()



Отредактировано FishHook (Апрель 8, 2013 05:43:04)

Офлайн

#7 Апрель 10, 2013 21:45:51

ahpex
Зарегистрирован: 2013-01-19
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос про элементы в цикле

Дело не в том, она вызывается, просто я не указал этого в коде. Непонятно почему в 1м цикле значения переменных видно, а во втором - нет

Офлайн

#8 Апрель 11, 2013 13:56:01

Isem
От:
Зарегистрирован: 2010-08-27
Сообщения: 447
Репутация: +  7  -
Профиль   Отправить e-mail  

Вопрос про элементы в цикле

s0rg
Grating != set()
Это что вообще?
Это проверка на непустое множество.
ahpex
Дело не в том, она вызывается, просто я не указал этого в коде. Непонятно почему в 1м цикле значения переменных видно, а во втором - нет
Невозможно воспроизвести то, о чем вы пытаетесь сказать.



Офлайн

#9 Апрель 11, 2013 16:06:24

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

Вопрос про элементы в цикле

Isem
Это проверка на непустое множество.
Вы используете подобные конструкции в своем коде?

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version