Tente usar programação funcional e funções lambda (funções anônimas de uso único de uma linha que você não precisa desperdiçar definição de namespace) enquanto programa em Python.
Aumenta a eficiência e representa melhor a função do seu código.
Por exemplo, (aleatório): Calc e ^ x + 1 para todo x natural em [1,10]. Pegue os valores que têm um valor inteiro ainda maior e encontre seu produto.
Etapa 1: Encontrar os valores da função
fvals = [math.e**x + 1 for x in range(1,11)]
OU
fvals = map(lambda x: e**x + 1, range(1,11))
Etapa 2: Manter apenas valores pares.
fevenvals = filter(lambda x: int(x)%2==0, fvals)
Passo 3: Percorra a lista multiplicando os elementos.
answer = reduce(lambda x,y: x*y, fevenvals)
Na minha opinião, o acima é muito mais elegante, simples e claro do que
answer = 1.0
for i in xrange(1,11):
t = math.e**i + 1
if int(t)%2==0:
answer*=t