[BangPypers] Issue with list comprehension
dhananjay.nene at gmail.com
Wed Oct 30 13:46:25 CET 2013
Thats surprising. The code runs just fine
As an aside I renamed _sum to sum_
When avoiding naming conflicts, its recommended to postfix a underscore
Prefixing an underscore is to provide a hint that the value that gets
assigned to the variable is going to be ignore (ie. that variable
itself is going to be ignored)
On Wed, Oct 30, 2013 at 5:42 PM, Anant <TECHIE> <anant.techie at gmail.com> wrote:
> Hi folks,
> I am new to Python (have been on Java for 8 years), but I have quickly
> grasped its style.
> While working on a problem (as Python practice) to generate fibonacci
> numbers using generators and list comprehension, I ran into an issue.
> Here's my code:
> *import itertools*
> *def fibonacci():*
> * a, b = 0, 1*
> * while True:*
> * yield b*
> * a, b = b, a+b*
> *_sum=sum([n for n in itertools.takewhile(lambda x: x < 400, fib)])*
> *print _sum*
> Basically, I wanted to sum up all the fib numbers till 400.
> *This code runs fine when run on REPL (shell). But when I run it*
> *as a script, i get following error:*
> Traceback (most recent call last):
> File "2.py", line 10, in <module>
> _sum=sum([n for n in itertools.takewhile(lambda x: x < 400, fib)])
> TypeError: 'int' object is not callable
> Python version: 2.7.3
> Is there a bug in Python or am I missing something? Why does this only work
> in REPL
> and not as shell script?
> Thanks for help.
> BangPypers mailing list
> BangPypers at python.org
More information about the BangPypers