A small quiz question

breamoreboy at gmail.com breamoreboy at gmail.com
Wed Aug 16 08:29:42 EDT 2017


On Wednesday, August 16, 2017 at 12:45:13 PM UTC+1, Steve D'Aprano wrote:
> On Wed, 16 Aug 2017 09:06 pm, Stefan Ram wrote:
> 
> >   I wrote my first Python quiz question!
> > 
> >   It goes like this:
> > 
> >   Can you predict (without trying it out) what the Python
> >   console will output after the following three lines have
> >   been entered?
> > 
> > def f(i): print(i); return i;
> > 
> > f(4)**f(1)**f(2)
> 
> My initial prediction was:
> 
> 
> 4
> 1
> 2
> 16
> 
> 
> which is embarrassing. Fortunately my supper arrived in the nick of time 
> to distract me from hitting Send, just long enough to remember that 1*1
> is 1, not 2.
> 
> So how about:
> 
> 4
> 1
> 2
> 4
> 
> Unless its a syntax error... I can't remember if the REPL allows multiple
> semi-colon separated statements after a colon declaration. I know it gets mad
> at this:
> 
> py> def a(): pass; def b(): pass
>   File "<stdin>", line 1
>     def a(): pass; def b(): pass
>                      ^
> SyntaxError: invalid syntax
> 
> 
> So my wild guess is that this is a trick question and the actual answer is that
> its a SyntaxError.
> 
> Otherwise, I'm sticking with
> 
> 4
> 1
> 2
> 4
> 
> 
> 
> -- 
> Steve
> “Cheer up,” they said, “things could be worse.” So I cheered up, and sure
> enough, things got worse.

How do you expect to get four lines of output from the three function calls?

Kindest regards.

Mark Lawrence.



More information about the Python-list mailing list