Python произведение всех целых чисел

Как перемножить числа в списке?

пользователь вводит любые числа в строку которые добавляются в список сумму можно найти sum(spisok) а как найти произведение? можно вроде циклом через for а если например в одну строку как реализовать?

9 ответов 9

Раньше можно было использвать reduce(). Сейчас тоже можно, но эту функцию вынесли в отдельный модуль, так что строго говоря, считая импорт, получается две строчки:

import functools print (functools.reduce(lambda a, b : a * b, lst)) 

@Danis Я сам сделал, потому что код не мой и есть на многих страницах в интернете как иллюстрация к reduce()

Все ответы здесь отстали от современности. Как насчет python-3.8 и выше?
math.prod

import math math.prod([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) 

Это пожалуй самое простое и стандартное решение ИМХО.

from functools import reduce # Функция для свёрки последовательности from operator import mul # Функция, перемножающая 2 числа spisok = [16, 15, 9, 14, 13] # Исходный список result = reduce(mul, spisok) # /\ Список для свёртки # /\ Используем умножение # /\ Сворачиваем контейнер 

Можно реализовать функцию 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 
import numpy as np result = np.prod(np.array(mylist)) 
let num = Number(prompt()) let lis = [] let mult = [] while (num) < num = Number(prompt()) lis.append(num) >var m = 1 for (let n = 0; n

)) правда, не обратил внимание, но это в целом не сложно должно быть переделать, если видишь на одном языке

Читайте также:  Python class protected method

Если очень захотеть, то можно и в одну строчку записать, но так конечно делать не стоит , например перемножить ‘2 3 4 5’ = 120

print(list(map(lambda s, t=[1]: [t.append(i*t[-1]) for i in map(int, s.split())][0] or t[-1], ['2 3 4 5']))[0]) # 120 

Я приведу не очень практичное, но красивое решение в одну строку. Оно не использует 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. Не пытайтесь повторить это дома.

Источник

Произведение всех чисел

Массив: Найти произведение всех чисел, стоящих на местах, кратных 4, и количество чисел, небольших заданного A.
Задан массив чисел: Найти произведение всех чисел, стоящих на местах, кратных 4, и количество.

Факториал: произведение всех целых чисел от 1 до 9
Помогите решить задачу! Напишите программу, которая выводит произведение всех целых чисел от 1 до.

Найти произведение всех чисел, кратных 8 или 6
Даны натуральные числа от 1 до n включительно. Необходимо написать программу, которая позволяет.

Произведение всех введенных пользователем чисел, исключая нули
Надо написать программу, чтобы находить произведение всех введенных пользователем чисел, исключая.

A = int(input("Введите А ")) B = int(input("Введите B ")) print(A * B)
print(int(input("Введите А ")) * int(input("Введите B ")))

Эксперт функциональных языков программированияЭксперт Python

Лучший ответ

Сообщение было отмечено mik-a-el как решение

Решение

ЦитатаСообщение от Chug Jug Посмотреть сообщение

— подозреваю, что ТС имел в виду «произведение всех чисел между A и B».

import numpy a=int(input()) b=int(input()) n=numpy.prod(range(a,b+1)) print(n)

Источник

Найти произведение всех целых

Факториал: произведение всех целых чисел от 1 до 9
Помогите решить задачу! Напишите программу, которая выводит произведение всех целых чисел от 1 до.

Даны два целых числа A и В, A > B. Выведете произведение всех чисел от А до В.
Даны два целых числа A и В, A > B. Выведете произведение всех чисел от А до В. Пример: А = 2, В.

Найти произведение целых от 2 до 40, кратных трем
Помогите, я не разобрался в стандартных циклах

Найти произведение целых чисел из промежутка от 10 до 99, кратных 9 и заканчивающихся на 1 или 6
Найти произведение целых чисел из промежутка от 10 до 99, кратных 9 и заканчивающихся на 1 или 6.

Эксперт HTML/CSSЭксперт PHP

#!/usr/bin/env python # -*- coding: utf-8 -*- n = 1 for i in range(8, 16): n *= i print n
#!/usr/bin/env python # -*- coding: utf-8 -*- a = int(input("Введите число a: ")) n = 1 if 1  a and a  20 : for i in range(a, 21): n *= i print n else : print "Введите число от 1 до 20"
#!/usr/bin/env python # -*- coding: utf-8 -*- b = int(input("Введите число b: ")) n = 1 if 1  b and b  20 : for i in range(1, b + 1): n *= i print n else : print "Введите число от 1 до 20"

Эксперт Python

Лучший ответ

Сообщение было отмечено Пакетик чаю как решение

Решение

reduce(lambda x,y:x*y, range(a,b+1))

а как найти произведение чисел от a до b == c в цикле чтобы получилось в питоне
например:
30 — 2,3,5
потому что 2*3*5=30

Найти произведение всех минимумов в списке
Условие: Во всех задачах предполагается использование списка, заполненного 20 случайными числами в.

Найти сумму кубов всех целых чисел от 20 до 40
Найти сумму кубов всех целых чисел от 20 до 40.

Найти произведение всех нечетных элементов списка
Сгенерировать случайным образом список из N элементов, лежащие в диапазоне от 1 до 10. Вывести.

Найти произведение всех чисел, кратных 8 или 6
Даны натуральные числа от 1 до n включительно. Необходимо написать программу, которая позволяет.

Найти сумму, произведение и среднее арифметическое трёх целых чисел, введённых с клавиатуры
Всем привет. На курсе попалось такое простецкое задание Напишите программу, которая находит.

Даны три любых целых числа. Найти произведение нечетных, которые меньше 10
Даны три любых целых числа. Найти произведение нечетных, которые меньше 10. Заранее спасибо.

Найти сумму всех целых чисел от a до b, используя цикл for
1. Найти сумму всех целых чисел от a до b (значения a и b вводятся с клавиатуры; b ≥a). Решить.

Источник

Произведение всех чисел последовательности

Найти произведение последних цифр всех чисел последовательности, больших числа 13
Задача Дана непустая последовательность целых чисел, оканчивающаяся нулем. Ноль в.

Создать двумерный массив случайных чисел и вывести произведение всех простых чисел из него
Создать двумерный массив 15*3 случайных двузначных чисел и вывести произведение всех простых чисел.

В последовательности натуральных чисел найти количество всех чисел кратных 6 и заканчивающихся на 0
Напишите программу, которая в последовательности натуральных чисел определяет количество всех чисел.

Найти произведение всех чисел из этого промежутка, которые больше х, и сумму квадратов чисел, меньших х
Дан промежуток , a<b и число x, принадлежащее этому промежутку. Найти произведение всех чисел из.

Произведение всех отрицательных чисел
Составить программу, которая бы запрашивала Хнач и Хкон и определяла произведение всех.

Лучший ответ

Сообщение было отмечено Fel1x_ как решение

Решение

def prod(nums: list) -> int: res = 1 for i in nums: res *= i return res print(prod([3, 4, 5]))
print( eval( '*'.join( input('-> ').split() ) ) )

Сумма всех чисел последовательности
1. Дана непустая последовательность целых чисел, оканчивающаяся нулем. Найти: а) сумму всех чисел.

Найти произведение всех целых чисел от А до Б
2(Ввести два целых числа А и Б. Найти произведение всех целых чисел от А и Б.

Вычислить произведение последовательности целых чисел, вводимых пользователем с клавиатуры
Вычислить произведение последовательности целых чисел, вводимых пользователем с клавиатуры.

Найти сумму всех нечетных чисел последовательности
Дана непустая последовательность целых чисел, оканчивающаяся нулем. Найти сумму всех нечетных чисел.

Найти сумму всех нечетных чисел последовательности
Дана непустая последовательность целых чисел, оканчивающаяся нулем. Найти сумму всех нечетных чисел.

Найдите произведение всех чисел расположенных на главной диагонали
Здравствуйте , Напишите программу , которая заполняет матрицу N-строк и N-столбцов.

Источник

Факториал: произведение всех целых чисел от 1 до 9

Помогите решить задачу! Напишите программу, которая выводит произведение всех целых чисел от 1 до 9. На python!

Вычислить произведение всех чисел от 1 до N (N! N-факториал)
1. На вход программе подается число N. Напишите программу для вычисления произведения всех чисел от.

Даны два целых числа А и В (A
помогите

Даны два целых числа А и В (A
Помогите Пожалуйста

1) Подсчитать произведение и количество всех неотрицательных чисел из 10 не целых чисел, введенных пользовател
1) Подсчитать произведение и количество всех неотрицательных чисел из 10 не целых чисел, введенных.

Эксперт Python

>>> from functools import reduce >>> from operator import mul >>> result = reduce(mul, range(1, 10)) >>> result 362880
>>> def factorial_func(x:int)->int: . result=1 . for i in range(1, x+1): . result*=i . return result . >>> factorial_func(9) 362880
>>> factorial = lambda x: 1 if x2 else factorial(x-1)*x >>> factorial(9) 362880
def factorial_recursion(x:int)->int: if x2: return 1 return factorial_recursion(x-1)*x

Эксперт Python

Лучший ответ

Сообщение было отмечено cemenow11 как решение

Решение

Эксперт Python

dondublon, этим методом можно, чтобы препод на олимпиаду не отправил 🙂

Эксперт Python

Эксперт Python

Arsegg, это называется «кэширование».

Добавлено через 1 минуту
Все способы перебрали?
А я знаю ещё один :

from math import factorial

Эксперт Python

dondublon, не, я еще с генератором хотел запилить, по после
print(1*2*3*4*5*6*7*8*9)
и
print(362880)

это уже как-то кисловато будет смотреться)

Эксперт Python

Эксперт Python

dondublon, я полагаю это к тому что в классе math должен быть только один метод факториал, в любом другом модуле только 1 метод для добавления 1 для удаления и так далее, чтобы, получив либу, не гадать что же использовать и почему способа два.

In [1]: from math import gamma In [2]: factorial = lambda x: gamma(x + 1) In [3]: factorial(9) Out[3]: 362880.0 In [4]: factorial(9.5) Out[4]: 1133278.3889487854

Эксперт Python

Найти произведение всех целых чисел
Помогите составить программу)) Найти произведение всех целых чисел, кратных 7, из отрезка .

Найти произведение всех целых чисел от 8 до 15
Найти произведение всех целых чисел от 8 до 15 Произведение всех целых чисел от а до 20.

Найти произведение всех целых чисел от 8 до 15
Найти произведение всех целых чисел от 8 до 15 спасибо заранее

Найти произведение всех целых чисел от 1 до b
https://www.cyberforum.ru/attachments/462372d1417711307 помогите решить

найти произведение всех целых чисел
найти произведение всех целых чисел от а до 20 (значение а вводится с клавиатуры; (1 <a <20). Как.

Найти произведение всех целых чисел от 1 до b
Помогите написать, пожалуйста. Нужно найти произведение всех целых чисел от 1 до b (значение b.

Источник

Оцените статью