On 21/07/14 01:34, Marc Tompkins wrote:
noticed that you often advise it. I don't know who _does_ think this is a desirable pattern; I'd love to hear their argument for it - it must be really good.
Nope, it doesn't need to be "really good", it just needs to have enough advantage over the alternatives for people to prefer it. In the case of while loops the options are: 1) while True: while True: read input if end condition: break process loop 2) While test read input while test: process loop read input The argument against the latter form is simply that you have to maintain the read input line in two places. So far as I can tell, that's it. But it seems to be enough to make it the default Python while idiom. Now that doesn't mean that you should not use form 2 in Python, form 1 is only justified if you need to repeat the call (or the test). There are many cases where form 2 would be better,. and sadly sometimes we see form 1 being used when it should not. But even more often we see while loops being used where they should not. A for loop is usually a better option if the number of iterations is known. Loop choice is one area where Python is not as expressive as other languages but the two(*) we have are adequate if not ideal. (*)And you can extend those somewhat using generators and itertools. -- Alan G Author of the Learn to Program web site http://www.alan-g.me.uk/ http://www.flickr.com/photos/alangauldphotos _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor