> Perhaps the code on activestate is not a correct copy of what you are
> running? The conditional at line 23 extends all the way to line 35 -
> the end of the function - so if value % 100/10 == 1 no more code is
> executed and None is returned.
>
Here is the code that I'm running locally (hopefully the formatting
doesn't get screwed up):
def ordinal(value):
"""
Converts an integer to it's ordinal as a string.
For example 1 to "1st", 2 to "2nd", 3 to "3rd", etc.
"""
try:
value = int(value)
except ValueError:
return value
if value % 100/10 <> 1:
if value % 10 == 1:
ord = u"%d%s" % (value, "st")
return ord
elif value % 10 == 2:
ord = u"%d%s" % (value, "nd")
return ord
elif value % 10 == 3:
ord = u"%d%s" % (value, "rd")
return ord
else:
ord = u"%d%s" % (value, "th")
return ord
else:
ord = u"%d%s" % (value, "th")
return ord
I had eyeballed the ActiveCode and compared to my local code, and it
looked identical...but perhaps it was too cursory a check.
I'll download a copy from ActiveState and compare to my local code. If
that doesn't turn up a solution, I'll also do some investigating on
the modulus operator any possible differences between its
implementation/operation between versions of Python. If it helps, I'm
using Python 2.6.2...
Thank you all for the tips so far!
Serdar
_______________________________________________
Tutor maillist - [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor