Dive Into Python: call for comments (long)
Sean 'Shaleh' Perry
shaleh at valinux.com
Mon Apr 23 16:40:47 EDT 2001
> self.knownValues = ((31, 'XXXI'),
> (148, 'CXLVIII'),
> (294, 'CCXCIV'),
> (312, 'CCCXII'),
> (421, 'CDXXI'),
> (528, 'DXXVIII'),
> (621, 'DCXXI'),
> (782, 'DCCLXXXII'),
> (870, 'DCCCLXX'),
> (941, 'CMXLI'),
> (1043, 'MXLIII'),
> (1110, 'MCX'),
> (1226, 'MCCXXVI'),
> (1301, 'MCCCI'),
> (1485, 'MCDLXXXV'),
> (1509, 'MDIX'),
> (1607, 'MDCVII'),
> (1754, 'MDCCLIV'),
> (1832, 'MDCCCXXXII'),
> (1993, 'MCMXCIII'),
> (2074, 'MMLXXIV'),
> (2152, 'MMCLII'),
> (2212, 'MMCCXII'),
> (2343, 'MMCCCXLIII'),
> (2499, 'MMCDXCIX'),
> (2574, 'MMDLXXIV'),
> (2646, 'MMDCXLVI'),
> (2723, 'MMDCCXXIII'),
> (2892, 'MMDCCCXCII'),
> (2975, 'MMCMLXXV'),
> (3051, 'MMMLI'),
> (3185, 'MMMCLXXXV'),
> (3250, 'MMMCCL'),
> (3313, 'MMMCCCXIII'),
> (3408, 'MMMCDVIII'),
> (3501, 'MMMDI'),
> (3610, 'MMMDCX'),
> (3743, 'MMMDCCXLIII'),
> (3844, 'MMMDCCCXLIV'),
> (3940, 'MMMCMXL'))
>
what about simple cases like 'I' or 'V'? 'IV'?
Also, I find
#Define pattern to detect valid Roman numerals
romanNumeralPattern = \
re.compile('^M?M?M?(CM|CD|D?C?C?C?)(XC|XL|L?X?X?X?)(IX|IV|V?I?I?I?)$')
confusing. As I read this, I see 'begins with optionally up to 3 M's, then
either CM, CD, or some permutation of D and C'. Yet this appears to match
something as simply as V. Why?
Also, perhaps use of the {} operator in the regex's might help. Maybe not.
More information about the Python-list
mailing list