x = {'one': 1, 'two_three': [2, 3]} – создается словарь с ключами one и two_three и значениями 1 и [2, 3]
y = copy.copy(x) – y указывает на поверхностную копию x. Поверхностная копия – копия, у которой такие же ключи и значения, что и в оригинале. В отличии от copy.deepcopy – глубокого копирования – значения ссылаются на те же объекты, что и оригинал
y['one'] = 'I' – ключу one нового объекта присваивается значение 'I'. В старом объекте ничего не меняется
y['two_three'][0] = 'II' – в значении по ключу two_three нового объекта берется первый элемент (нумерация начинается с нуля) и заменяется на 'II'. Поскольку в старом объекте по этому ключу находится тот же самый объект, то при печати и там список будет изменен
y['two_three'][1] = 'III' – аналогично со вторым элементом списка
print(x) – выводится содержимое x, то есть {'one': 1, 'two_three': ['II', 'III']}
print(y) – выводится содержимое y, то есть {'one': 'I', 'two_three': ['II', 'III']}
На экран будут выведены две строки, написанные выше
Program abra;
Var
X : Array [1..20, 1..20] Of
real;
N : Integer;
P : Real;
i, j: Integer;
begin
WriteLn ('Вычисление произведения ');
Write ('Введите размерность: N = ');
ReadLn (N);
WriteLn ('Введите элементы массива:');
For i := 1 To N Do
For j := 1 To N Do
Begin
Write ('X[', i, ',', j, '] = ');
ReadLn (X [i, j] );
End;
P := 1;
For i := 1 To N Do
For j := 1 To N Do
P := P * X [i, j];
if (X [i,j])=0 then writeln('присутствуют нулевые элементы') else
WriteLn ('Произведение: P = ',p: 6: 1);
readln;
end.
Объяснение:
import copy – импортируется модуль copy
x = {'one': 1, 'two_three': [2, 3]} – создается словарь с ключами one и two_three и значениями 1 и [2, 3]
y = copy.copy(x) – y указывает на поверхностную копию x. Поверхностная копия – копия, у которой такие же ключи и значения, что и в оригинале. В отличии от copy.deepcopy – глубокого копирования – значения ссылаются на те же объекты, что и оригинал
y['one'] = 'I' – ключу one нового объекта присваивается значение 'I'. В старом объекте ничего не меняется
y['two_three'][0] = 'II' – в значении по ключу two_three нового объекта берется первый элемент (нумерация начинается с нуля) и заменяется на 'II'. Поскольку в старом объекте по этому ключу находится тот же самый объект, то при печати и там список будет изменен
y['two_three'][1] = 'III' – аналогично со вторым элементом списка
print(x) – выводится содержимое x, то есть {'one': 1, 'two_three': ['II', 'III']}
print(y) – выводится содержимое y, то есть {'one': 'I', 'two_three': ['II', 'III']}
На экран будут выведены две строки, написанные выше