Произведение элементов списка
Добрый вечер, нужна помощь с вычислением произведения всех числа списка
n = int(input(«Введите длину списка:»))
a = []
for i in range(0, n):
element = int(input(«Введите элемент списка:»))
a.append(element)
print(«Весь список:»)
print(a)
print(«Сумма элементов списка равна:»)
b = sum(a)
print(b)
Лучшие ответы ( 3 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Вычислить произведение элементов списка с четным номером
Помогите написать код для этих заданий, пожалуйста Вычислить произведение элементов списка с.
Найти произведение минимального и максимального элементов списка
Необходимо найти произведение минимального и максимального элементов списка, а я не совсем понял.
Вычислить произведение элементов списка, которые делятся на 2
Помогите пожалуйста написать функцию в питоне, которая вычисляет произведение элементов списка.
Найти произведение всех нечетных элементов списка
Сгенерировать случайным образом список из N элементов, лежащие в диапазоне от 1 до 10. Вывести.
1183 / 759 / 277
Регистрация: 05.09.2021
Сообщений: 1,772

Сообщение было отмечено llenkal как решение
Решение
1 2 3 4 5 6
from math import prod arr = [int(input('Введите элемент списка: ')) for i in range(int(input('Введите длину списка: ')))] print(f'Весь список: ') print(f'Сумма элементов списка равна: ') print(f'Произведение элементов списка: ')
Регистрация: 10.06.2020
Сообщений: 33
Спасибо, но есть проблема с visual studio
1183 / 759 / 277
Регистрация: 05.09.2021
Сообщений: 1,772

Сообщение было отмечено llenkal как решение
Решение
1 2 3 4 5 6 7 8 9
arr = [int(input('Введите элемент списка: ')) for i in range(int(input('Введите длину списка: ')))] prod = 1 for i in arr: prod *= i print(f'Весь список: ') print(f'Сумма элементов списка равна: ') print(f'Произведение элементов списка: ')
Регистрация: 10.06.2020
Сообщений: 33
Спасибо большое) все работает.
![]()
5416 / 3840 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1

Сообщение было отмечено llenkal как решение
Решение
Сообщение от llenkal 
Спасибо, но есть проблема с visual studio
Поставь Python 3.8\3.9\3.10 и будет тебе math.prod и куча всего нового.
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Найдите сумму и произведение элементов списка. Результаты вывести на экран
Найдите сумму и произведение элементов списка. Результаты вывести на экран.

Произведение элементов списка, расположенных между первым и вторым нулевыми элементами
В списке, состоящем из целых элементов, вычислить: # произведение элементов списка.

В списке, состоящем из целых элементов, вычислить произведение элементов списка с четными номерами
Помогите решить 2. В списке, состоящем из целых элементов, вычислить: 1. произведение элементов.
Произведение всех элементов списка
дан список найдите произведение всех элементов списка помогите пожалуйста!
Найдите сумму и произведение элементов списка. Результаты вывести на экран
Найдите сумму и произведение элементов списка. Результаты вывести на экран. Блок схему ещё
Найти и напечатать произведение отрицательных элементов списка и сами эти элементы
Найти и напечатать произведение отрицательных элементов списка и сами эти элементы. D =
Как найти произведение элементов списка после максимального элемента?

Это не вопрос, а задание. Тут так не принято. Ты покажи, что сам пытался сделать, объясни, что не выходит. Тогда больше шансов, что помогут.
Michelin123 @Michelin123 Автор вопроса
Алан Гибизов,
a=[20,4,35,3,4]
mult=([a[i] for i in range(a. index(max(a))+1, len(a))])
Нужно вывести после максимального элемента произведение элементов, в этом случае 12, но нужна функция произведения, а как не знаю

Алан Гибизов @phaggi Куратор тега Python
Michelin123, так может, тебе эту функцию и надо написать? А потом применить ее к своему однострочнику.
Решения вопроса 1

Алан Гибизов @phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
from functools import reduce a = [20, 4, 35, 3, 4] my_mult = reduce(lambda x, y: x * y, [a[i] for i in range(a.index(max(a)) + 1, len(a))])
так пойдет?
Ответ написан более двух лет назад
Нравится 2 2 комментария

Andrey Dugin @adugin Куратор тега Python
reduce(mul, a[a.index(max(a))+1:])

Алан Гибизов @phaggi Куратор тега Python
Andrey Dugin, Андрей, тогда для медленных вроде меня надо уж вот так:
from functools import reduce from operator import mul a = [20, 4, 35, 3, 4] print(reduce(mul, a[a.index(max(a))+1:], 1))
Действительно, всё ж есть, но лень было вспоминать, а вспоминать трудно, когда забыл, да ещё и не знал…
Ответы на вопрос 1
Шушуть люблю питон, по шушуть тыкаю где-то год.
Можно уточнить?
Что из себя представляет задача?
test_list = [1, 3, 7, 2, 6, 5]
7 — максимальный элемент в списке, все остальные после него перемножить, то есть 2 6 и 5?
Как перемножить числа в списке?
пользователь вводит любые числа в строку которые добавляются в список сумму можно найти sum(spisok) а как найти произведение? можно вроде циклом через for а если например в одну строку как реализовать?
Отслеживать
user536011
задан 3 дек 2020 в 9:28
823 1 1 золотой знак 9 9 серебряных знаков 29 29 бронзовых знаков
9 ответов 9
Сортировка: Сброс на вариант по умолчанию
Раньше можно было использвать reduce(). Сейчас тоже можно, но эту функцию вынесли в отдельный модуль, так что строго говоря, считая импорт, получается две строчки:
import functools print (functools.reduce(lambda a, b : a * b, lst))
Отслеживать
Я бы добавил ещё и третью строчку, с импортом оператора умножения =) Upd: А, это есть ниже)
3 дек 2020 в 11:30
а почему сделали общим?
3 дек 2020 в 14:12
@Danis Я сам сделал, потому что код не мой и есть на многих страницах в интернете как иллюстрация к reduce()
3 дек 2020 в 14:33
Все ответы здесь отстали от современности. Как насчет python-3.8 и выше?
math.prod
import math math.prod([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
Это пожалуй самое простое и стандартное решение ИМХО.
Отслеживать
5,406 1 1 золотой знак 15 15 серебряных знаков 33 33 бронзовых знака
ответ дан 21 дек 2020 в 11:51
USERNAME GOES HERE USERNAME GOES HERE
10.4k 21 21 золотой знак 25 25 серебряных знаков 53 53 бронзовых знака
from functools import reduce # Функция для свёрки последовательности from operator import mul # Функция, перемножающая 2 числа spisok = [16, 15, 9, 14, 13] # Исходный список result = reduce(mul, spisok) # /\ Список для свёртки # /\ Используем умножение # /\ Сворачиваем контейнер
Отслеживать
ответ дан 3 дек 2020 в 10:16
Mikhail Murugov Mikhail Murugov
5,406 1 1 золотой знак 15 15 серебряных знаков 33 33 бронзовых знака
Можно реализовать функцию mul
def mul(list_): n = 1 for el in list_: n *= el return n
либо так, с помощью lambda и рекурсии
mul = lambda arr:arr[0] * mul(arr[1:]) if arr else 1
Отслеживать
ответ дан 3 дек 2020 в 9:41
19.6k 6 6 золотых знаков 22 22 серебряных знака 56 56 бронзовых знаков
тут пять строк, не считая той, где это будет вызываться. Про for автор даже в вопросе сам написал.
3 дек 2020 в 9:42
С импортом можно и так:
import numpy as np result = np.prod(np.array(mylist))
Отслеживать
ответ дан 3 дек 2020 в 9:51
Serg Bocharov Serg Bocharov
1,694 1 1 золотой знак 6 6 серебряных знаков 11 11 бронзовых знаков
Тяжеленный numpy для таких простейших задач.
3 дек 2020 в 10:17
@МихаилМуругов вопрос-то был «а можно ли сделать в одну строку?» — вот и приводим разные примеры
3 дек 2020 в 10:43
let num = Number(prompt()) let lis = [] let mult = [] while (num) < num = Number(prompt()) lis.append(num) >var m = 1 for (let n = 0; n
Отслеживать
ответ дан 3 дек 2020 в 10:56
Alexander_Sky Alexander_Sky
87 1 1 серебряный знак 8 8 бронзовых знаков
А где тут python?
3 дек 2020 в 10:58
а как это все записать в одну строчку?
3 дек 2020 в 11:01
@Эникейщик это даже не python))
3 дек 2020 в 11:01
)) правда, не обратил внимание, но это в целом не сложно должно быть переделать, если видишь на одном языке
3 дек 2020 в 11:02
@Alexander_Sky Ничего, я тут тоже поначалу путался где какой язык )) А надо на тэги смотреть
3 дек 2020 в 11:17
Я приведу не очень практичное, но красивое решение в одну строку. Оно не использует eval , побочные эффекты при работе со списком или именованные функции.
Если именованные функции разрешены, то решение может выглядеть так:
def p(a): if a: return a[0] * p(a[1:]) return 1 print(p([1, 2, 3, 4, 5]))
Нам оно не подходит, так именованная функция требует минимум две строки для определения и вызова. Лямбду можно определить и вызвать в одной строке, но есть трудность в создании рекурсивной лямбды. Синтаксис Python разрешает такой трюк:
p = (lambda a: a[0] * p(a[1:]) if a else 1); print(p([1, 2, 3, 4, 5]))
Это именно трюк с глобальной переменной и двумя операторами в одной строке. А можно обойтись без глобальной переменной вообще. На первый взгляд этого не может быть так как имя нужно чтобы сделать рекурсивный вызов. Но функцию можно передать как аргумент в саму себя:
p = lambda f, a: a[0] * f(f, a[1:]) if a else 1 print(p(p, [1, 2, 3, 4, 5]))
Кажется мы ничего не выиграли: всё равно два оператора и глобальная переменная p . Однако сделан очень важный шаг — тело лямбды не использует глобальные переменные. Глобальная переменная используется в операторе print . Избавимся от неё:
p = lambda f, a: a[0] * f(f, a[1:]) if a else 1 y = lambda f, a: f(f, a) print(y(p, [1, 2, 3, 4, 5]))
Стало только хуже: три строки и две глобальные переменные. Зато каждая глобальная переменная задействована только один раз. Делаем подстановку:
print((lambda f, a: f(f, a))(lambda f, a: a[0] * f(f, a[1:]) if a else 1, [1, 2, 3, 4, 5]))
Читается тяжело, но задача решена в одну строку без глобальных имён и волшебных вызовов eval .
P.S. Читайте Fixed-point combinator чтобы узнать откуда пошло это решение.
P.P.S. Красивое утверждение: программу любой сложности можно записать в функциональном стиле не определив ни одной глобальной переменной, включая имена функций.
P.P.P.S. Не пытайтесь повторить это дома.
Сумма и произведение элементов массива
Заполнить массив вещественных чисел вводом с клавиатуры. Посчитать сумму и произведение элементов массива. Вывести на экран сам массив, полученные сумму и произведение его элементов.
- Присвоить переменной, в которой будет храниться сумма, значение 0, а переменной для произведения — значение 1.
- В цикле увеличивая индекс массива от начала до конца
- считывать с клавиатуры число и записывать его в текущую ячейку массива,
- увеличивать переменную с суммой на введенное число.
- умножать переменную с произведением на введенное число.
Pascal
сумма элементов массива паскаль
const N = 10;
var
a: array[1..N] of real;
sum, mult: real;
i: integer;
begin
sum := 0;
mult := 1;
for i:=1 to N do begin
read(a[i]);
sum := sum + a[i];
mult := mult * a[i];
end;
for i:=1 to N do write(a[i]:5:2);
writeln;
writeln(sum:5:2);
writeln(mult:5:2);
end.
4.3 2.3 4.5 3.3 8.3 1.2 8.3 9.1 2.3 3.6
4.30 2.30 4.50 3.30 8.30 1.20 8.30 9.10 2.30 3.60
47.20
914812.11Язык Си
#include
#define N 10
main() float a[10], sum, mult;
int i;
sum = 0;
mult = 1;
for (i=0; i < 10; i++) scanf("%f", &a[i]);
sum += a[i];
mult *= a[i];
>
for (i=0; i < 10; i++) printf("%.2f ", a[i]);
>
printf("\n%.2f\n", sum);
printf("%.2f\n", mult);
>Python
сумма элементов массива python (питон)
a = [0]*10
s = 0
m = 1
for i in range(10):
a[i] = float(input())
s += a[i]
m *= a[i]
print(a)
print(s)
print('%.4f'%m)КуМир
алг сумма элементов
нач
цел N=10
вещ таб a[1:N]
вещ sum, mult
цел i
sum := 0
mult := 1
нц для i от 1 до N
ввод a[i]
sum := sum + a[i]
mult := mult * a[i]
кц
нц для i от 1 до N
вывод a[i], " "
кц
вывод нс, sum, нс
вывод mult
конBasic-256
dim a(10)
sum = 0
mult = 1
for i=0 to 9
input a[i]
sum = sum + a[i]
mult = mult * a[i]
next i
for i=0 to 9
print a[i] + " ";
next i
print
print sum
print mult
