import re
from functools importreduce
DIGITS ={'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}defother2int(text):ifnot text:print('不能传入空值')returnifisinstance(text,str):if re.findall('\D', text):print('数据中包含除数字之外的字符,不能进行转化')return
m =map(lambda x:DIGITS[x], text)returnreduce(lambda x,y=0:x*10+y,m)elifisinstance(text,float):
m =map(lambda x:DIGITS[x],'%d'%text)returnreduce(lambda x,y=0:x*10+y,m)elifisinstance(text,int):return text
else:print('该类型数据不能转化为整数')# 测试for text in[123.45,1.0,'123','1','123bb','1.23',123]:
result = other2int(text)print(type(result))print(result)