Show off your Python chops and compete with others

Nathaniel Sokoll-Ward nathanielsokollward at gmail.com
Thu Nov 7 13:38:40 EST 2013


Wow! Thanks for all the feedback everyone. This content is fresh so I appreciate everyone's comments. As opposed to responding to each post individually, I'll just lump everything in here...

Andrew, big thanks for your comments:

> "What is the correct number of spaces for indentation in Python?" 
>
> I presume the question should be more along the lines of "What does PEP8 
> say?", because all answers are correct. 

I agree. Question has been edited.

>
> "String literals are written with what?" 
>
> The answer is not "ALl of these answers are correct" 

I believe that string literals can be written with single, double, or triple quotes: http://docs.python.org/release/2.5.2/ref/strings.html

> "Which is a correct way to perform exponentiation in Python?" 

This was a silly error. Thanks for pointing it out.

> What does the following code do? 
> def a(b, c, d): pass 
>
> My answer: "Defines a function which returns None", but that isn't one 
> of the choices. 

Roy, thanks for your note. When I run this code, the function just gets defined and nothing happens. None isn't returned. Do you recall why you found the options available to you unsuitable?

> """How could you open a file c:\scores.dat to write in binary? 
>
> outfile = open("c:\\scores.dat", "w") 
> outfile = open("c:\scores.dat", "a") 
> outfile = open("c:\\scores.dat", "w") 
> outfile = open("c:\\scores.dat", "wb")""" 
>
> Not technically wrong, but stylistically suspect; I would recommend 
> using forward slashes (which work fine on Windows) and avoiding the 
> drive letter, both of which avoid making your example 
> Windows-specific. (At least, I don't think there are any other 
> platforms Python supports that use drive letters; OS/2 support was 
> dropped a little while ago, though I believe Paul Smedley still 
> maintains a port. But I digress.) 

Excellent suggestion. We've gone ahead and made the change.

>
> """Which method will write a pickled representation of the object to 
> an open file?""" 
>
> Method names without object names aren't all that useful. Do you mean 
> "Which method of the pickle module..."? 

Again, great suggestion.

> 
> """From which languages are Python classes derived from?""" 
>
> Sounds like Python history trivia more than a coding challenge, but if 
> that's what you want to go for, sure. 

I agree it's not directly coding related. Our questions are actually sorted into topic buckets. We try to get a reading on people's knowledge in a bunch of different areas of a given skill. Familiarity with general knowledge facts such as this, gives us another data point to help parse out the types of questions the best developers tend to get right.

> By the way, here's a fairly bad solution to your final question: 
>
> array666=lambda x:b"\6\6\6" in bytes(x) 
>
> Works for the given test-cases! Doesn't work with arrays at all, 
> despite the description. 

Chris, I actually really like your answer, even if it doesn't satisfy the goal in the question. I'd give it a vote for cleverness!

> You know, I didn't even notice that. But since that was copied and 
> pasted, I would say that yes, it really does. That's a pretty simple 
> grammatical bugfix though. 

Silly error. Fixed.

> I have to concur with what several other people are saying here.  Several of MetaBright's questions are > ambiguously worded, or expect non-idiomatic Python code.  It might be helpful for you to ask (hire?) > some seasoned Python programmers to critique your questions. 

Thanks for the thoughts, John. I'd be lying if I said I wasn't disappointed with how many errors everyone here is picking out. Some of our Challenges are built exclusively by our users, others are built by someone who helped build MetaBright, while others, like the Python Challenge, are built with the help of contractors. Even so, the responsibility to make sure we are publishing high quality content falls on our shoulders and I regret we didn't go a better job of vetting this material. 

> With tracking cookies blocked, you get 0 points. 

> And with JavaScript blocked, you get bupkis. :-) 

I know that's frustrating. Our tech lead will be on here later today to explain why we do this.

Thanks again everyone!





More information about the Python-list mailing list