zoukankan      html  css  js  c++  java
  • Python内置函数(10)——float

    英文文档:

    class float([x])

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

    If the argument is a string, it should contain a decimal number, optionally preceded by a sign, and optionally embedded in whitespace. The optional sign may be '+' or '-'; a '+' sign has no effect on the value produced. The argument may also be a string representing a NaN (not-a-number), or a positive or negative infinity. More precisely, the input must conform to the following grammar after leading and trailing whitespace characters are removed:

    sign           ::=  "+" | "-"
    infinity       ::=  "Infinity" | "inf"
    nan            ::=  "nan"
    numeric_value  ::=  floatnumber | infinity | nan
    numeric_string ::=  [sign] numeric_value
    

    Here floatnumber is the form of a Python floating-point literal, described in Floating point literals. Case is not significant, so, for example, “inf”, “Inf”, “INFINITY” and “iNfINity” are all acceptable spellings for positive infinity.

    Otherwise, if the argument is an integer or a floating point number, a floating point number with the same value (within Python’s floating point precision) is returned. If the argument is outside the range of a Python float, an OverflowErrorwill be raised.

    For a general Python object xfloat(x) delegates to x.__float__().

    If no argument is given, 0.0 is returned.

    说明:

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

    >>> float(3)
    3.0
    >>> float('3')
    3.0

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

    >>> float()
    0.0

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

    >>> float('3.14.15926')
    Traceback (most recent call last):
      File "<pyshell#3>", 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#8>", 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.7)
    >>> float(x) #不能转换
    Traceback (most recent call last):
      File "<pyshell#20>", 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.7)
    >>> float(x) #可以转换
    9.7
    复制代码
  • 相关阅读:
    痞子衡嵌入式:单片机AI的春天已来,ARM Cortex-M55发布了
    《痞子衡嵌入式半月刊》 第 1 期
    痞子衡嵌入式:ARM Cortex-M内核那些事(6)- 系统堆栈机制
    痞子衡嵌入式:嵌入式里堆栈原理及其纯C实现
    将博客搬至CSDN
    痞子衡嵌入式:知名半导体MCU大厂软件开发C代码规范
    痞子衡嵌入式:语音处理工具pzh-speech诞生记(4)- 音频录播实现(PyAudio)
    痞子衡嵌入式:语音处理工具pzh-speech诞生记(2)- 界面构建(wxFormBuilder3.8.0)
    痞子衡嵌入式:ARM Cortex-M内核那些事(3.2)- 为Security而生(M23/33/35P)
    痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU外设那些事(2)- 百变星君FlexRAM
  • 原文地址:https://www.cnblogs.com/lincappu/p/8144674.html
Copyright © 2011-2022 走看看