python 2.2*

  1. 文中对于 _ 提到,它代表了上一次的输出结果,"用户应该将其视为只读变量",实际情况是你也可以对于_ 赋值,_=10 是没有毛病的,但这样的结果会导致你在之后调用 _ 的时候全部变成了10,除非你 del _

    对于round:

    >>> round(10.5)
    10
    >>> round(11.5)
    12
    >>>

    Python 所谓的奇进偶弃,因为浮点数的表示在计算机中并不准确,用的时候可能要注意一下。

    happy_ing

       happy_ing

      115***[email protected]

    8个月前 (09-06)
  2.    我无所谓

      125***[email protected]

    python 不支持复数转换为整数或浮点数

    >>> float(4.5+0j)
    Traceback (most recent call last):
      File "<pyshell#5>", line 1, in <module>
        float(4.5+0j)
    TypeError: can't convert complex to float
    
    >>> int(4+0j)
    Traceback (most recent call last):
      File "<pyshell#6>", line 1, in <module>
        int(4+0j)
    TypeError: can't convert complex to int
    >>>
    我无所谓

       我无所谓

      125***[email protected]

    6个月前 (11-08)
  3.    searchsulin

      sea***[email protected]

    随机数函数中缺少 randint,sample

    random.randint(x,y) #随机生一个整数int类型,可以指定这个整数的范围

    实例

    >>> random.randint(1000,9999)
    8449

    random.sample(sequence,length) 可以从指定的序列中,随机的截取指定长度的片断,不修改原序列。

    实例

    >>> lst = random.sample('abcd1234',4)
    >>> strs = ''.join(lst)
    >>> strs
    'a432'
    
    

       searchsulin

      sea***sulin@gmail

  4.    刘亚彬

      100***[email protected]

       参考地址

    “4舍6入5看齐,奇进偶不进”我觉得并不是因为浮点数在计算机表示的问题。计算机浮点数的表示是 ieee 定义的标准规则,如果 python 中存在,没道理其他语言中不存在。事实上是因为该取舍方法比过去的 "四舍五入" 方法在科学计算中更准确。而国家标准也已经规定使用 “4舍6入5看齐,奇进偶不进” 取代"四舍五入".

    从统计学的角度上来讲,如果大量数据无脑的采用四舍五入会造成统计结果偏大。而"奇进偶舍"可以将舍入误差降到最低。

    奇进偶舍是一种比较精确比较科学的计数保留法,是一种数字修约规则。

    其具体要求如下(以保留两位小数为例):

    •  (1)要求保留位数的后一位如果是4或者4以下的数字,则舍去, 例如 5.214保留两位小数为5.21。
    •  (2)如果保留位数的后一位如果是6或者6以上的数字,则进上去, 例如5.216保留两位小数为5.22。
    •  (3)如果保留位数是保留整数部分或保留一位小数,则要根据保留位来决定奇进偶舍:
      >>> round(5.215,2)#实际并没有进位
      5.21
      >>> round(5.225,2)
      5.22
      >>>
      >>> round(1.5)#此处进位
      2
      >>> round(1.5)==round(2.5)#偶数舍去
      True
      >>> round(1.15,1)
      1.1
      >>> round(1.25,1)
      1.2
      >>> round(1.151,1)
      1.2
      >>> round(1.251,1)
      1.3
    •  (4) 如果保留位数的后一位如果是5,且该位数后有数字。则进上去,例如5.2152保留两位小数为5.22,5.2252保留两位小数为5.23,5.22500001保留两位小数为5.23。
    从统计学的角度,“奇进偶舍”比“四舍五入”要科学,在大量运算时,它使舍入后的结果误差的均值趋于零,而不是像四舍五入那样逢五就入,导致结果偏向大数,使得误差产生积累进而产生系统误差,“奇进偶舍”使测量结果受到舍入误差的影响降到最低。
    刘亚彬

       刘亚彬

      100***[email protected]

       参考地址

    4个月前 (01-17)
  5.    LL_NUAA

      261***[email protected]

    针对前面有人提到复数不能强转为int或者float的问题:

    其实在Python中,复数提供了2个函数,一个函数是real,返回复数的实数部分,另一个函数是imag,返回复数的虚数部分。因为实数跟复数是差异很大的类型,所以不支持强制转换是可以理解的。因为在强制转换过程中,虚数部分到底该怎么转换,是没有定义的,而int和float只有实数部分,虚数部分该如何取舍?

    >>> a = 4.1+0.3j
    >>> a
    (4.1+0.3j)
    >>> a.real
    4.1
    >>> a.imag
    0.3
    LL_NUAA

       LL_NUAA

      261***[email protected]

    4个月前 (01-22)
  6.    zxiaoj0823

      zxi***[email protected]

       参考地址

    Python3中已经不能使用cmp()函数了,被如下五个函数替代:

    import operator       #首先要导入运算符模块
    
    operator.gt(1,2)      #意思是greater than(大于)
    operator.ge(1,2)      #意思是greater and equal(大于等于)
    operator.eq(1,2)      #意思是equal(等于)
    operator.le(1,2)      #意思是less and equal(小于等于)
    operator.lt(1,2)      #意思是less than(小于)
    zxiaoj0823

       zxiaoj0823

      zxi***[email protected]

       参考地址

    3个月前 (01-25)
  7.    宗七七

      zon***[email protected]

    fractions 模块提供了分数类型的支持。

    构造函数:
    class fractions.Fraction(numerator=0, denominator=1) 
    class fractions.Fraction(int|float|str|Decimal|Fraction)

    可以同时提供分子(numerator)和分母(denominator)给构造函数用于实例化Fraction类,但两者必须同时是int类型或者numbers.Rational类型,否则会抛出类型错误。当分母为0,初始化的时候会导致抛出异常ZeroDivisionError。

    分数类型:

    from fractions import Fraction
    
    >>> x=Fraction(1,3)
    >>> y=Fraction(4,6)
    >>> x+y
    Fraction(1, 1)
    
    >>> Fraction('.25') 
    Fraction(1, 4)

    浮点数与分数的转换:

    >>> f=2.5
    >>> z=Fraction(*f.as_integer_ratio())
    >>> z
    Fraction(5, 2)
    >>> x=Fraction(1,3)
    >>> float(x)
    0.3333333333333333
    >>>
    宗七七

       宗七七

      zon***[email protected]

    2个月前 (03-11)
  8.    宗七七

      zon***[email protected]

    小数对象:

    decimal 模块提供了一个 Decimal 数据类型用于浮点数计算,拥有更高的精度。

    >>> import decimal
    >>> decimal.getcontext().prec=4              # 指定精度(4位小数)
    >>> decimal.Decimal(1) / decimal.Decimal(7)
    Decimal('0.1429')
    >>> with decimal.localcontext() as ctx:      # 小数上下文管理器
    ...     ctx.prec=2
    ...     decimal.Decimal('1.00') / decimal.Decimal('3.00')
    ... 
    Decimal('0.33')
    >>>
    宗七七

       宗七七

      zon***[email protected]

    2个月前 (03-11)
  9.    mqslllduoduo

      494***[email protected]

    看下面这个例子 :

    >>> a = 259
    >>> def foo () :
    ...     b = 259
    ...     c = 259
    ...     print(a is b)
    ...     print(b is c)
    ...
    >>> foo()
    False
    True

    这是因为 Python 程序都是由代码块构成,代码块作为程序的一个最小基本单位来执行。一个模块文件/一个函数体/一个类/交互式命令中的单行代码都叫做一个代码块。

    上面的程序中有两部分代码块,一个是名称 a 所在的代码块,一个是名称 b/c 所在的代码块。Python 的另一个优化的地方就是,如果在同一个代码块中创建的两个整数对象中,它们的值相等的话,那么这两个对象引用同一个整数对象。所以Python出于对性能的考虑,但凡是不可变的对象,在同一代码块中,只有值相等的对象就不会重复创建,而是直接引用已经存在的对象。不仅整数对象,字符串对象也遵循同样的原则。

猜你喜欢

转载自blog.csdn.net/weixin_41071202/article/details/80238070