On 25 February 2013 01:24, Chris Angelico <ros...@gmail.com> wrote:
> On Mon, Feb 25, 2013 at 11:45 AM, Oscar Benjamin
> <oscar.j.benja...@gmail.com> wrote:
>> On 25 February 2013 00:08,  <piterrr.dolin...@gmail.com> wrote:
>> Chris Angelico wrote:
>>>> For example (I believe it's already been mentioned) "declaring" intX with 
>>>> some integer value does *nothing* to maintain
>>>>
>>>> X as an integer:
>>>>
>>>> --> intX = 32
>>>>
>>>> --> intX = intX / 3.0
>>>>
>>>> --> intX
>>>>
>>>> 10.6666666666
>>>>
>>>
>>> Yes I did see that it is possible to redefine the type of a variable. But I 
>>> don't think I would ever do this intentionally; need to be really careful 
>>> with Python.
>
>> The trickier cases are ones where two types are very similar and can
>> be used similarly in most, but not all, situations. An example of this
>> would be the one that Chris has highlighted where an object that you
>> expected to be an int is actually a float. I find that I need to be
>> careful when using division on quantities that I expected to be
>> integers (true in all languages) and careful about the notation used
>> in a numeric literal. Once you get used to it, you will find it easy
>> to see that the '.0' that Chris appended was deliberate in order to
>> control the type of the resulting object.
>
> Once again, Ethan gets the short end of the citations stick...
> 'twarn't me wrote that, he did. Not that it's at all contrary to my
> views, and I might well have said it if he hadn't, but credit should
> go his direction :)

Apologies to you both. The information was missing and I attempted to
fill it in but got it wrong.

> Note though that in Python 3, you don't need the explicit .0 to force
> it to float (and __future__ can bring that to Python 2 too). 32/3 ->
> 10.66666, int/int->float.

That's true and I'm very glad of this change in Python 3. However
other issues of float/int ambiguity remain for those (like me) who are
particularly concerned with numbers and their accuracy/exactness. So
it is still necessary in Python 3 to be careful around this issue.
While it is an issue in all languages, it is one that is often easier
to deal with in statically typed languages than in Python.


Oscar
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to