Форум сайта python.su
В “Языке программирования Python” увидел пример:
>>> for n in xrange(2, 10):
... for x in xrange(2, n):
... if n % x == 0:
... print n, "=", x, "*", n/x
... break
... else:
... print n, "- простое число"
...
2 - простое число
3 - простое число
4 = 2 * 2
5 - простое число
6 = 2 * 3
7 - простое число
8 = 2 * 4
9 = 3 * 3
3 -простое число
4 = 2 * 2
5 -простое число
5 -простое число
5 -простое число
6 = 2 * 3
7 -простое число
7 -простое число
7 -простое число
7 -простое число
7 -простое число
8 = 2 * 4
9 -простое число
9 = 3 * 3
Офлайн
Эээ..у меня Python 3.1 запустил через Eric Python IDE, итог работы
3 - easy number
4 = 2 * 2
5 - easy number
5 - easy number
5 - easy number
6 = 2 * 3
7 - easy number
7 - easy number
7 - easy number
7 - easy number
7 - easy number
8 = 2 * 4
9 - easy number
9 = 3 * 3
Офлайн
пробелы\табуляция в питоне играют такую же роль что и скобочки в других языках - они выделяют блоки кода.
возможно вы не так скопировали пример себе в идле
Офлайн
sp3, отнюдь. Скопируйте сами, попробуйте. (стр.39 указанной книги)
Да даже если и так, почему в примере есть 2, а в моем выводе все начинается с 3?
Отредактировано (Ноя. 22, 2010 22:53:30)
Офлайн
Дело действительно в отступах. Обратите внимание, инструкция else относится не к if, а к for (sic!).
Неправильный код:
for n in xrange(2, 10):
for x in xrange(2, n):
if n % x == 0:
print n, "=", x, "*", n/x
break
else:
print n, "- простое число"
3 - простое число
4 = 2 * 2
5 - простое число
5 - простое число
5 - простое число
6 = 2 * 3
7 - простое число
7 - простое число
7 - простое число
7 - простое число
7 - простое число
8 = 2 * 4
9 - простое число
9 = 3 * 3
for n in xrange(2, 10):
for x in xrange(2, n):
if n % x == 0:
print n, "=", x, "*", n/x
break
else:
print n, "- простое число"
2 - простое число
3 - простое число
4 = 2 * 2
5 - простое число
6 = 2 * 3
7 - простое число
8 = 2 * 4
9 = 3 * 3
Офлайн
atr2006
Вот зараза, теперь буду следить за отступами идла, а то ишь, ставит как хочет! Спасибо. :)
Офлайн