Анимация
JavaScript


Главная  Библионтека 

0 1 2 3 4 5 [ 6 ] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145

1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987

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

• Инструкция print выводит переданные ей значения. В отличие от простого вывода значений интерпретатором в интерактивном режиме (которым мы пользовались ранее в примерах использования интерпретатора в качестве калькулятора), инструкция print выводит строки без кавычек и между элементами вставляет пробел, так что Вы можете удобно форматировать вывод:

>>> i = 256*256

>>> print Значение переменной i равно, i Значение переменной i равно 65536

Завершающая запятая позволяет после вывода значения вставлять пробел вместо перехода на новую строку:

>>> a, b = 0, 1

>>> while b < 1000:

... print b,

... a, b = b, a+b



Глава 4

Средства управления логикой

Кроме только что представленной инструкции while, в языке Python присутствуют другие привычные средства управления логикой программы с небольшими изменениями.

4.1 Инструкция if

Пожалуй, наиболее известной является инструкция if:

>>> x = int(raw input("Введите, пожалуйста, число: "))

>>> if x < 0:

... x = 0

... print Отрицательное, меняем на ноль

... elif x == 0:

... print Ноль

... elif x == 1:

... print Один

... else:

... print Больше

Ветвь elif может, как совсем отсутствовать, так и присутствовать несколько раз; наличие ветви else необязательно. Ключевое слово elif является короткой формой для else if и позволяет избежать чрезмерных отступов. Последовательность if ... elif ... elif ... эквивалентна инструкциям switch и case в других языках.

4.2 Инструкция for

Инструкция for в языке Python немного отличается от того, что используется в таких языках как C или Pascal. Вместо того, чтобы всегда перебирать числа арифметической прогрессии (как в Pascal), или предоставлять пользователю полную свободу выбора итератора и условия выхода из цикла (как в С), перебирает элементы произвольной1

1С формальной точки зрения это не совсем так: в языке Python под последовательностью всегда подразумевается последовательность с произвольным доступом; средства для работы с последовательностями



4.3. Функции range() и xrange() 37

последовательности (например, списка или строки) в порядке их следования:

>>> # Измерение нескольких строк:

... a = [кот, окно, выбросить]

>>> for x in a: ... print x, len(x)

кот 3 окно 4 выбросить 9

Небезопасно изменять в цикле итерируемую последовательность (такое возможно только для последовательностей, допускающих изменение, например, списков). Если Вы собираетесь вносить изменения в список, элементы которого перебираете, например, продублировать избранные элементы, следует перебирать элементы копии исходного списка. Запись в виде среза делает это особенно удобным:

>>> for x in a[:]: # сделать копию (среза) всего списка ... if len(x) > 4: a.insert(0, x)

>>> for x in a: ... print x,

выбросить кот окно выбросить

Используя средства функционального программирования (см. раздел 5.2), можно одновременно перебирать элементы нескольких последовательностей.

4.3 Функции range() и xrange()

Если Вам необходимо перебирать последовательность чисел, то пригодится встроенная функция range() . Она создает список, содержащий арифметическую прогрессию:

>>> range(10)

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Указанная верхняя граница никогда не входит в созданную последовательность. range(10) создает список из 10 значений, точно соответствующих допустимым индексам для элементов последовательности, имеющей длину 10. Можно указать другую нижнюю границу или другое приращение (шаг), в том числе и отрицательное:

(в том числе и инструкция for) требует возможности получить произвольный элемент по индексу.



0 1 2 3 4 5 [ 6 ] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145