On 11 October 2012 19:46, Guido van Rossum <guido@python.org> wrote:
On Thu, Oct 11, 2012 at 11:42 AM, Oscar Benjamin <oscar.j.benjamin@gmail.com> wrote:
I've spent 4 hours this week in computer labs with students using Python 2.7 as an introduction to scientific programming. A significant portion of that time was spent explaining the int/float division problem. They all get the issue now but not all of them understand that it is specifically about division: many are putting .0s everywhere. I expect it to be easier when we use Python 3 and I can simply explain that there are two types of division with two different operators.
You could have just told them to "from __future__ import division"
I know but the reason for choosing Python is the low barrier to getting started with procedural programming. When they're having trouble understanding the difference between the Python shell and the OS shell I'd like to avoid introducing the concept that the interpreter can change its calculation modes dynamically and forget those changes when you restart it. It's also unfortunate for the students to know that some of the things they're seeing on day one will change in the next version (you can't just tell people to import things from the "future" without some kind of explanation). I used the opportunity to think a little bit about types by running type(x) and explain that different types of objects behave differently. I would rather explain that using genuinely incompatible types like strings and numbers than ints and floats though. Oscar