Добро пожаловать в раздел "Основы программирования"

сайта "Try Objective-c - программирование для начинающих"!

  Здесь простым и доступным языком представлен материал по основам программирования.

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

  Сам процесс обучения программированию довольно трудоемок, но если у вас есть цель - то у вас все получится!

  Заучивать весь представленный материал нет необходимости. Главное - чтобы вы понимали саму суть здесь изложенного.

» » 1.31 Списки - массивы. Первое знакомство.

Категория:

Информация к новости
  • Просмотров: 6743
  • Автор: Midav
  • Дата: 12-11-2012, 17:24
12-11-2012, 17:24

1.31 Списки - массивы. Первое знакомство.



Быстрая навигация:
На прошлых занятиях по основам программирования мы с вами познакомились с процедурами и функциями и выяснили, что функции могут возвращать значения, а могут и не возвращать их.
Также мы выяснили, что возвращаемое функцией значение может быть присвоено какой либо переменной.
Другими словами, переменную можно проинициализировать возвращаемым функцией значением.

Как вы помните, мы с вами рассматривали работу программы по расчету чисел Фибоначчи (значение числа равно сумме двух предыдущих чисел), однако мы не смогли присвоить переменной результат вычислений.

Сейчас мы с вами попробуем реализовать это в следующей программе:

def fibArray(n):
	result = []
	a, b = 0, 1
	while a < n:
		result.append(a)
		a, b = b, a + b
	return result


Разберем код этой программы:
1
def fibArray(n):

- определить функцию fibArray принимающую один параметр

2
Во второй строке нам встречается новый символ - квадратные скобки - []
rezult = []

Что он означает?
Если вы помните, мы в кратце уже касались этого вопроса в теме 1.24 Измерение длины строки, списки

В Питоне квадратными скобками обозначается СПИСОК - в данном случае - пустой список. И этот список присваивается переменной result.
Другими словами - переменная result проинициализирована пустым списком. Т.е. результатом выполнения программы будет список, но он пока пустой.

В других языках программирования, в СИ например, квадратными скобками обозначается МАССИВ - набор определенных данных одного типа.

В отличии от СИ, в Питоне списки могут быть разными по типу - например числа и строки одновременно. В СИ в массиве могут быть или только числа, или только строки - смешивать типы данных в языке СИ нельзя.

3
В третьей строке и далее идет стандартная часть кода для расчета чисел Фибоначчи с которым мы с вами уже сталкивались ранее.
a, b = 0, 1

Это параллельное присваивание значений переменным a и b.

4
while a < n:

Цикл while с условием выполнения цикла:
- цикл будет выполняться до тех пор, пора условие a < n является истиной.

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

5
В этой части кода нам встречается непонятная и ранее не встречаемая конструкция:
result.append(a)

О чем она говорит?
result - это имя нашего списка, в котором будут храниться все результаты вычислений чисел Фибоначчи
append(a) - append (с англ.: "добавить; модифицировать путем дополнения")

Конструкция result.append(a) дает инструкции интерпретатору Питона, чтобы он рассматривал список result как объект и применил к нему метод append.
Это некий "зародыш" объектного программирования.
В нашем случае append(a) это стандартная функция Питона для манипулирования списком, он вставляет в указанное место некое значение - в нашем случае значение переменной a

Таким образом при каждом исполнении цикла while в переменную rezult в качестве элемента списка будет вноситься значение переменной a до тех пор, пока условие цикла будет выполняться.

В результате по окончании работы программы в переменной rezult будет находиться список из чисел Фибоначчи.


6
В шестой строке мы снова сталкиваемся с конструкцией параллельного присваивания
a, b = b, a + b

она позволяет при каждом новом витке цикла производить расчет чисел Фибоначчи.

7
Здесь мы возвращаем полученный результат выполнения нашей программы
return result

Причем обратите внимание, что возвращаемое значение имеет отношение к телу функции, а не цикла.
По этой причине данная конструкция должна быть напечатана на уровне слова while.

Вызываем нашу функцию для вычислений и присваиваем ее результат какой нибудь переменной, например fib
Присвоить переменной fib результат функции fibArray для расчета чисел Фибоначчи до 100
fib = fibArray(100)


А теперь выведем на печать наш результат:
fib


Получаем наш список-массив:
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]



Стоит отметить такой момент: поскольку переменной fib мы присвоили результат работы функции fibArray, то fib теперь является списком чисел Фибоначчи до 100

Если вам интересно, да и для практики полезно, можно посмотреть сколько элементов находится в нашем списке.
для этого используем уже знакомую нам функцию len() которая возвращает количество элементов:
len(fib)

В результате получаем:
12


В наших основах программирования мы потихоньку переходим к языку программирования СИ.
На последующих занятиях мы будем касаться основных моментов по работе с этим языком программирования.

Метки к статье: массив, списки, Фибоначчи

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Добавление комментария

Имя:*
E-Mail:
Комментарий:
Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Вставка ссылкиВставка защищенной ссылки Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
Введите два слова, показанных на изображении: *