Thon Условные



бет30/38
Дата23.02.2020
өлшемі2,05 Mb.
#58878
1   ...   26   27   28   29   30   31   32   33   ...   38
Байланысты:
8-3 python


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

A[N-1] = 1

Теперь запишем цикл, в котором значение, присваиваемое очередному элементу, обозначается через Х:

for i in range(N):

A[i] = X

Однако не всё так просто: величина X должна изменяться при переходе к следующему элементу.



Определите, как меняется X: чему равно начальное значе-ние этой переменной, как она изменяется при переходе к слелующему элементу?

Можно записать цикл так:

X = N

for i in range(N):

A[i] = X X -= 1

А можно его значительно упростить, заметив, что при уве-личении номера элемента i на единицу значение X уменьшает-ся, причём тоже на единицу. Поэтому сумма i+X остаётся посто-янной! Её можно вычислить, зная, что для первого по счёту элемента она равна 0+N.



Выразите X из уравнения i + X = 0 + N.

В элемент с номером i записывается значение N i, поэтому цикл можно записать так:

for i in range(N):

A[i] = N - i

Предположим, что массив A заполнен некоторыми значе-ниями. Попробуем увеличить все его элементы на единицу.



79 http://kpolyakov.spb.ru

05.04.2019 Информатика, 8 класс К.Ю. Поляков, Е.А. Еремин



Этот значит, что нужно заменить значение элемента A[i] на A[i]+1:

for i in range(N):

A[i] += 1

Определите, какие значения окажутся в массиве после выполнения фрагмента программы:

A = [6, 5, 4, 3, 2] N = len(A)

for i in range(N):

A[i] += i

Запишите фрагмент программы, который умножит все элементы массива на 2.

Запишите фрагмент программы, который умножит первый элемент массива на 1, второй на 2, третий на 3 и т.д.

Генераторы

Методы заполнения массивов, использующие цикл, работают в большинстве языков программирования. В языке Python есть особые возможности, которые позволяют решать многие задачи кратко и надёжно.



Например, две операции создание и заполнение массива можно объединить в одну с помощью генератора выражения, напоминающего цикл:

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

Как вы знаете, цикл for i in range(N) перебирает все значения i от 0 до N1. Выражение перед словом for данном случае i) это то, что записывается в очередной элемент мас-сива для каждого i. В приведённом примере массив заполняет-ся значениями, которые последовательно принимает перемен-ная i, то есть при N=10 мы построим такой массив:

A = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
80 http://kpolyakov.spb.ru

05.04.2019 Информатика, 8 класс К.Ю. Поляков, Е.А. Еремин



Тот же результат можно получить, если использовать функ-

цию list для того, чтобы создать список из данных, которые получаются с помощью функции range:


Достарыңызбен бөлісу:
1   ...   26   27   28   29   30   31   32   33   ...   38




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет