def cn_digit(s): if isinstance(s, (int, float)): s = str(s) elif not isinstance(s, str): return s s = s.replace(',', '') m = re.match(r'(-?)(\d+)((?:\.\d+)?)', s, re.A) if not m: return s intpart = m.group(2) dem = "万亿兆京垓秭穰沟涧正载极" result = intpart[-4:] for i in range(-4,-len(intpart),-4): result = intpart[i-4:i] + dem[-i//4-1] + result return m.group(1) + result + m.group(3)