• Предмет: Информатика
  • Автор: tema3093139
  • Вопрос задан 2 года назад

Задачи на списки в Python:
1. Опишите алгоритм подсчета произведения всех отрицательных элементов заданного целочисленного массива размером 30 элементов
2. Опишите алгоритм подсчета максимального количества подряд идущих отрицательных элементов в заданном целочисленном массиве длиной 30.
3. Опи­ши­те ал­го­ритм под­сче­та суммы всех от­ри­ца­тель­ных эле­мен­тов за­дан­но­го це­ло­чис­лен­но­го мас­си­ва раз­ме­ром 30 эле­мен­тов. Если от­ри­ца­тель­ных эле­мен­тов нет со­об­щи­те об этом выводом «NO» на экран


demianwolfssd: В каждом задании упоминают "массивы". Для Python это неправильно, так как хотя в этом языке программирования и есть массивы (arrays), их КРАЙНЕ редко используют. Вместо них есть списки (lists), кортежи (tuples), множества (sets) и другие типы данных. Впрочем, если интересно, можешь почитать https://pythonworld.ru/moduli/modul-array-massivy-v-python.html и https://stackoverflow.com/questions/176011/python-list-vs-array-when-to-use
tema3093139: Большое спасибо за объяснение, буду знать

Ответы

Ответ дал: demianwolfssd
1

Вот код:

import random

# Сгенерируем список

lst = [random.randint(-30, 30) for _ in range(30)]

# 1

result = 1

for item in lst:

   if item < 0:

       result *= item

print(result)

# или

from functools import reduce

print(reduce(lambda x, y: x * y,

            filter(lambda item: item < 0, lst)))

# 2

max_count = 0

count = 0

for item in lst:

   if item < 0:

       count += 1

       if count > max_count:

           max_count = count

print(max_count)

# 3

result = 0

for item in lst:

   if item < 0:

       result += item

print(result)

# или

negative_nums = list(filter(lambda item: item < 0, lst))

print(sum(negative_nums) if negative_nums else "NO")

Вас заинтересует