Содержание
- 2. Программирование на языке Python § 62. Массивы
- 3. Что такое массив? Массив – это группа переменных одного типа, расположенных в памяти рядом (в соседних
- 4. Что такое массив? A массив 2 15 НОМЕР элемента массива (ИНДЕКС) A[0] A[1] A[2] A[3] A[4]
- 5. Массивы в Python: списки A = [1, 3, 4, 23, 5] A = [1, 3] +
- 6. Генераторы списков A =[ i for i in range(10) ] [0, 1, 2, 3, 4, 5,
- 7. Как обработать все элементы массива? Создание массива: Обработка: N = 5 A = [0]*N # обработать
- 8. Как обработать все элементы массива? Обработка с переменной: i = 0; # обработать A[i] i +=
- 9. Ввод массива с клавиатуры Создание массива: Ввод с клавиатуры: N = 10 A = [0]*N for
- 10. Ввод массива с клавиатуры Ввод без подсказок: Ввод в одной строке: A = [ int(input()) for
- 11. Вывод массива на экран Как список: print ( A ) [1, 2, 3, 4, 5] В
- 12. Заполнение случайными числами from random import randint N = 10 A = [ randint(20,100) for x
- 13. Перебор элементов Общая схема (можно изменять A[i]): for i in range(N): ... # сделать что-то с
- 14. Подсчёт нужных элементов Задача. В массиве записаны данные о росте баскетболистов. Сколько из них имеет рост
- 15. Перебор элементов Сумма: summa = 0 for x in A: if 180 summa += x print
- 16. Перебор элементов Среднее арифметическое: count = 0 summa = 0 for x in A: if 180
- 17. Задачи «A»: Заполните массив случайными числами в интервале [0,100] и найдите среднее арифметическое его значений. Пример:
- 18. Задачи «C»: Заполните массив из N элементов случайными числами в интервале [1,N] так, чтобы в массив
- 19. Программирование на языке Python § 63. Алгоритмы обработки массивов
- 20. Поиск в массиве Найти элемент, равный X: i = 0 while A[i] != X: i +=
- 21. Поиск в массиве nX = -1 for i in range ( N ): if A[i] ==
- 22. for i in range ( N ): if A[i] == X: print ( "A[", i, "]=",
- 23. Задачи «A»: Заполните массив случайными числами в интервале [0,5]. Введите число X и найдите все значения,
- 24. Задачи «B»: Заполните массив случайными числами в интервале [0,5]. Определить, есть ли в нем элементы с
- 25. Задачи «C»: Заполните массив случайными числами. Определить, есть ли в нем элементы с одинаковыми значениями, не
- 26. Максимальный элемент M = A[0] for i in range(1,N): if A[i] > M: M = A[i]
- 27. Максимальный элемент и его номер
- 28. Максимальный элемент и его номер M = max(A) nMax = A.index(M) print ( "A[", nMax, "]=",
- 29. Задачи «A»: Заполнить массив случайными числами и найти минимальный и максимальный элементы массива и их номера.
- 30. Задачи «C»: Введите массив с клавиатуры и найдите (за один проход) количество элементов, имеющих максимальное значение.
- 31. Реверс массива «Простое» решение: for i in range( N ): поменять местами A[i] и A[N-1-i] N//2
- 32. Реверс массива for i in range(N//2): c = A[i] A[i] = A[N-1-i] A[N-1-i] = c Варианты
- 33. Циклический сдвиг элементов «Простое» решение: c = A[0] for i in range(N-1): A[i] = A[i+1] A[N-1]
- 34. Срезы в Python A[1:3] [12, 5] A[2:3] [5] A[:3] [7, 12, 5] A[0:3] с начала A[3:N-2]
- 35. Срезы в Python – отрицательные индексы A[1:-1] [12,5,8,…,18,34,40] разрезы A[1:N-1] A[-4:-2] [18, 34] A[N-4:N-2]
- 36. Срезы в Python – шаг A[1:6:2] [12, 8, 18] разрезы A[::3] [7, 8, 34] A[8:2:-2] [23,
- 37. Задачи «A»: Заполнить массив случайными числами и выполнить циклический сдвиг элементов массива вправо на 1 элемент.
- 38. Задачи «C»: Заполнить массив случайными числами в интервале [-100,100] и переставить элементы так, чтобы все положительные
- 39. Отбор нужных элементов Простое решение: Задача. Отобрать элементы массива A, удовлетворяющие некоторому условию, в массив B.
- 40. Отбор нужных элементов Решение в стиле Python: Задача. Отобрать элементы массива A, удовлетворяющие некоторому условию, в
- 41. Задачи «A»: Заполнить массив случайными числами в интервале [-10,10] и отобрать в другой массив все чётные
- 42. Задачи «C»: Заполнить массив случайными числами и отобрать в другой массив все числа Фибоначчи. Используйте логическую
- 43. Особенности работы со списками A = [1, 2, 3] B = A [1, 2, 3] A
- 44. Копирование списков «Поверхностное» копирование: import copy A = [1, 2, 3] B = copy.copy(A) A =
- 45. Программирование на языке Python § 64. Сортировка
- 46. Что такое сортировка? Сортировка – это расстановка элементов массива в заданном порядке. …по возрастанию, убыванию, последней
- 47. Метод пузырька (сортировка обменами) Идея: пузырек воздуха в стакане воды поднимается со дна вверх. Для массивов
- 48. Метод пузырька 2-й проход: 3-й проход: 4-й проход:
- 49. Метод пузырька 1-й проход: сделать для j от N-2 до 0 шаг -1 если A[j+1] #
- 50. Метод пузырька 1-й проход: for j in range(N-2, -1 ,-1): if A[j+1] # поменять местами A[j]
- 51. Метод пузырька for i in range(N-1): for j in range(N-2, i-1 ,-1): if A[j+1] A[j], A[j+1]
- 52. Задачи «A»: Напишите программу, в которой сортировка выполняется «методом камня» – самый «тяжёлый» элемент опускается в
- 53. Метод выбора (минимального элемента) Идея: найти минимальный элемент и поставить его на первое место. for i
- 54. Метод выбора (минимального элемента) for i in range(N-1): if i!= nMin: A[i], A[nMin] = A[nMin], A[i]
- 55. Задачи «A»: Массив содержит четное количество элементов. Напишите программу, которая сортирует первую половину массива по возрастанию,
- 56. Задачи «B»: Напишите программу, которая сортирует массив и находит количество различных чисел в нем. Пример: Массив:
- 57. Быстрая сортировка (QuickSort) Идея: выгоднее переставлять элементы, который находятся дальше друг от друга.
- 58. Быстрая сортировка Шаг 2: переставить элементы так: при сортировке элементы не покидают « свою область»! Шаг
- 59. Быстрая сортировка Разделение: выбрать любой элемент массива (X=67) установить L = 1, R = N увеличивая
- 60. Быстрая сортировка
- 61. Быстрая сортировка N = 7 A = [0]*N # заполнить массив qSort( A, 0, N-1 )
- 62. Быстрая сортировка def qSort ( A, nStart, nEnd ): if nStart >= nEnd: return L =
- 63. Быстрая сортировка Случайный выбор элемента-разделителя: from random import randint def qSort ( A, nStart, nEnd ):
- 64. Быстрая сортировка В стиле Python: from random import choice def qSort ( A ): if len(A)
- 65. Быстрая сортировка Сортировка массива случайных значений:
- 66. Сортировка в Python B = sorted( A ) алгоритм Timsort По возрастанию: B = sorted( A,
- 67. Сортировка в Python – на месте A.sort() По возрастанию: A.sort ( reverse = True ) По
- 68. Задачи «A»: Массив содержит четное количество элементов. Напишите программу, которая сортирует по возрастанию отдельно элементы первой
- 69. Задачи «B»: Напишите программу, которая сортирует массив и находит количество различных чисел в нем. Используйте алгоритм
- 70. Задачи «C»: Напишите программу, которая сравнивает число перестановок элементов при использовании сортировки «пузырьком», методом выбора и
- 71. Программирование на языке Python § 65. Двоичный поиск
- 72. Двоичный поиск X = 7 X 8 4 X > 4 6 X > 6 Выбрать
- 73. Двоичный поиск X = 44
- 74. Двоичный поиск L = 0; R = N # начальный отрезок while L c = (L+R)
- 75. Двоичный поиск скорость выше, чем при линейном поиске нужна предварительная сортировка Число сравнений:
- 76. Задачи «A»: Заполнить массив случайными числами и отсортировать его. Ввести число X. Используя двоичный поиск, определить,
- 77. Задачи «B»: Заполнить массив случайными числами и отсортировать его. Ввести число X. Используя двоичный поиск, определить,
- 78. Задачи «C»: Заполнить массив случайными числами и ввести число и отсортировать его. Ввести число X. Используя
- 79. Программирование на языке Python § 66. Символьные строки
- 80. Символьные строки Начальное значение: Вывод на экран: print ( s ) s = "Привет!" Длина строки:
- 81. Символьные строки Ввод с клавиатуры: s = input ( "Введите имя: " ) Изменение строки: s[4]
- 82. Символьные строки s = input( "Введите строку:" ) s1 = "" # строка-результат for c in
- 83. Задачи «A»: Ввести с клавиатуры символьную строку и заменить в ней все буквы «а» на «б»
- 84. Задачи «B»: Ввести с клавиатуры символьную строку и определить, сколько в ней слов. Словом считается последовательности
- 85. Задачи «C»: Ввести с клавиатуры символьную строку и найдите самое длинное слово и его длину. Словом
- 86. Операции со строками Объединение (конкатенация) : s1 = "Привет" s2 = "Вася" s = s1 +
- 87. Операции со строками Срезы: s = "0123456789" s1 = s[:8] # "01234567" от начала строки s
- 88. Операции со строками Срезы с отрицательными индексами: s = "0123456789" s1 = s[:-2] # "01234567" N-2
- 89. Операции со строками Вставка: s = "0123456789" s1 = s[:3] + "ABC" + s[3:] Удаление: s
- 90. Стандартные функции Верхний/нижний регистр: s = "aAbBcC" s1 = s.upper() # "AABBCC" s2 = s.lower() #
- 91. Поиск в строках s = "Здесь был Вася." n = s.find ( "с" ) # n
- 92. Пример обработки строк Задача: Ввести имя, отчество и фамилию. Преобразовать их к формату «фамилия-инициалы». Пример: Введите
- 93. Пример обработки строк print ( "Введите имя, отчество и фамилию:" ) s = input() n =
- 94. Пример обработки строк print ( "Введите имя, отчество и фамилию:" ) s = input() fio =
- 95. Задачи «A»: Ввести с клавиатуры в одну строку фамилию, имя и отчество, разделив их пробелом. Вывести
- 96. Задачи «B»: Ввести адрес файла и «разобрать» его на части, разделенные знаком "/". Каждую часть вывести
- 97. Задачи «C»: Напишите программу, которая заменяет во всей строке одну последовательность символов на другую. Пример: Введите
- 98. Преобразования «строка» – «число» Из строки в число: s = "123" N = int ( s
- 99. Задачи «A»: Напишите программу, которая вычисляет сумму трех чисел, введенную в форме символьной строки. Все числа
- 100. Задачи «C»: Напишите программу, которая вычисляет выражение, состоящее из трех чисел и двух знаков (допускаются знаки
- 101. Задачи «D»: Напишите программу, которая вычисляет выражение, состоящее из трех чисел и двух знаков (допускаются знаки
- 102. Строки в процедурах и функциях Задача: построить процедуру, которая заменяет в строке s все вхождения слова-образца
- 103. Замена всех экземпляров подстроки
- 104. Замена всех экземпляров подстроки s = "12.12.12" s = replaceAll ( s, "12", "A12B" ) print(
- 105. Замена всех экземпляров подстроки def replaceAll ( s, wOld, wNew ): lenOld = len(wOld) res =
- 106. Замена всех экземпляров подстроки s = "12.12.12" s = s.replace( "12", "A12B" ) print ( s
- 107. Задачи «A»: Напишите функцию, которая отсекает всю часть строки после первого слова. Пример: Введите строку: Однажды
- 108. Задачи «B»: Напишите функцию, которая заменяет расширение файла на заданное новое расширение. Пример: Введите имя файла:
- 109. Задачи «C»: Напишите функцию, которая заменяет во всей строке все римские числа на соответствующие десятичные числа.
- 110. Рекурсивный перебор Задача. В алфавите языка племени «тумба-юмба» четыре буквы: «Ы», «Ш», «Ч» и «О». Нужно
- 111. Рекурсивный перебор перебор L символов w[0]="Ы" # перебор последних L-1 символов w[0]="Ш" # перебор последних L-1
- 112. Рекурсивный перебор # основная программа TumbaWords ( "ЫШЧО", "", 3 ); def TumbaWords ( A, w,
- 113. Рекурсивный перебор + счётчик TumbaWords ( "ЫШЧО", "", 3 ) print( count ) def TumbaWords (
- 114. Рекурсивный перебор + условие TumbaWords ( "ЫШЧО", "", 3 ) print( count ) def TumbaWords (
- 115. Рекурсивный перебор + условие (функция) def TumbaWords ( A, w, L ): global count if len(w)
- 116. Задачи «A»: В алфавите языке племени «тумба-юмба» четыре буквы: «Ы», «Ш», «Ч» и «О». Нужно вывести
- 117. Задачи «C»: В алфавите языке племени «тумба-юмба» четыре буквы: «Ы», «Ш», «Ч» и «О». Нужно вывести
- 118. Сравнение строк Сравнение по кодам символов:
- 119. Сравнение строк 5STEAM steam
- 120. Сортировка строк aS = [] # пустой список строк print ( "Введите строки для сортировки:" )
- 121. Задачи «A»: Вводится 5 строк, в которых сначала записан порядковый номер строки с точкой, а затем
- 122. Задачи «B»: Вводится несколько строк (не более 20), в которых сначала записан порядковый номер строки с
- 123. Задачи «C»: Вводится несколько строк (не более 20), в которых сначала записаны инициалы и фамилии работников
- 124. Программирование на языке Python § 67. Матрицы
- 125. Что такое матрица? Матрица — это прямоугольная таблица, составленная из элементов одного типа (чисел, строк и
- 126. Создание матриц A = [[-1, 0, 1], [-1, 0, 1], [0, 1, -1]] перенос на другую
- 127. Создание матриц N = 3 M = 2 row = [0]*M A = [row]*N Нулевая матрица:
- 128. Вывод матриц print ( A ) [[1, 12, 3], [4, 5, 146], [7, 118, 99]] def
- 129. Простые алгоритмы Заполнение случайными числами: import random for i in range(N): for j in range(M): A[i][j]
- 130. Задачи «A»: Напишите программу, которая заполняет квадратную матрицу случайными числами в интервале [10,99], и находит максимальный
- 131. Задачи «B»: Яркости пикселей рисунка закодированы числами от 0 до 255 в виде матрицы. Преобразовать рисунок
- 132. Задачи «С»: Заполните матрицу, содержащую N строк и M столбцов, натуральными числами по спирали и змейкой,
- 133. Перебор элементов матрицы Главная диагональ: for i in range(N): # работаем с A[i][i] Побочная диагональ: for
- 134. Перестановка строк и столбцов 2-я и 4-я строки: A[2], A[4] = A[4], A[2] 2-й и 4-й
- 135. Выделение строк и столбцов 1-я строка: R = A[1][:] 2-й столбец: C = [] for row
- 136. Задачи «A»: Напишите программу, которая заполняет квадратную матрицу случайными числами в интервале [10,99], а затем записывает
- 137. Задачи «B»: Пиксели рисунка закодированы числами (обозначающими цвет) в виде матрицы, содержащей N строк и M
- 138. Программирование на языке Python § 68. Работа с файлами
- 139. Как работать с файлами? файлы текстовые двоичные «plain text»: текст, разбитый на строки; из специальных символов
- 140. Принцип сэндвича хлеб хлеб начинка Fin = open ( "input.txt" ) Fout = open ( "output.txt",
- 141. Ввод данных Fin = open( "input.txt" ) s = Fin.readline() # "1 2" Чтение строки: Чтение
- 142. Вывод данных в файл a = 1 b = 2 Fout = open( "output.txt", "w" )
- 143. Чтение неизвестного количества данных пока не конец файла прочитать число из файла добавить его к сумме
- 144. Чтение неизвестного количества данных Задача. В файле записано в столбик неизвестное количество чисел. Найти их сумму.
- 145. Чтение неизвестного количества данных Задача. В файле записано в столбик неизвестное количество чисел. Найти их сумму.
- 146. Задачи «A»: Напишите программу, которая находит среднее арифметическое всех чисел, записанных в файле в столбик, и
- 147. Обработка массивов Задача. В файле записаны в столбик целые числа. Вывести в другой текстовый файл те
- 148. Обработка массивов Ввод массива: A = [] while True: s = Fin.readline() if not s: break
- 149. Обработка массивов Вывод результата: Fout = open ( "output.txt", "w" ) Fout.write ( str(A) ) Fout.close()
- 150. Задачи «A»: В файле в столбик записаны числа. Отсортировать их по возрастанию последней цифры и записать
- 151. Обработка строк Задача. В файле записано данные о собаках: в каждой строчке кличка собаки, ее возраст
- 152. Чтение данных из файла Чтение одной строки: s = Fin.readline() Разбивка по пробелам: data = s.split()
- 153. Обработка строк Fin = open ( "input.txt" ) Fout = open ( "output.txt", "w" ) while
- 154. Обработка строк lst = Fin.readlines() for s in lst: age = int ( s.split()[1] ) if
- 155. Задачи «A»: В файле записаны данные о результатах сдачи экзамена. Каждая строка содержит фамилию, имя и
- 156. Задачи «C»: В файле записаны данные о результатах сдачи экзамена. Каждая строка содержит фамилию, имя и
- 157. Конец фильма ПОЛЯКОВ Константин Юрьевич д.т.н., учитель информатики ГБОУ СОШ № 163, г. Санкт-Петербург [email protected] ЕРЕМИН
- 159. Скачать презентацию