Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
395 views
in Technique[技术] by (71.8m points)

python - reduce() can't be interpreted?

$ python
Python 2.6.6 (r266:84292, Jan 22 2014, 09:42:36) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> def add(x,y): return x+y
... reduce(add, range(1, 11))
  File "<stdin>", line 2
    reduce(add, range(1, 11))
         ^
SyntaxError: invalid syntax

I am new to python.

Any idea?

I am guessing reduce() isn't available in 2.6.6; is there a way to check? I only see 2.6.9 online document, which has reduce().

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You are using invalid Python syntax; it is not the reduce() call that is the problem.

In the interactive interpreter, you must close a compound block statement with a newline:

>>> def add(x,y): return x+y
... 
>>> reduce(add, range(1, 11))
55

Note the empty ... after the def add() definition.

Quoting the Interactive input section of the top-level components reference documentation:

Note that a (top-level) compound statement must be followed by a blank line in interactive mode; this is needed to help the parser detect the end of the input.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...