Форум сайта python.su
Всем привет!
Изучаю питон по курсы Линды (Lynda - Python 3 Essential Training), мне очень нравится, произношение очень четкое , курс хорошо структурирован. В общем , кто знает английский, - imho - отличный курс для начинающих.
Однако, иногда возникают некоторые вопросы, которые буду писать здесь.
Офлайн
Вопрос по уроку 0204 Reusing code with a function.mov
Данный код определяет какие числа являются простыми
1) Почему else находится на одном уровне с For, ведь по сути он может находиться только на уровне с IF который является более главным
2) Какой смысл здесь несет else, тк он из For и верхнего If у нас выход по False. (я проверил без else код полностью рабочий)
#!/usr/bin/python3
def isprime(n):
if n == 1:
print("1 is special")
return False
for x in range(2, n):
if n % x == 0:
print("{} equals {} x {}".format(n, x, n // x))
return False
else:
print(n, "is a prime number")
return True
for n in range(1, 20):
isprime(n)
Офлайн
Офлайн
Андрей СветловСпасибо, если я правильно понял - else будет выполняться в случае если мы перебрали всю последовательность в цикле For и при этом не вышли из цикла. Но в данном примере из цикла в любом случае выходим через return.
http://docs.python.org/py3k/reference/compound_stmts.html#the-for-statement
Офлайн
В данном конкретном можно и обойтись без else.
Но вариант Линды мне кажется чуть более понятным.
Офлайн