Цикл по переменной. Программирование (Python), 8 класс

Содержание

Слайд 2

Цикл по переменной for k in range(11): print(k) 0 1 2

Цикл по переменной

for k in range(11):
print(k)

0
1
2

10

Начать на с 0, а

с 1:

for k in range( 1 ,11):
print(k)

1

for k in [0,1,2,3,4,5,6,7,8,9,10]:
print(k)

for k in [1,2,3,4,5,6,7,8,9,10]:
print(k)

начальное значение

Слайд 3

Цикл по переменной Задача. Найти сумму чисел от 1 до 1000.

Цикл по переменной

Задача. Найти сумму чисел от 1 до 1000.

S =

0
for i in range(1,1001):
S += i

Задача. Вывести квадраты чисел от 10 до 1 по убыванию.

for k in range(10,0,–1):
print(k*k)

шаг

не включая 0

for k in [10,9,8,7,6,5,4,3,2,1]:
print(k*k)

Слайд 4

Цикл по переменной Задача. Найти сумму чётных чисел от 2 до

Цикл по переменной

Задача. Найти сумму чётных чисел от 2 до 1000.

S

= 0
for i in range(2,1001):
if i % 2 == 0:
S += i

S = 0
for i in range(2,1001, 2 ):
S += i

2

шаг

Слайд 5

Программирование (Python) Массивы

Программирование (Python)

Массивы

Слайд 6

Что такое массив? Массив – это группа переменных одного типа, расположенных

Что такое массив?

Массив – это группа переменных одного типа, расположенных в

памяти рядом (в соседних ячейках) и имеющих общее имя.

Надо:

выделять память
записывать данные в нужную ячейку
читать данные из ячейки

Слайд 7

Обращение к элементу массива A массив 2 15 НОМЕР элемента массива

Обращение к элементу массива

A

массив

2

15

НОМЕР элемента массива
(ИНДЕКС)

A[0]

A[1]

A[2]

A[3]

A[4]

ЗНАЧЕНИЕ элемента массива

Индекс элемента — это

значение, которое указывает на конкретный элемент массива.
Слайд 8

Обращение к элементу массива i = 1 A[2] = A[i] +

Обращение к элементу массива

i = 1
A[2] = A[i] + 2*A[i-1] +

A[2*i+1]
print( A[2]+A[4] )

A[2] = A[1] + 2*A[0] + A[3]
print( A[2]+A[4] )

101

152

A[2]

ИНДЕКС элемента массива: 2

ЗНАЧЕНИЕ элемента массива

Слайд 9

Создание массива A = [11, 22, 35, 41, 53] A =

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

A = [11, 22, 35, 41, 53]

A = [11, 22]

+ [35, 41] + [53]

A = [11]*5

Слайд 10

Что неверно? A = [1, 2, 3, 4, 5] x =

Что неверно?

A = [1, 2, 3, 4, 5]
x = 1
print( A[x-8]

)
A[x+4] = A[x-1] + A[2*x]

print( A[-7] )
A[5] = A[0] + A[2]

Выход за границы массива — это обращение к элементу с индексом, который не существует в массиве.

Слайд 11

Перебор элементов массива Перебор элементов: просматриваем все элементы массива и, если

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

Перебор элементов: просматриваем все элементы массива и, если нужно,

выполняем с каждым из них некоторую операцию.

N = 10
A = [0]*N # память уже выделена

for i in range(N):
# здесь работаем с A[i]

Слайд 12

Заполнение массива for i in range(N): A[i] = i В развёрнутом

Заполнение массива

for i in range(N):
A[i] = i

В развёрнутом виде

A[0] =

0
A[1] = 1
A[2] = 2
...
A[N-1] = N-1

0

1

2

N-1

[0, 2, 3, …, N-1]

В стиле Python:

A = [ i for i in range(N) ]

i

i

Слайд 13

X = N Заполнение массива в обратном порядке A[0] = N

X = N

Заполнение массива в обратном порядке

A[0] = N
A[1] = N-1
A[2]

= N-2
...
A[N-1] = 1

for i in range(N):
A[i] = X

X = X - 1

X = N, N-1, …, 2, 1

начальное значение

уменьшение на 1

Слайд 14

Заполнение массива в обратном порядке A[i] = X –1 +1 i

Заполнение массива в обратном порядке

A[i] = X

–1

+1

i + X

= N

X = N - i

for i in range(N):
A[i] = N – i

В стиле Python:

A = [ N-i
for i in range(N) ]

Слайд 15

Вывод массива на экран for i in range(N): print( A[i] )

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

for i in range(N):
print( A[i] )

или так:

в

столбик

Весь массив сразу:

print( A )

[1,2,3,4,5]

По одному элементу:

for x in A:
print( x )

для всех элементов в массиве A

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

пробел между элементами

Слайд 16

Вывод массива на экран (Python) print ( *A ) разбить список

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

print ( *A )

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

print

(1, 2, 3, 4, 5)

[1,2,3,4,5]

1 2 3 4 5

Слайд 17

Ввод с клавиатуры for i in range(N): s = "A[" +

Ввод с клавиатуры

for i in range(N):
s = "A[" + str(i)

+ "]="
A[i] = int(input(s))

A[0] =
A[1] =
A[2] =
A[3] =
A[4] =

5
12
34
56
13

for i in range(N):
A[i] = int(input())

С подсказкой для ввода:

или так:

A = [int(input()) 
for i in range(N)]

Слайд 18

Ввод с клавиатуры (Python) Ввод всех чисел в одной строке: data

Ввод с клавиатуры (Python)

Ввод всех чисел в одной строке:

data = input()

# "1 2 3 4 5"
s = data.split() #["1","2","3","4","5"]
A = [ int(x) for x in s ]
# [1,2,3,4,5]

int(x)

или так:

A = [int(x) for x in input().split()]

Слайд 19

Задачи «A»: а) Заполните все элементы массива из 10 элементов значением

Задачи

«A»: а) Заполните все элементы массива из 10 элементов значением X

, введённым с клавиатуры.
б) Заполните массив из 10 элементов последовательными натуральными числами, начиная с X (значение X введите с клавиатуры).

«B»: а) Заполните массив из 10 элементов натуральными числами в порядке убывания. С клавиатуры вводится значение X. Последний элемент должен быть равен X, предпоследний равен X+1 и т.д.
б) Заполните массив из 10 элементов степенями числа 2 (от 21 до 2N), так чтобы первый элемент был равен 2, следующий – 4, следующий – 8 и т.д.

Слайд 20

Задачи «C»: а) Заполните массив из 10 элементов степенями числа 2,

Задачи

«C»: а) Заполните массив из 10 элементов степенями числа 2, начиная

с конца, так чтобы последний элемент массива был равен 1, а каждый предыдущий был в 2 раза больше следующего.
б) С клавиатуры вводится целое число X. Заполните массив из 11 элементов целыми числами, так чтобы средний элемент массива был равен X, слева от него элементы стояли по возрастанию, а справа – по убыванию. Соседние элементы отличаются на единицу. Например, при X = 3 массив из 5 элементов заполняется так: 1 2 3 2 1.
Слайд 21

Заполнение случайными числами from random import randint N = 10 #

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

from random import randint
N = 10 # размер массива
A

= [0]*N # выделить память
for i in range(N):
A[i] = randint(20,100)

В краткой форме:

from random import randint
N = 10
A = [ randint(20,100)
for i in range(N) ]

из библиотеки (модуля) random

взять функцию randint

Слайд 22

Обработка элементов массива N = 10 A = [0]*N # память

Обработка элементов массива

N = 10
A = [0]*N # память уже выделена

for

i in range(N):
# здесь работаем с A[i]

Вывести на экран в столбик:

for i in range(N):
???

print( A[i] )

Вывести на экран в строчку:

for i in range(N):
???

print( A[i], end = " " )

print( *A )

Слайд 23

for i in range(N): ??? for i in range(N): ??? Обработка

for i in range(N):
???

for i in range(N):
???

Обработка

элементов массива

Вывести числа, на 1 большие, чем A[i]:

print( A[i]%10 )

Вывести последние цифры:

print( A[i]+1 )

Слайд 24

Обработка элементов массива Увеличить на 1: for i in range(N): ???

Обработка элементов массива

Увеличить на 1:

for i in range(N):
???

A[i] +=

1

Умножить на 2:

for i in range(N):
???

A[i] *= 2

Заполнить нулями:

for i in range(N):
???

A[i] = 0

Слайд 25

Программирование (Python) § 21. Алгоритмы обработки массивов

Программирование (Python)

§ 21. Алгоритмы обработки массивов

Слайд 26

Сумма элементов массива Sum = 0 for i in range(N): Sum

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

Sum = 0
for i in range(N):
Sum = Sum

+ A[i]
print( Sum )

Задача. Найти сумму элементов массива из N элементов.

0

5

1

7

2

15

3

18

4

19

Sum += A[i]

В стиле Python:

print( sum(A) )

Слайд 27

Сумма элементов массива (Python) Sum = 0 for x in A:

Сумма элементов массива (Python)

Sum = 0
for x in A:
Sum +=

x
print( Sum )

Задача. Найти сумму элементов массива A.

или так:

print( sum(A) )

for x in A:

для всех элементов из A

встроенная функция

Слайд 28

Сумма не всех элементов массива Sum = 0 for i in

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

Sum = 0
for i in range(N):
Sum

+= A[i]
print( Sum )

Задача. Найти сумму чётных элементов массива.

if A[i] % 2 == 0:
Sum += A[i]
print( Sum )

if A[i] % 2 == 0:

Слайд 29

Сумма не всех элементов массива Sum = 0 for x in

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

Sum = 0
for x in A:
Sum

+= x
print( Sum )

Задача. Найти сумму чётных элементов массива.

if x % 2 == 0:
Sum += x
print( Sum )

A

x

Sum

4

3

6

8

1

0

4

10

18

В стиле Python:

B = [x for x in A
if x % 2 == 0]
print ( sum(B) )

отбираем в новый массив все нужные значения

Слайд 30

Подсчёт элементов по условию Задача. Найти количество чётных элементов массива. count

Подсчёт элементов по условию

Задача. Найти количество чётных элементов массива.

count = 0
for

i in range(N):
if A[i] % 2 == 0:
count += 1
print( count )

переменная-счётчик

Слайд 31

Подсчёт элементов по условию (Python) Задача. Найти количество чётных элементов массива.

Подсчёт элементов по условию (Python)

Задача. Найти количество чётных элементов массива.

count =

0
for x in A:
if x % 2 == 0:
count += 1
print( count )

В стиле Python:

B = [x for x in A
if x % 2 == 0]
print ( len(B) )

размер массива

Слайд 32

Среднее арифметическое Задача. Найти среднее арифметическое элементов массива, которые больше 180

Среднее арифметическое

Задача. Найти среднее арифметическое элементов массива, которые больше 180 (рост

в см).

Sum = 0
for x in A:
if x > 180:
Sum += x
print( Sum/N )

Слайд 33

Среднее арифметическое Задача. Найти среднее арифметическое элементов массива, которые больше 180

Среднее арифметическое

Задача. Найти среднее арифметическое элементов массива, которые больше 180 (рост

в см).

Sum = 0
count = 0
for x in A:
if x > 180:
count += 1
Sum += x
print( Sum/count )

Слайд 34

Среднее арифметическое (Python) Задача. Найти среднее арифметическое элементов массива, которые больше

Среднее арифметическое (Python)

Задача. Найти среднее арифметическое элементов массива, которые больше 180

(рост в см).

B = [ x for x in A
if x > 180]
print ( sum(B)/len(B) )

отбираем нужные

Слайд 35

Перестановка элементов массива с = a a = b b =

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

с = a
a = b
b = c

элементы массива:

с =

A[i]
A[i] = A[k]
A[k] = c
Слайд 36

Перестановка пар соседних элементов Задача. Массив A содержит чётное количество элементов

Перестановка пар соседних элементов

Задача. Массив A содержит чётное количество элементов N.

Нужно поменять местами пары соседних элементов: 0-й с 1-м, 2-й — с 3-м и т. д.
Слайд 37

Перестановка пар соседних элементов for i in range(N): поменять местами A[i]

Перестановка пар соседних элементов

for i in range(N):
поменять местами A[i] и

A[i+1]

?

выход за границы массива

Слайд 38

Перестановка пар соседних элементов for i in range(0,N-1,2): # переставляем A[i]

Перестановка пар соседних элементов

for i in range(0,N-1,2):
# переставляем A[i]

и A[i+1]
с = A[i]
A[i] = A[i+1]
A[i+1] = c

A[0]↔A[1]
A[2]↔A[3]
...
A[N-2]↔A[N-1]

range(0,N-1,2):

Слайд 39

Реверс массива Задача. Переставить элементы массива в обратном порядке (выполнить реверс).

Реверс массива

Задача. Переставить элементы массива в обратном порядке (выполнить реверс).

A[0]↔A[N-1]
A[1]↔A[N-2]
A[i]↔A[N-1-i]
A[N-1]↔A[0]

0+N-1

= N-1
1+N-2 = N-1
i+??? = N-1
N-1+0 = N-1
Слайд 40

Реверс массива for i in range(N): поменять местами A[i] и A[N-1-i]

Реверс массива

for i in range(N):
поменять местами A[i] и A[N-1-i]

i=0

i=1

i=2

i=3

(N //

2):
Слайд 41

Поиск максимального элемента

Поиск максимального элемента

Слайд 42

Поиск максимального элемента for i in range(N): if A[i] > M:

Поиск максимального элемента

for i in range(N):
if A[i] > M:
M

= A[i]
print( M )

M – значение, которое заведомо меньше всех элементов массива или
M = A[0] (или любой другой элемент)

Слайд 43

Поиск максимального элемента M = A[0] for i in range(1,N): if

Поиск максимального элемента

M = A[0]
for i in range(1,N):
if A[i] >

M:
M = A[i]
print( M )

начинаем с A[1], так как A[0] мы уже посмотрели

Слайд 44

Поиск максимального элемента (Python) M = A[0] for x in A:

Поиск максимального элемента (Python)

M = A[0]
for x in A:
if x

> M:
M = x
print( M )

перебрать все элементы в массиве A

for x in A:

print( max(A) )

print( min(A) )

Слайд 45

Номер максимального элемента Задача. Найти в массиве максимальный элемент и его

Номер максимального элемента

Задача. Найти в массиве максимальный элемент и его номер.

M

= A[0]; nMax = 0
for i in range(1,N):
if A[i] > M:
M = A[i]
nMax = i
print( "A[", nMax, "]=", M )

nMax = 0

nMax = i

Слайд 46

Номер максимального элемента M = A[0]; nMax = 0 for i

Номер максимального элемента

M = A[0]; nMax = 0
for i in range(1,N):

if A[i]> M :
M = A[i]
nMax = i
print( "A[", nMax, "]=", M )

:

A[nMax]

)

A[nMax]

Слайд 47

Конец фильма ПОЛЯКОВ Константин Юрьевич д.т.н., учитель информатики ГБОУ СОШ №

Конец фильма

ПОЛЯКОВ Константин Юрьевич
д.т.н., учитель информатики
ГБОУ СОШ № 163, г. Санкт-Петербург
kpolyakov@mail.ru

ЕРЕМИН Евгений Александрович
к.ф.-м.н., доцент кафедры мультимедийной дидактики и ИТО ПГГПУ, г. Пермь
eremin@pspu.ac.ru