On Wed, 21 Dec 2005 03:37:27 -0800, Neuruss wrote:

> Can't we just check if the string has digits?

Why would you want to?


> For example:
> 
>>>> x = '15'
>>>> if x.isdigit():
>       print int(x)*3

15 is not a digit. 1 is a digit. 5 is a digit. Putting them together to
make 15 is not a digit.


If you really wanted to waste CPU cycles, you could do this:

s = "1579"
for c in s:
    if not c.isdigit():
        print "Not an integer string"
        break
else:
    # if we get here, we didn't break
    print "Integer %d" % int(s)


but notice that this is wasteful: first you walk the string, checking each
character, and then the int() function has to walk the string again,
checking each character for the second time.

It is also buggy: try s = "-1579" and it will wrongly claim that s is not
an integer when it is. So now you have to waste more time, and more CPU
cycles, writing a more complicated function to check if the string can be
converted.


-- 
Steven.

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

Reply via email to