using split for a string : error

Neil Cerutti neilc at norwich.edu
Fri Jan 25 15:04:02 CET 2013


On 2013-01-25, Oscar Benjamin <oscar.j.benjamin at gmail.com> wrote:
> On 24 January 2013 11:35, Chris Angelico <rosuav at gmail.com> wrote:
>> It's usually fine to have int() complain about any
>> non-numerics in the string, but I must confess, I do sometimes
>> yearn for atoi() semantics: atoi("123asd") == 123, and
>> atoi("qqq") == 0. I've not seen a convenient Python function
>> for doing that. Usually it involves manually getting the
>> digits off the front. All I want is to suppress the error on
>> finding a non-digit. Oh well.
>
> I'm interested to know what the situations are where you want
> the behaviour of atoi().

Right. atoi is no good even in C. You get much better control
using the sprintf family. int would need to return a tuple of the
number it found plus the number of characters consumed to be more
useful for parsing.

>>> intparse("123abc")
(123, 3)

But that would make it might inconvenient for general use.

-- 
Neil Cerutti



More information about the Python-list mailing list