why the inconsistency?

Ben Finney bignose-hates-spam at and-benfinney-does-too.id.au
Tue Sep 23 21:02:00 EDT 2003


On 23 Sep 2003 18:04:33 -0700, mensanator wrote:
>>>> print len(`2**64`)
> 21
> 
> But the correct answer is 20, not 21. The reason the
> answer is wrong
> 
>>>> print `2**64`
> 18446744073709551616L
> 
> Why is the "L" there? I thought "L" isn't used anymore?

You want to perform two operations; make them explicit.

    # Convert number to string representation
    foo = "%d" % ( 2**64 )
    # Get length of string
    print len( foo )

As you've pointed out, a number has no inherent string representation
(and thus no length); choose one explicitly (e.g. by string formatting).

-- 
 \        "I bought a dog the other day. I named him Stay. It's fun to |
  `\     call him. 'Come here, Stay! Come here, Stay!' He went insane. |
_o__)      Now he just ignores me and keeps typing."  -- Steven Wright |
Ben Finney <http://bignose.squidly.org/>




More information about the Python-list mailing list