> 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 - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor