Python 字符串转换为数值

int
只能把整数字符串转换转换成整数
另外可用于取出float的整数部分

可以用float进行转换

测试用例:

>>> s1='123'
>>> s2='1.23'
>>> s3=''
>>> s4=None
>>> int(s1)
123
>>> int(s2)
ValueError
>>> int(s3)
ValueError
>>> int(s4)
TypeError
>>> float(s1)
123.0
>>> float(s2)
1.23
>>> float(s3)
ValueError
>>> float(s4)
TypeError

顺便一提,float可以转换可以转换科学技术法的数值:

>>> float('1e3')
1000.0

转换示例:

def str_to_float( s):
  """字符串转换为float"""
  if s is None:
    return 0.0
    try:
      return float(s)
    except Exception:
      return 0.0

对于带百分号的数值字符串处理方法

>>> s='12%'
>>> float(s.rstrip('%'))/100
0.12

对于中文字符的数值字符,可以用unicodedata进行转换。

>>> import unicodedata
>>> unicodedata.numeric('三')
3.0
>>> unicodedata.numeric('二十一')
TypeError: numeric() argument 1 must be a unicode character, not str

既名为unicodedata,所以也应该可以对其它语言的数值进行识别。

备注:报错信息只取了重要的部分

你可能感兴趣的:(Python 字符串转换为数值)