Программирование на языке Python. Обработка массивов

Содержание

Слайд 2

Массивы (списки) в Python

Создание массива:

A = [1, 5, 0, -1, 12]

print(A[1])

5

print(2*A[0]+A[3])

1

A =

Массивы (списки) в Python Создание массива: A = [1, 5, 0, -1,
5*[0]

A = [0,0,0,0,0]

Слайд 3

Вывод массива на экран

Как список:

print ( A )

[1, 2, 3, 4, 5]

В

Вывод массива на экран Как список: print ( A ) [1, 2,
строчку через пробел:

for i in range(N):
print ( A[i], end = " " )

1 2 3 4 5

или так:

for x in A:
print ( x, end = " " )

1 2 3 4 5

пробел после вывода очередного числа

или так:

print ( *A )

разбить список на элементы

print (1, 2, 3, 4, 5)

Слайд 4

Заполнение случайными числами

from random import randint
A = []
for i in range(5):
A.append(randint(1,6))
print(A)

Или

Заполнение случайными числами from random import randint A = [] for i
так:

from random import randint
A = 5*[0]
for i in range(5):
A[i] = randint(1,6)
print(A)

наращиваем с каждым шагом

сначала выделили память, потом меняем

Слайд 5

Подсчёт элементов

A = [1, 2, 3, 4, 5, 6, 7]
k = 0
for

Подсчёт элементов A = [1, 2, 3, 4, 5, 6, 7] k
i in range(7):
if A[i] > 3: k += 1
print(k)

4

k := 0
нц для i от 1 до 7
если A[i] > 3 то
k := k + 1
все
кц
вывод k

k := 0;
for i:=1 to 7 do
if A[i] > 3 then
k = k + 1;
writeln(k);

Кумир:

Паскаль:

Слайд 6

Подсчёт элементов

A = [1, 21, 3, 46, 53, 6, 17]
k = 0
for

Подсчёт элементов A = [1, 21, 3, 46, 53, 6, 17] k
i in range(7):
if A[i] % 3 == 0: k += 1
print(k)

3

if A[i] % 10 == 6: k += 1

2

Варианты условий:

if(A[i] % 10 == 6 and
A[i] % 3 == 0): k += 1

1

if(A[i] >= 10 and
A[i] < 100): k += 1

4

Слайд 7

Суммирование элементов

A = [1, 21, 3, 46, 53, 6, 115]
s = 0
for

Суммирование элементов A = [1, 21, 3, 46, 53, 6, 115] s
i in range(7):
if A[i] % 3 == 0: s += A[i]
print(s)

30

if A[i] % 10 == 6: s += A[i]

52

Варианты условий:

if(A[i] % 10 == 6 and
A[i] % 3 == 0): s += A[i]

6

if(A[i] >= 10 and
A[i] < 100): s += A[i]

120

Слайд 8

Задачи

«3»: Напишите программу, которая находит в массиве количество элементов, делящихся на 5.
«4»:

Задачи «3»: Напишите программу, которая находит в массиве количество элементов, делящихся на
Напишите программу, которая находит среднее арифметическое всех элементов массива, которые делятся на 3 и заканчиваются на 1.
«5»: Напишите программу, которая находит среднее арифметическое всех элементов массива, двоичная запись которых содержит ровно 4 цифры.
«6»: Напишите программу, которая находит элемент массива, двоичная запись которого содержит больше всего единиц.

Слайд 9

Максимум

A = [1, 21, 3, 46, 53, 6, 117]
m = 0
for i

Максимум A = [1, 21, 3, 46, 53, 6, 117] m =
in range(7):
if A[i] > m: m = A[i]
print(m)

117

m := 0
нц для i от 1 до 7
если A[i] > m то
m := A[i]
все
кц
вывод m

m := 0;
for i:=1 to 7 do
if A[i] > m then
m = A[i];
writeln(m);

Кумир:

Паскаль:

0

меньше всех

Слайд 10

Минимум

A = [1, 21, 3, 46, 53, 6, 117]
m = 999
for i

Минимум A = [1, 21, 3, 46, 53, 6, 117] m =
in range(7):
if A[i] < m: m = A[i]
print(m)

1

m := 999
нц для i от 1 до 7
если A[i] < m то
m := A[i]
все
кц
вывод m

m := 999;
for i:=1 to 7 do
if A[i] < m then
m = A[i];
writeln(m);

Кумир:

Паскаль:

999

больше всех

Слайд 11

Если значения в массиве неизвестны…

A = [...как-то получили...]
N = len(A) # длина

Если значения в массиве неизвестны… A = [...как-то получили...] N = len(A)
массива
m = ???
for i in range(N):
if A[i] < m: m = A[i]
print(m)

пропустить A[0]

A[0]

Python:

m = min(A)

Слайд 12

Задачи

«3»: Напишите программу, которая находит минимальный и максимальный из чётных элементов массива.

Задачи «3»: Напишите программу, которая находит минимальный и максимальный из чётных элементов
Гарантируется, что все элементы массива находятся в диапазоне [-100;100] и среди них есть хотя бы один чётный элемент.
«4»: Напишите программу, которая находит минимальный и максимальный из элементов массива, заканчивающихся на "5". Если в массиве нет таких элементов, нужно вывести слово "нет".

Слайд 13

Задачи

«5»: Напишите программу, которая находит минимальный из чётных элементов массива и его

Задачи «5»: Напишите программу, которая находит минимальный из чётных элементов массива и
номер. Если в массиве нет таких элементов, нужно вывести слово "нет".
Пример:
Массив: [1, 12, 3, 4, 5, 18, 24]
Минимум: A[3] = 4
Пример:
Массив: [1, 13, 3, 19, 5, 71, 241]
Минимум: нет

Слайд 14

Сортировка

Сортировка – это расстановка элементов массива в заданном порядке (возрастания, убывания, …).

Было:

Сортировка Сортировка – это расстановка элементов массива в заданном порядке (возрастания, убывания,
9 6 2 7 3 1 5 4 8 0

Стало:
0 1 2 3 4 5 6 7 8 9

Слайд 15

Перестановка элементов

2

3

1

Задача: поменять местами содержимое двух чашек.

Задача: поменять местами содержимое двух ячеек

Перестановка элементов 2 3 1 Задача: поменять местами содержимое двух чашек. Задача:
памяти.

4

6

?

4

6

4

x

y

c = x
x = y
y = c

x = y
y = x

3

2

1

Python:

x, y = y, x

Слайд 16

Метод выбора (минимального элемента)

Идея:
найти минимальный элемент и поставить на первое место (поменять

Метод выбора (минимального элемента) Идея: найти минимальный элемент и поставить на первое
местами с A[0])
из оставшихся найти минимальный элемент и поставить на второе место (поменять местами с A[1]), и т.д.

N-1

Слайд 17

Как найти номер минимального элемента?

A = [1, 21, 3, -46, 53, -6,

Как найти номер минимального элемента? A = [1, 21, 3, -46, 53,
117]
N = len(A) # длина массива
m = A[0] # считаем A[0] = min
nM = 0 # номер минимального
for i in range(N):
if A[i] < m:
m = A[i]
nM = i # новый номер
print(nM)

nM = 0

nM = i

m = A[nM]

Слайд 18

Как найти номер минимального элемента?

A = [1, 21, 3, -46, 53, -6,

Как найти номер минимального элемента? A = [1, 21, 3, -46, 53,
117]
N = len(A) # длина массива
nM = 0 # номер минимального
for i in range(N):
if A[i] < A[nM]:
nM = i # новый номер
print(nM)

A[nM]

часть алгоритма сортировки

Python:

m = min(A)
nM = A.index(m)

Слайд 19

Сортировка выбором

A = [1, 21, 3, -46, 53, -6, 117]
N = len(A)

Сортировка выбором A = [1, 21, 3, -46, 53, -6, 117] N
# длина массива
for k in range(N-1):
nM = 0
for i in range(N):
if A[i] < A[nM]:
nM = i
A[k],A[nM] = A[nM],A[k]
print(A)

nM = 0
for i in range(N):
if A[i] < A[nM]:
nM = i

A[k],A[nM] = A[nM],A[k]

поиск минимального

перестановка

nM = k

(k,N):

искать минимальный, начиная с номера k!

Python:

A.sort()

Слайд 20

Задания

«3»: Заполнить массив из 10 элементов случайными числами в интервале [0..99] и

Задания «3»: Заполнить массив из 10 элементов случайными числами в интервале [0..99]
отсортировать его по убыванию последней цифры.
Пример:
Исходный массив:
14 25 13 12 76 58 21 87 10 98
Результат:
98 58 87 76 25 14 13 12 21 10

Слайд 21

Задания

«4»: Заполнить массив из 10 элементов случайными числами в интервале [0..99] и

Задания «4»: Заполнить массив из 10 элементов случайными числами в интервале [0..99]
отсортировать его по возрастанию суммы цифр (подсказка: их всего две).
Пример:
Исходный массив:
14 25 13 12 76 58 21 87 10 98
Результат:
10 21 12 13 14 25 76 58 87 98