Teaching python (programming) to children
Duncan Booth
duncan at NOSPAMrcp.co.uk
Fri Nov 9 05:03:09 EST 2001
More information about the Python-list mailing list
Fri Nov 9 05:03:09 EST 2001
- Previous message (by thread): Teaching python (programming) to children
- Next message (by thread): Teaching python (programming) to children
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
hungjunglu at yahoo.com (Hung Jung Lu) wrote in news:8ef9bea6.0111060838.24996280 at posting.google.com: > How soon does a beginner run into the following problem? (see also the > "How much is set in stone?" thread) > > #------------------ > flag = 0 > > def f(x): > flag = 1 > return 2*x > > y = f(3) > print y, flag > #------------------ > output: > 6 0 > <snip> > (2) After being shocked by the above example, students start to put > 'global' statements in every single function for every single > variable. They don't understand what is going on, they just don't want > to be bitten by the same bug, again. So perhaps the students should be taught not to use the global statement at all in situations like the one above: def f(x): return 2*x, 1 y, flag = f(3) And if they need to store state, it may be time to introduce classes: class F: def foo(self, x): self.flag = 1 return 2*x f = F() y = f.foo(3) -- Duncan Booth duncan at rcp.co.uk int month(char *p){return(124864/((p[0]+p[1]-p[2]&0x1f)+1)%12)["\5\x8\3" "\6\7\xb\1\x9\xa\2\0\4"];} // Who said my code was obscure?
- Previous message (by thread): Teaching python (programming) to children
- Next message (by thread): Teaching python (programming) to children
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list