Уведомления

Группа в Telegram: @pythonsu

#1 Июль 4, 2012 11:07:23

asturias
Зарегистрирован: 2012-07-04
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите решить задачу c FOR LOOP

Define a function prod(L) which returns the product of the elements in a list L.
Мне нужна функция, которая называется, допустим, Prod(L)
L это список
Функция должна возврашать произведение (1х1х1х1…) списка

У меня возвращает лишь первое число в списке, как сделать нормально?
Вот что я нахимичил:

def prod(L):
for i in range(L, L):
return i

Отредактировано asturias (Июль 4, 2012 11:07:52)

Офлайн

#2 Июль 4, 2012 12:11:22

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Помогите решить задачу c FOR LOOP

l=[1,2,3,4,5]
print reduce(lambda x,y: x*y, l)



Офлайн

#3 Июль 4, 2012 12:16:36

EBFE
Зарегистрирован: 2012-07-03
Сообщения: 99
Репутация: +  20  -
Профиль   Отправить e-mail  

Помогите решить задачу c FOR LOOP

def prod(L):
  return reduce(lambda x,y: x * y, L)
from operator import mul
def prod(L):
  return reduce(mul, L)
def prod(L):
    res = 1
    for elem in L:
        res = res * elem
    return res 

Офлайн

#4 Июль 5, 2012 09:07:13

asturias
Зарегистрирован: 2012-07-04
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите решить задачу c FOR LOOP

Ой спасибочки! Помогло!

Кстати, сокращением какого слова является res? Я понял, что elem это элемент.

Отредактировано asturias (Июль 5, 2012 09:11:41)

Офлайн

#5 Июль 5, 2012 15:13:39

GaiveR
От:
Зарегистрирован: 2011-08-13
Сообщения: 122
Репутация: +  16  -
Профиль   Отправить e-mail  

Помогите решить задачу c FOR LOOP

asturias
Кстати, сокращением какого слова является res? Я понял, что elem это элемент.
res -> result -> результат



Офлайн

#6 Июль 5, 2012 19:53:42

asturias
Зарегистрирован: 2012-07-04
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите решить задачу c FOR LOOP

Спасибо!

Теперь мне надо сделать вот так

def prod(L):
    res = 1
    for elem in L:
        res = res * elem
    return res 

но нельзя использовать
for elem in L
а надо использовать
for elem in range(...)

Я никак не пойму, что надо писать в скобках.
Вот что я там сделал:
for elem in range(L[0], L[-1])
, но не получилось.

Я делаю задания для новичков, поетому там нельзя использовать lambda, mul, reduce и тд.

Отредактировано asturias (Июль 5, 2012 19:54:54)

Офлайн

#7 Июль 5, 2012 20:36:55

GaiveR
От:
Зарегистрирован: 2011-08-13
Сообщения: 122
Репутация: +  16  -
Профиль   Отправить e-mail  

Помогите решить задачу c FOR LOOP

def prod(L):
    res = 1
    for i in range(len(L)):
        res = res * L[i]
    return res



Офлайн

#8 Июль 5, 2012 21:46:42

odnochlen
Зарегистрирован: 2012-06-28
Сообщения: 794
Репутация: +  14  -
Профиль   Отправить e-mail  

Помогите решить задачу c FOR LOOP

asturias
но нельзя использовать

for elem in L
А зачем? Сишный for в питоне практически нинужен.

Офлайн

#9 Июль 6, 2012 08:58:16

asturias
Зарегистрирован: 2012-07-04
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите решить задачу c FOR LOOP

Спасибо. Сработало

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version