Ответы
from random import randint
# Список случайных значений (длинна и ограничения в числах указаны не были, сделал свои)
lst = []
for _ in range(10): lst.append(randint(-10, 10))
print('Список:', lst)
# №1
sum_1 = 0
sum_2 = 0
sum_3 = 0
sum_6 = 0
mult_4 = 1
mult_5 = 1
for i in range(len(lst)):
# 1
if lst[i] < 0: sum_1 += lst[i]
# 2
if lst[i] % 2 == 0: sum_2 += lst[i]
# 3
else: sum_3 += lst[i]
# 4
if i % 3 == 0: mult_4 *= lst[i]
# 5
lstTemp = lst[min(lst.index(min(lst)), lst.index(max(lst))):max(lst.index(min(lst)), lst.index(max(lst))) + 1]
for j in lstTemp: mult_5 *= j
# 6
for n in lst:
if n > 0:
first = lst.index(n)
break
for m in range(1, len(lst)):
if lst[-m] > 0:
second = lst.index(lst[-m])
break
sum_6 = sum(lst[first:(second+1)])
print(f"""
Сумма отрицательных: {sum_1}
Сумма парных: {sum_2}
Сумма непарных: {sum_3}
Произведение элементов с индексами кратными 3: {mult_4}
Произведение между мин и макс: {mult_5}
Сумма между первым положительным и последним: {sum_6}
""")
# №2
lst_1 = []
lst_2 = []
lst_3 = []
lst_4 = []
for i in lst:
if i % 2 == 0: lst_1.append(i) # 1
else: lst_2.append(i) # 2
if i < 0: lst_3.append(i) # 3
elif i > 0: lst_4.append(i) # 4
print(f"""
Парные: {lst_1}
Непарные: {lst_2}
Отрицательные: {lst_3}
Положительные: {lst_4}
""")
Если пробелы не отображаются загрузил текстовый файл
Ответ:
from random import randint
from functools import reduce
n=5
A=[randint(-10,10) for i in range(n)]
print('Список: ',A) #создали и распечатали список
print('\nсумма отрицательных: ',sum(x for x in A if x<0),
'\nсумма четных: ',sum(x for x in A if not(x%2)),
'\nсумма нечетных: ',sum(x for x in A if x%2),
'\nпроизведение элементов с индексами кратными 3:',
reduce(lambda x, y: x * y, [A[i] for i in range(n) if not(i%3)]),
'\nпроизведение элементов находящимися между максимальным и минимальным:',
reduce(lambda x, y: x * y, [A[i] for i in range(min(A.index(min(A)),A.index(max(A))), max(A.index(min(A)),A.index(max(A)))+1)]))
#сами максимальный и минимальный включаем, т.к. если между ними ничего, что выдавать?
# далее я сдался, потому что красиво не получается и решил сначала сделать задание 2 на том же списке.
#Если это сразу делать, то многое можно упростить в суммах, но уже как есть.
B=[x for x in A if not(x%2)]
C=[x for x in A if x%2]
D=[x for x in A if x<0]
E=[x for x in A if x>0]
T=[i for i in range(n) if A[i]>0] # индексы положительных
# теперь с T списком легко сделать последнее тоже
print('cумма между первым положительным и последним:',sum(A[i] for i in range(T[0]+1,T[-1])))
#Сами этот первый положительный и последний не включаются.
print('\nЗадание 2:')
print('четные:',B)
print('нечетные:',C)
print('отрицательные:',D)
print('положительные:',E)
Объяснение:
Было интересно потренироваться над генерацией спиcков.