On Mon, Mar 28, 2011 at 10:06 PM, Michael H. Goldwasser <goldwamh@slu.edu>wrote:
To start a new thread, I'm always trying to keep a list of some common "gotchas" that beginning students run across when using Python, or things that teachers should keep in mind when teaching with the language.
Sincere applause -- exactly the kind of thread edu-sig should include in the weave. This mystr.isupper( ) == True: stuff is quite common. One also gets veterans of other languages wanting to use while instead for for loops: cnt = 0 while cnt < len(mylist): theword = mylist[cnt] of theword.isupper( ) == True: is_upper.append(theword) cnt += 1 instead of is_upper = [ theword for theword in mylist if theword.isupper() ] I was at one of David Goodger's talks which was all about getting more idiomatic. Knowing the default behavior of dicts means you know you can say for key in thedict: instead of for key in thedict.keys(): Sometimes I'll think a student is using an idiom that looks odd and so isn't "Pythonic" (as if I were the only judge). Like: mydict.update({key:value}) instead of mydict[key] = value but then I'll do a search and see enough authors using the idiom to update my own ideas of what's idiomatic. Teachers have a privileged position, getting to see the same solutions over and over but in slightly (or greatly) different styles. edu-sig makes a useful repository for those wishing to share from this perspective. Kirby