У меня есть вопрос относительно цикла for-else в другом цикле. Так вот пример:For-Else loop in another For loop
primelist = []
for p in range (2, x+1):
print 'in first for'
raw_input()
for i in range(2, p):
print 'in second for'
if p%i == 0:
print 'in if'
raw_input()
break
else:
print 'in else'
raw_input()
primelist = primelist + [p]
return primelist
Как вы видите, это для определения простых чисел и хранить их в список, так что они могут быть восстановлены позже. Поэтому моя проблема связана с первым циклом. Когда я запускаю программу, она вводится следующим образом: Первый цикл FOR, ELSE, First FOR цикл, второй цикл FOR и т. Д. Почему он первый раз переходит к ELSE? Кроме того, если я попрошу 1000 числа я получаю: 7919 с
for i in range(2, p)
и 7907 с
for i in range(2, p/2).
Почему? Надеюсь, вы поможете мне в этом, но, пожалуйста, не давайте других методов для реализации алгоритма Prime Number!
Как вы его написали, этот код имеет синтаксическую ошибку. Вы имели в виду, чтобы выражение 'else' (и его дочерние элементы) было встроено в оператор' if'? – Hooked
@Hooked Вы можете 'else'' for' в Python. Условие вводится, если цикл завершается без 'break'ing. –
@SilasRay ничего себе, я этого не понимал. Моя ошибка BlackTM. Я оставлю свой комментарий для других, чтобы учиться. – Hooked