Найти - Пользователи
Полная версия: Вопросы по кодам в курсе Lynda - Python 3 Essential Training
Начало » Python для новичков » Вопросы по кодам в курсе Lynda - Python 3 Essential Training
1
pyhappy
Всем привет!
Изучаю питон по курсы Линды (Lynda - Python 3 Essential Training), мне очень нравится, произношение очень четкое , курс хорошо структурирован. В общем , кто знает английский, - imho - отличный курс для начинающих.

Однако, иногда возникают некоторые вопросы, которые буду писать здесь.
pyhappy
Вопрос по уроку 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)
Андрей Светлов
http://docs.python.org/py3k/reference/compound_stmts.html#the-for-statement
pyhappy
Андрей Светлов
http://docs.python.org/py3k/reference/compound_stmts.html#the-for-statement
Спасибо, если я правильно понял - else будет выполняться в случае если мы перебрали всю последовательность в цикле For и при этом не вышли из цикла. Но в данном примере из цикла в любом случае выходим через return.

Я сравнил результаты данного кода с else и без него - абсолютно одинаковые. Правильно ли я понимаю, что в данном конкретном случае - else не обязателен ?
Андрей Светлов
В данном конкретном можно и обойтись без else.
Но вариант Линды мне кажется чуть более понятным.
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