春满大地,富贵花开。微雨众卉新,一雷惊蛰始。敬请关注微信公众号:AiryData。

Python3.6内置函数(22)——float()

PYTHON Airy 1016℃ 0评论

英文文档

lass float([x])

Return a floating point number constructed from a number or string x.

float()

1、函数功能将一个数值或者字符转换成浮点型数值。

>>> float(1)
1.0
>>> float('1')
1.0

2、不提供参数的时候,返回0.0。

>>> float()
0.0

3、字符串必须能正确转换成浮点型数值的,否则报错。

>>> float('3.14.15926')
Traceback (most recent call last):
  File "<pyshell#152>", line 1, in <module>
    float('3.14.15926')
ValueError: could not convert string to float: '3.14.15926'

4、字符串中允许出现“+”、“-”两个符号,两个符号和数字之间不能出现空格,但是符号前面和数字后面允许出现空格。

>>> float('+3.14') #带正号
3.14
>>> float('-3.14') #带负号
-3.14
>>> float('  -3.14  ') #正负号前、数字后可以有空格
-3.14
>>> float('- 3.14') #正负号与数字间不可以有空格
Traceback (most recent call last):
  File "<pyshell#156>", line 1, in <module>
    float('- 3.14') #正负号与数字间不可以有空格
ValueError: could not convert string to float: '- 3.14'

5、有几个特殊的字符串能正确转换,”Infinity”或者“inf”(不区分大小写),能正确转换,表示无穷大,可以和“+”、“-”一起使用;“nan”也能正确转换,表示没有值。

>>> float('Infinity')
inf
>>> float('inf')
inf
>>> float('inFinIty') #不区分大小写
inf
>>> float('+inFinIty') #正无穷
inf
>>> float('-inFinIty') #负无穷
-inf
>>> float('nan') #没有值
nan

6、定义的对象如果要被float函数正确转换成浮点数,需要定义__float__函数。

>>> class X:
      def __init__(self,score):
            self.score = score         
>>> x = X(9.9)
>>> float(x) #不能转换
Traceback (most recent call last):
  File "<pyshell#171>", line 1, in <module>
    float(x) #不能转换
TypeError: float() argument must be a string or a number, not 'X'
>>> class X:   #重新定义类,加入__float__方法
      def __init__(self,score):
            self.score = score
      def __float__(self):
            return self.score
>>> x = X(9.9)
>>> float(x) #可以转换
9.9

小结

希望通过上面的操作能帮助大家。如果你有什么好的意见,建议,或者有不同的看法,我都希望你留言和我们进行交流、讨论。

欢迎关注微信公众号,谢谢大家支持:AiryData

转载请注明:数据之美 » Python3.6内置函数(22)——float()

喜欢 (4)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址