python怎样转换字符串与数字?
看似简单的一个问题,不就是str()与int()两个内建函数吗?
但有些问题就接踵而至了,str()还好说,int()这个函数当我们传入的参数不是一个“数字型字符串”的时候,就会抛出错误。
举个栗子吧,print int('123aaa'):
果断报错了。而这样的情况如果在php里的话(用intval),是会将'123aaa'转换成123的,不会出错。
更可恶的是int('')一个空字符串也会报错。
于是自己实现一下intval函数:
def intval(str):
try:
return int(str)
except:
if str and str[0] == '-': l = 1
else: l = 0
for t in str[l:]:
if t.isdigit(): l += 1
else: break
try:
return int(str[0: l])
except:
return 0
输出结果:
考虑了负数、空字符的情况,基本和php里的intval类似了吧。