Лекция 6. Массивы. Параметрический цикл (1152909)
Текст из файла
1Воробьева И.А. «Информатика. Язык Питон»МассивыОдномерные массивы и матрицы. Простейшие алгоритмы в массивах: поиск,экстремумы, накопление сумм и произведений. Просмотр массива: полностью,по частям, с досрочным выходом.5. МАССИВЫ И ПАРАМЕТРИЧЕСКИЕ ЦИКЛЫ5.1.
Параметрический циклНапоминание.Цикл – повторение выполнения однотипных действий (тела цикла) спроверкой условия необходимости повторения этих действий.Параметрический цикл – цикл, в котором заранее известно, сколькоповторений выполнения тела необходимо совершить.Этот цикл управляется параметром-счетчиком, который при повторении выполнениятела цикла изменяется от заданного начального значения до заданного конечного значения сфиксированным шагом (шаг ≥ ±1).Блок-схема параметрического циклаРисунок 5.
1.2Воробьева И.А. «Информатика. Язык Питон»Если в языке программирования реализована синтаксическаяконструкция параметрического цикла, то это вовсе не означает, что онабудет полностью идентична в разных языках.Синтаксис параметрического цикла for..in в Python предписываетосуществлять итерации по последовательности объектов, то естьосуществляет проход по всем элементам последовательности,заданной в команде.Здесь важно то, что последовательность объектов в Python необязательно состоит только из чисел, например можно предложитьпоследовательность из строк [‘мама’, ‘папа’, ‘брат’, ’сестра’] и сделатьчетыре итерации по этой последовательности, что бывает оченьудобно. Однако именно числовые последовательности дают большегибкости в параметрическом цикле, и мы это увидим в примерах ниже.for <cчетчик> in <последовательность> :<операция > # тело цикла – это единственная инструкцияЗдесь <cчетчик> будет принимать последовательно все значения,которые заданы в <последовательности>, например:for i in [3]:print (‘Это сообщение выведется ‘, i-2, ‘ раз’)на экране увидим:Это сообщение выведется 1 разтак как последовательность состоит из единственного числа ‘3’ ипеременная примет его значение ()for <cчетчик> in <последовательность> :<операция 1><операция 2># тело цикла – несколько инструкций…<операция N>else: # как и в конструкции while не обязательный, но удобный# блок, который выполнится один раз по окончании цикла<одна операция или несколько операций>3Воробьева И.А.
«Информатика. Язык Питон»Пример 5.1.for a in [2, 1, 0, 2, -7] :print (a)else:print(‘Цикл завершен’)на экране увидим, что примет последовательно все заданныезначения, после чего отработает блок else:2102-7Цикл завершенПример 5.2.for a in [‘мама’, ‘папа’, ‘брат’, ’сестра’] :print (a)else:print(‘- это вся моя семья.’)на экране увидим, что примет последовательно все заданныезначения, после чего отработает блок else:мамапапабратсестра- это вся моя семья.4Воробьева И.А. «Информатика.
Язык Питон» ВАЖНО! Запрещено 1 изменять значения параметра-счетчикавнутри цикла for. Эта переменная программистом не управляется (вотличие от конструкции цикла while). При этом, конечно же, узнавать и использовать значение счетчика внутри цикла можно. Как правило, в большинстве языков, значение такой переменнойсчетчика после завершения цикла не считается определенным,например, в приведенном выше коде примера 5.1., вы не можетебыть абсолютно уверены, что после завершения цикла for в переменной a будет значение «-7».
Просто привыкните использоватьпеременную-счетчик в конструкциях for исключительно, как внутреннюю переменную самого цикла.Функция range()А если мы хотим создать цикл, который отработает миллион итераций? Мыже не можем вручную набивать такую последовательность! Для формированияпоследовательности чисел в Python есть функция range().командарезультатСамая короткая форма записи функцииформирует арифметическуюпрогрессию из указанного числаэлементов, начиная с «нуля» и с шагом«+1».range(10)[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]n=5range (n)[0, 1, 2, 3, 4]range (-7)1[] – пустая последовательность, таккак «-7» левее нуля и диапазон от0 до -7 с шагом +1 некорректенПрямого запрета нет, но в результате предсказуемое поведение программы на разных системах не гарантируется.5Воробьева И.А. «Информатика.
Язык Питон»Если указать два параметра функции, тоони будут указывать на диапазонзначенийc шагом «+1».Важно! Правая граница никогда непопадает в последовательность.range(5, 10)[ 5, 6, 7, 8, 9]range(-10, -5)[ -10, -9, -8, -7, -6]range(-5, -10)[] – некорректная командаПолная форма записи функции имееттри параметра (диапазони шаг) –она дает самые широкие возможностиза счет изменения размера шага и егознака.range(1, 10, 2)[1, 3, 5, 7, 9]range(1, 10, 3)[1, 4, 7]range(-5, -10, -1)[- 5, -6, -7, -8, -9]Функция range() и цикл for..inкомандаfor a in range(4) :print (a)результат0123for a in range(-5, -10, -2):print (a)-5-7-9for a in range (-7)print (a)for a in range(5, 5, 1):print (a)цикл не выполнится ни одногоразацикл не выполнится ни одногораза6Воробьева И.А.
«Информатика. Язык Питон»Так как алгоритм работы параметрического цикла единообразен и даже,можно сказать, – детерминирован (строго определен), нет необходимостииспользовать в блок-схемах такую тяжелую конструкцию, как на рисунке 5.1.Гораздо компактней и, что немаловажно, наглядней использовать следующееизображение параметрического цикла.зациклиливыход из циклаCЧ=НЗ; КЗ; ±ШАГТЕЛО ЦИКЛАЭто изображение в блок-схемах сразу отличимо от итерационных циклов.5.2. Массивы и параметрический циклМассив – структура данных в виде набора однотипных элементов,как правило, расположенных в памяти непосредственно друг задругом, пригодная для осуществления произвольного доступа к еёэлементам по номерам (индексам).Доступ к отдельным элементам массива осуществляется с помощьюИМЯ[индекс] – это ссылка на массив (на его адрес в памяти) суказанием номера нужного элемента.
Посмотрите на рисунок ниже:Рисунок 5. 2. Структура одномерного массива7Воробьева И.А. «Информатика. Язык Питон»Массивы с одним индексом называются – одномерными (аналог вектора вматематике). Массивы с двумя индексами называются – двумерными (аналогматрицы в математике). Формально индексов может быть больше (многомерныемассивы), но на практике такой подход в программировании встречается крайнередко.Статический массив – это массив, для которого заранее определено числоэлементов.В нашем курсе мы будем работать только со статическими структурами: статический одномерный массив; статический двумерный массив (матрица).Объявление массивов в Python (типы list, tuple)В языках, где существует собственный тип «статический массив», память подтакие массивы выделяется один раз; размер выделенной памяти фиксирован(число элементов, помноженное на число байт, занимаемых «элементом»2) и неизменяется за все время существования массива в программе.
В Python такоготипа нет, но есть два более гибких типа, которые нам подойдут для реализациимассивов.С помощью двух встроенных типов языка Python мы можем реализоватьдва вида массивов: изменяемый статический массив (с помощью типа список - list); статический массив – константа (с помощью типа кортеж - tuple).Отличия этих двух типов заключаются в том, что в первом (список) мыможем изменять первоначально заданные элементы в процессе работыпрограммы, а во втором (кортеж) – нет.Основные формы задания одномерных массивов:1. Имя массива = [тип-значение всех элементов ] * число элементов2.
Имя массива = [элемент0, элемент1,.. , элементN-1 ] – N элементов3. Имя массива = (элемент0, элемент1,.. , элементN-1 ) – N элементовКвадратные скобки означают изменяемый массив, а круглые –массив-константу.2Выделение памяти происходит чуть сложнее, но принципиально от указанного правила не отличается.8Воробьева И.А. «Информатика. Язык Питон»Если массив состоит из n-элементов, то говорят массив размерности n.Замечание 5.1. Хороший стиль программирования предполагаетиспользование именованных констант при определении массивов.Впрочем, именованная константа почти всегда предпочтительнейобычной в тех случаях, где константа имеет смысловую нагрузку.Например, в массивах ее смысловая нагрузка – размерность.Объясняется все очень просто.
Если в вашем коде число «10»встречается пятнадцать раз, причем в пяти случаях, как размерностьмассива, а в остальных десяти, как «просто число», то принеобходимости изменить «размерность массива» вам не придетсясканировать весь код в поисках «нужной десятки», если дляразмерности вы вовремя догадались сделать константу NMAX=10.Примеры объявлений массивов# РАЗДЕЛ КОНСТАНТNMAX=10LEN=9# РАЗДЕЛ ПЕРЕМЕННЫХgrad = [0.0] * 15 # изменяемый массив из 15-ти вещественных чисел. Послесоздания все элементы равны нулюNumber = [10]*LEN # изменяемый массив из 9-ти целых чисел.
Послесоздания все элементы равны «10»Kod = [‘’]*NMAX # изменяемый массив из 10-ти строковых переменных.После создания все элементы равны «пустой строке»KodA = [‘A’]*NMAX # изменяемый массив из 10-ти строковых переменных.После создания все элементы содержат букву «A»Kr= (0, 10, 5, -5, 2) # массив-константа (кортеж) из 5-ти целых чиселName = (‘Николай’, ‘Мария’, ‘Иосиф’) # массив-константа из трех строкFamily = [‘мама’, ‘папа’, ‘брат’, ’сестра’] #изменяемый массив из 4-х строкDat = [2.5, -7.0, 0.45] #изменяемый массив из 3-х вещественных чисел9Воробьева И.А.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.