1.Напишите инструкцию, которая создает список с приведенными далее строковыми зна­чениями:
'Эйнштейн', 'Ньютон', 'Коперник' и 'Кеплер'.

mathematics  = ['Эйнштейн', 'Ньютон', 'Коперник', 'Кеплер']

2. Допустим, что переменная names ссылается на список. Напишите цикл for, который вы­водит каждый элемент списка.

names  = ['Эйнштейн', 'Ньютон', 'Коперник', 'Кеплер']
for i in names:
    print(i)

3. Допустим, что список numbers1 имеет 100 элементов, а numbers2 является пустым спи­ском. Напишите код, который копирует значения из списка numbers1 в список numbers2.

numbers1 = list(range(100))
numbers2 = []

#1 добавляем к пустому списку то что копируем
numbers2 += numbers1

#2 копироварие при помощи среза
numbers2 = numbers2[:]

#3 копирование методом copy
numbers2 = numbers2.copy()

#4 копирование путем создания нового списка на основе старого
numbers2 = list(numbers1)

4. Составьте блок-схему, которая демонстрирует общую логику суммирования значений в списке. 

создать переменную накопитель -> перебрать список добавляя их в переменную накопитель

5. Напишите функцию, которая принимает список в качестве аргумента (допустим, что список содержит целые числа) и возвращает сумму значений в списке.

#1
def main(value):
    return sum(value)
#2
def main2(value):
    totall = 0
    for i in value:
        totall += i
    return totall

6. Допустим, что переменная names ссылается на список строковых значений. Напишите программный код, который определяет, находится ли имя 'Руби' в списке names. Если это так, то выведите сообщение 'Привет, Руби!'.  В противном случае выведите сооб­щение 'Руби
отсутствует'.

names  = ['Эйнштейн', 'Ньютон', 'Коперник', 'Кеплер']
name = 'Руби'
if name in names:
    print('Привет, Руби!')
else:
    print('Руби отсутствует')

7. Что напечатает приведенный ниже фрагмент кода? 

list1 =[ 40, 50, 60]
list2 = [10, 20, 30]
list3 = list1 + list2
print ( list3)

list 3 = [ 40, 50, 60, 10, 20, 30]

8. Предположим, что list1 - это список целых чисел. Напишите инструкцию, которая использует включение в список для создания второго списка, содержащего квадраты элементов из списка list1.

list_1 = list(range(1,11))
list2 = [x**2 for x in list_1]

9. Предположим, что list1 - это список целых чисел. Напишите инструкцию, которая использует включение в список для создания второго списка, содержащего элементы из списка list1, значения которых больше 100.

list_1 = [101, 80, 120, 75, 201]
list_2 = [x for x in list_1 if x > 100]

10. Предположим, что listl - это список целых чисел. Напишите инструкцию, которая использует включение в список для создания второго списка, содержащего элементы из списка listl, являющиеся четными числами.

list_1 = list(range(1,11))
list_2 = [x for x in list_1 if x % 2 == 0]

11. Напишите инструкцию, которая создает двумерный список с 5 строками и 3 столбцами. Затем напишите вложенные циклы, которые получают от пользователя целочисленное значение для каждого элемента в списке.

ROW = 5
COL = 3
list_ = [[0 for x in range(COL)] for x in range(ROW)]
for i in range(ROW):
    for c in range(COL):
        list_[i][c] = int(input('Введите целочисленное значение: '))
print(list_)