On Sat, 31 Jul 2010 01:03:27 pm David Hutto wrote: > This fixes the floating point 'bug' when numerator is greater than > denominator: http://python.pastebin.com/bJ5UzsBE
I don't mean to be disparaging ... ah hell, who am I fooling? Yes I do. What is that mess? *wink* I can see at least four problems with that: 1. You have a function called "gcd" that doesn't calculate the gcd, but does something else as well. That makes it a misleading name. 2. The principles of code reuse and encapsulation suggest that each function should (as much as possible) do one thing, and do it well. You have a function that tries to do two or three things. You should have a single function to calculate the gcd, and a second function to use the gcd for reducing a fraction as needed, and potentially a third function to report the results to the user. 3. Your function has a serious bug. To see it, call gcd(5, 5) and see what it doesn't do. 4. Code duplication. Your function repeats fairly major chunks of code. Copy-and-paste programming is one of the Deadly Sins for programmers. The way to get rid of that is by encapsulating code in functions (see point 1 above). -- Steven D'Aprano _______________________________________________ Tutor maillist - [email protected] To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor
