精华内容
下载资源
问答
  • 2019-06-30 07:34:00

    Python math 模块、cmath 模块

    Python 中数学运算常用的函数基本都在 math 模块、cmath 模块中。

    Python math 模块提供了许多对浮点数的数学运算函数。

    Python cmath 模块包含了一些用于复数运算的函数

    cmath 模块的函数跟 math 模块函数基本一致,区别是 cmath 模块运算的是复数,math 模块运算的是数学运算。

    要使用 math 或 cmath 函数必须先导入:

    import math

    查看 math 查看包中的内容:

    import math
    >>> dir(math)
    ['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']
    >>>


    查看 cmath 查看包中的内容

    >>> import cmath
    >>> dir(cmath)
    ['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'cos', 'cosh', 'e', 'exp', 'inf', 'infj', 'isclose', 'isfinite', 'isinf', 'isnan', 'log', 'log10', 'nan', 'nanj', 'phase', 'pi', 'polar', 'rect', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau']
    >>>


    Python数学函数
    函数 返回值 ( 描述 )
    abs(x) 返回数字的绝对值,如abs(-10) 返回 10
    ceil(x) 返回数字的上入整数,如math.ceil(4.1) 返回 5
    cmp(x, y) 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1
    exp(x) 返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045
    fabs(x) 返回数字的绝对值,如math.fabs(-10) 返回10.0
    floor(x) 返回数字的下舍整数,如math.floor(4.9)返回 4
    log(x) 如math.log(math.e)返回1.0,math.log(100,10)返回2.0
    log10(x) 返回以10为基数的x的对数,如math.log10(100)返回 2.0
    max(x1, x2,...) 返回给定参数的最大值,参数可以为序列。
    min(x1, x2,...) 返回给定参数的最小值,参数可以为序列。
    modf(x) 返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。
    pow(x, y) x**y 运算后的值。
    round(x [,n]) 返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。
    sqrt(x) 返回数字x的平方根

     

    转载于:https://www.cnblogs.com/stillstep/p/11108572.html

    更多相关内容
  • 6.3 cmath--数学函数

    千次阅读 2016-02-21 10:03:20
    本模块提供了处理复数的数学函数,因此这些函数接受整数、浮点数或者复数作为参数。6.3.1 与极坐标相互转换的函数在Python里表示一个复数z,实部使用z.real表示,虚部使用z.imag,可以使用下面的公式...cmath.phase(x)

    本模块提供了处理复数的数学函数,因此这些函数接受整数、浮点数或者复数作为参数。

    6.3.1 与极坐标相互转换的函数

    Python里表示一个复数z,实部使用z.real表示,虚部使用z.imag,可以使用下面的公式来表示:

    z = z.real + z.imag*1j

    同样,采用极坐标也可以表示一个复数,具体是这样表示复数z,采用复数z的模r和复数向量与x轴正坐标的夹角来表示。

    cmath.phase(x) 

    返回复数在极坐标里的相位。

    例子:

    #python 3.4

    import cmath

     

    n = cmath.phase(complex(-1.0, 0.0))

    print(n)

    n = cmath.phase(complex(-1.0, -0.0))

    print(n)

    结果输出如下:

    3.141592653589793

    -3.141592653589793

     

    cmath.polar(x) 

    返回复数x在极坐标的表示(r, phi)

    例子:

    #python 3.4

    import cmath

     

    n = cmath.polar(complex(-1.0, 0.0))

    print(n)

    n = cmath.polar(complex(-1.0, -0.0))

    print(n)

    结果输出如下:

    (1.0, 3.141592653589793)

    (1.0, -3.141592653589793)

     

    cmath.rect(r, phi) 

    从极坐标表示(r, phi)转换为笛卡尔坐标表示的复数。

    例子:

    #python 3.4

    import cmath

     

    n = cmath.rect(1.0, cmath.pi)

    print(n)

    结果输出如下:

    (-1+1.2246467991473532e-16j)

     

     


    6.4 decimal--十进制的固定数和浮点数运算

    本模块提供了快速地进行十进制的浮点数运算,与内置类型float有下面几点区别:

    l 十进制模块是基于人类来设计的,跟人们在学校里学习到的数学内容保持一致。

    l 十进制模块的浮点数是可以准确地表示,比如1.12.2相加,用户一般认为是等于3.3,而不是等于3.3000000000000003

    l 正确地进行算术运算。比如0.1 + 0.1 + 0.1 - 0.3,在数学上是等于0,但在计算机的浮点数类型时,会返回5.5511151231257827e-017

    l 保留小数点后的有效位数。比如1.30 + 1.20 等于2.501.3*1.2等于1.56,而1.30*1.20等于1.5600

    l 跟浮点数类型不一样的地方,它可以由用户来选择合适的精度,默认是28位。

    l 二进制和十进制的浮点数都是按已经发布的标准来实现。

    l 十进制模块被设计来计算固定的浮点数计算。

    6.4.1 简单使用介绍

    要使用decimal模块,先要把此模块导入,然后使用函数getcontext()来进看精度、小数点保留多少位,以及异常处理等等。

    例子:

    #python 3.4

    from decimal import *

     

    print(getcontext())

    结果输出如下:

    Context(prec=28, rounding=ROUND_HALF_EVEN, Emin=-999999, Emax=999999, capitals=1, clamp=0, flags=[], traps=[InvalidOperation, DivisionByZero, Overflow])

     

    十进制的模块支持从整数、字符串、浮点数或元组构造对象:

    例子:

    #python 3.4

    from decimal import *

     

    print(Decimal(10))

    print(Decimal('3.14'))

    print(Decimal(3.14))

    print(Decimal((0, (3, 1, 4), -2)))

    print(Decimal(str(2.0**0.5)))

    print(Decimal(2)**Decimal('0.5'))

    print(Decimal('NaN'))

    print(Decimal('-Infinity'))

    结果输出如下:

    10

    3.14

    3.140000000000000124344978758017532527446746826171875

    3.14

    1.4142135623730951

    1.414213562373095048801688724

    NaN

    -Infinity

     

    打开浮点数操作时就抛出异常:

    例子:

    #python 3.4

    from decimal import *

     

    c = getcontext()

    c.traps[FloatOperation] = True

    print(Decimal('3.14'))

    print(Decimal(3.14))

    结果输出如下:

    3.14

    Traceback (most recent call last):

      File "F:/temp/pywin/dec1.py", line 7, in <module>

        print(Decimal(3.14))

    decimal.FloatOperation: [<class 'decimal.FloatOperation'>]

     

    改变十进制模块的位数精度、有效位取舍:

    例子:

    #python 3.4

    from decimal import *

     

    c = getcontext()

    c.prec = 6

    print(Decimal('3.14'))

    print(Decimal(3.14))

    print(Decimal('3.1415926535') + Decimal('2.7182818285'))

    c.rounding = ROUND_UP

    print(Decimal('3.1415926535') + Decimal('2.7182818285'))

    结果输出如下:

    3.14

    3.140000000000000124344978758017532527446746826171875

    5.85987

    5.85988

     

    对于浮点数的字符串进行处理:

    例子:

    #python 3.4

    from decimal import *

     

    data = list(map(Decimal, '1.34 1.87 3.45 2.35 1.00 0.03 9.25'.split()))

    print(max(data))

    print(min(data))

    print(sorted(data))

    print(sum(data))

    结果输出如下:

    9.25

    0.03

    [Decimal('0.03'), Decimal('1.00'), Decimal('1.34'), Decimal('1.87'), Decimal('2.35'), Decimal('3.45'), Decimal('9.25')]

    19.29

     

    针对不同小数位进行取舍:

    例子:

    #python 3.4

    from decimal import *

     

    print(Decimal('7.325').quantize(Decimal('.01'), rounding=ROUND_DOWN))

    print(Decimal('7.325').quantize(Decimal('1.'), rounding=ROUND_UP))

    结果输出如下:

    7.32

    8

    6.4.2 Decimal对象

    class decimal.Decimal(value="0", context=None) 

    从值value构造一个Decimal对象。value的类型可以是整数、字符串、元组、浮点数或者另一个Decimal对象。如果输入是一个字符串,符合下面的规则的表达式:

    sign           ::=  '+' | '-'

    digit          ::=  '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'

    indicator      ::=  'e' | 'E'

    digits         ::=  digit [digit]...

    decimal-part   ::=  digits '.' [digits] | ['.'] digits

    exponent-part  ::=  indicator [sign] digits

    infinity       ::=  'Infinity' | 'Inf'

    nan            ::=  'NaN' [digits] | 'sNaN' [digits]

    numeric-value  ::=  decimal-part [exponent-part] | infinity

    numeric-string ::=  [sign] numeric-value | [sign] nan

     

    adjusted() 

    返回调整为指数形式之后,指数需要多少表示。

    例子:

    #python 3.4

    from decimal import *

     

    print(Decimal('7.325').adjusted())

    print(Decimal('1000').adjusted())

    print(Decimal('9000').adjusted())

    print(Decimal('0.0009').adjusted())

    输出结果如下:

    0

    3

    3

    -4

     

    as_tuple() 

    返回命名的元组表示十进制数值。

    例子:

    #python 3.4

    from decimal import *

     

    print(Decimal('7.325').as_tuple())

    print(Decimal('1000').as_tuple())

    print(Decimal('9000').as_tuple())

    print(Decimal('0.0009').as_tuple())

    结果输出如下:

    DecimalTuple(sign=0, digits=(7, 3, 2, 5), exponent=-3)

    DecimalTuple(sign=0, digits=(1, 0, 0, 0), exponent=0)

    DecimalTuple(sign=0, digits=(9, 0, 0, 0), exponent=0)

    DecimalTuple(sign=0, digits=(9,), exponent=-4)

     

    canonical() 

    返回规范的格式。

    例子:

    #python 3.4

    from decimal import *

     

    print(Decimal('7.325').canonical())

    print(Decimal('1000').canonical())

    print(Decimal('9000').canonical())

    print(Decimal('0.0009').canonical())

    结果输出如下:

    7.325

    1000

    9000

    0.0009

     

    compare(other, context=None) 

    与其它other十进制数值比较,等于返回0, 大于返回1,小于返回-1,与不是数值比较返回NaN

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal('100').compare(Decimal('200'))

    print(r)

    r = Decimal('100').compare(Decimal('50'))

    print(r)

    r = Decimal('100').compare(Decimal('100'))

    print(r)

    r = Decimal('100').compare(Decimal('-inf'))

    print(r)

    r = Decimal('100').compare(Decimal('NaN'))

    print(r)

    结果输出如下:

    -1

    1

    0

    1

    NaN

     

    compare_signal(other, context=None) 

    除了NaN操作不一样之外,其它与compare()函数是一样的。

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal('100').compare_signal(Decimal('200'))

    print(r)

    r = Decimal('100').compare_signal(Decimal('50'))

    print(r)

    r = Decimal('100').compare_signal(Decimal('100'))

    print(r)

    r = Decimal('100').compare_signal(Decimal('-inf'))

    print(r)

    r = Decimal('100').compare_signal(Decimal('NaN'))

    print(r)

    结果输出如下:

    -1

    1

    0

    1

    Traceback (most recent call last):

      File "F:\temp\pywin\dec1.py", line 12, in <module>

        r = Decimal('100').compare_signal(Decimal('NaN'))

    decimal.InvalidOperation: [<class 'decimal.InvalidOperation'>]

     

    compare_total(other, context=None) 

    使用抽象表示方式进行比较,而不是使用值。返回的结果跟compare()函数一样。

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal('100').compare_total(Decimal('100'))

    print(r)

    r = Decimal('100').compare_total(Decimal('100.0'))

    print(r)

    r = Decimal('100.0').compare_total(Decimal('100'))

    print(r)

    结果输出如下:

    0

    1

    -1

     

    compare_total_mag(other, context=None) 

    不考虑符号的比较,与上面的函数返回值一样。

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal('100').compare_total_mag(Decimal('-100'))

    print(r)

    r = Decimal('100').compare_total_mag(Decimal('-100.0'))

    print(r)

    r = Decimal('100.0').compare_total_mag(Decimal('-100'))

    print(r)

    结果输出如下:

    0

    1

    -1

     

    conjugate() 

    返回十进制值本身。

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal('100').conjugate()

    print(r)

    结果输出如下:

    100

     

    copy_abs() 

    返回对象的绝对值。

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal('100').copy_abs()

    print(r)

    r = Decimal('-100').copy_abs()

    print(r)

    结果输出如下:

    100

    100

     

    copy_negate() 

    返回相反数。

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal('100').copy_negate()

    print(r)

    r = Decimal('-100').copy_negate()

    print(r)

    结果输出如下:

    -100

    100

     

    copy_sign(other, context=None) 

    从另外十进制对象获取符号,本对象取绝对值。

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal('100').copy_sign(Decimal('-1.0'))

    print(r)

    r = Decimal('-100').copy_sign(Decimal('-1.0'))

    print(r)

    结果输出如下:

    -100

    -100

     

    exp(context=None) 

    返回这个值的自然指数值,e**x

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal('1').exp()

    print(r)

    r = Decimal('-100').exp()

    print(r)

    结果输出如下:

    2.718281828459045235360287471

    3.720075976020835962959695804E-44

     

    from_float(f) 

    转换一个浮点数为十进制数。与字符串转换过来的浮点数有差别。

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal(0.1)

    print(r)

    结果输出如下:

    0.1000000000000000055511151231257827021181583404541015625

     

    fma(other, third, context=None)

    返回乘加值,self*other + third

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal(0.1).fma(10, 2)

    print(r)

    结果输出如下:

    3.000000000000000055511151231

     

    is_canonical() 

    如果对象符合规范的十进制数,就返回True,目前全部返回True

    例子:
    #python 3.4

    from decimal import *

     

    r = Decimal(0.1).is_canonical()

    print(r)

    结果输出如下:

    True

     

    is_finite() 

    判断对象是否表示有限的数值,如果是返回True,否则返回False

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal(0.1).is_finite()

    print(r)

    r = Decimal('inf').is_finite()

    print(r)

    结果输出如下:

    True

    False

     

    is_infinite() 

    判断对象是否无限的值,如果是返回True,否则返回False

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal(0.1).is_infinite()

    print(r)

    r = Decimal('inf').is_infinite()

    print(r)

    r = Decimal('NaN').is_infinite()

    print(r)

    结果输出如下:

    False

    True

    False

     

    is_nan() 

    是否一个非数字的值,如果是返回True,否则返回False

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal(0.1).is_nan()

    print(r)

    r = Decimal('inf').is_nan()

    print(r)

    r = Decimal('NaN').is_nan()

    print(r)

    结果输出如下:

    False

    False

    True

     

    is_normal(context=None) 

    如果值是正常的有限值返回True。比如0,非数字,无穷大等值返回False

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal(0.1).is_normal()

    print(r)

    r = Decimal('inf').is_normal()

    print(r)

    r = Decimal('NaN').is_normal()

    print(r)

    r = Decimal(0).is_normal()

    print(r)

    结果输出如下:

    True

    False

    False

    False

     

    is_qnan() 

    判断值是否一个确定的非数字值。

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal(0.1).is_qnan()

    print(r)

    r = Decimal('inf').is_qnan()

    print(r)

    r = Decimal('NaN').is_qnan()

    print(r)

    r = Decimal(0).is_qnan()

    print(r)

    结果输出如下:

    False

    False

    True

    False

     

    is_signed() 

    如果值是负数返回True,否则返回False

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal(-0.1).is_signed()

    print(r)

    r = Decimal('+inf').is_signed()

    print(r)

    r = Decimal('NaN').is_signed()

    print(r)

    结果输出如下:

    True

    False

    False

     

    is_snan() 

    如果参数是一个有符号的NaN数,就返回True,其它返回False

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal(-0.1).is_snan()

    print(r)

    r = Decimal('+inf').is_snan()

    print(r)

    r = Decimal('-inf').is_snan()

    print(r)

    r = Decimal('-NaN').is_snan()

    print(r)

    结果输出如下:

    False

    False

    False

    False

     

    is_subnormal(context=None)

    判断一个浮点数是否表示为一个非规标准化的浮点小数。

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal('0.001').is_subnormal()

    print(r)

    r = Decimal('+inf').is_subnormal()

    print(r)

    r = Decimal('-inf').is_subnormal()

    print(r)

    r = Decimal('-NaN').is_subnormal()

    print(r)

    结果输出如下:

    False

    False

    False

    False

     

    is_zero() 

    判断值是否为0,如果是返回True,否则返回False

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal('0.00').is_zero()

    print(r)

    r = Decimal('+inf').is_zero()

    print(r)

    r = Decimal('-inf').is_zero()

    print(r)

    r = Decimal('-NaN').is_zero()

    print(r)

    结果输出如下:

    True

    False

    False

    False

     

    ln(context=None) 

    返回自然对数值。

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal('0.00').ln()

    print(r)

    r = Decimal('5.00').ln()

    print(r)

    结果输出如下:

    -Infinity

    1.609437912434100374600759333

     

    log10(context=None) 

    返回10为底数的对数值。

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal('0.00').log10()

    print(r)

    r = Decimal('5.00').log10()

    print(r)

    结果输出如下:

    -Infinity

    0.6989700043360188047862611053

     

    logb(context=None) 

    判断一个数值是否为0,如果非0就返回相应的值,否则抛出异常。

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal('0.00').logb()

    print(r)

    r = Decimal('5.00').logb()

    print(r)

    结果输出如下:

    Traceback (most recent call last):

      File "F:\temp\pywin\dec1.py", line 4, in <module>

        r = Decimal('0.00').logb()

    decimal.DivisionByZero: [<class 'decimal.DivisionByZero'>]

     

    logical_and(other, context=None) 

    logical_invert(context=None) 

    logical_or(other, context=None) 

    logical_xor(other, context=None) 

    十进制表示的逻辑操作运算,值只能01,其它值会抛出异常。

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal('1').logical_and(Decimal('1'))

    print(r)

    r = Decimal('1').logical_and(Decimal('0'))

    print(r)

    结果输出如下:

    1

    0

     

    max(other, context=None)

    返回最大值,并且经过规范处理。

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal('1').max(Decimal('1.000003'))

    print(r)

    r = Decimal('1').max(Decimal('0'))

    print(r)

    结果输出如下:

    1.000003

    1

     

    max_mag(other, context=None) 

    对对象先取绝对值,再进行比较,返回最大值的数。

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal('1').max_mag(Decimal('-1.000003'))

    print(r)

    r = Decimal('1').max_mag(Decimal('0'))

    print(r)

    结果输出如下:

    -1.000003

    1

     

    min(other, context=None) 

    min_mag(other, context=None) 

    这两个函数跟上面的函数相似,只是返回最小值。

     

    next_minus(context=None) 

    返回比当前值相差最小的值。

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal('1').next_minus()

    print(r)

    r = Decimal('0').next_minus()

    print(r)

    结果输出如下:

    0.9999999999999999999999999999

    -1E-1000026

     

    next_plus(context=None)

    返回与当前值相差最小的最大值。

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal('1').next_plus()

    print(r)

    r = Decimal('0').next_plus()

    print(r)

    结果输出如下:

    1.000000000000000000000000001

    1E-1000026

     

    next_toward(other, context=None) 

    根据参数other来决定向正值还是向负值找到下一个增加或减少的值。

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal('1').next_toward(Decimal('10'))

    print(r)

    r = Decimal('8').next_toward(Decimal('-10'))

    print(r)

    结果输出如下:

    1.000000000000000000000000001

    7.999999999999999999999999999

     

    normalize(context=None) 

    删除最右边的0,把值表示为Decimal(‘0’)Decimal(‘0e0’)的格式。

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal('10000').normalize()

    print(r)

    r = Decimal('0.0004000').normalize()

    print(r)

    结果输出如下:

    1E+4

    0.0004

     

    number_class(context=None) 

    返回对数值表示的描述。 主要有以下10项:

    "-Infinity", 指出操作数是负无穷大。

    "-Normal", 指出操作数是负数和标准的数。

    "-Subnormal", 指出操作数是负数和非规范的数。

    "-Zero", 指出操作数是负零值。

    "+Zero", 指出操作数是正零值。

    "+Subnormal", 指出操作数是正数和非规范的数。

    "+Normal", 指出操作数是正数和标准的数。

    "+Infinity", 指出操作数是正数和无穷大的数。

    "NaN", 指出操作数是正的非数字的数。

    "sNaN", 指出操作数是有符号的非数字的数。

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal('10000').number_class()

    print(r)

    结果输出如下:

    +Normal

     

    quantize(exp, rounding=None, context=None, watchexp=True) 

    把值按参数exp来保持小数点的位数。

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal('1.41421356').quantize(Decimal('1.000'))

    print(r)

    r = Decimal('1.41421356').quantize(Decimal('2.0'))

    print(r)

    结果输出如下:

    1.414

    1.4

     

    radix() 

    返回Decimal(10)的值,表示10进制的数字。

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal('1.41421356').radix()

    print(r)

    r = Decimal('0.001').radix()

    print(r)

    结果输出如下:

    10

    10

     

    remainder_near(other, context=None)

    返回最接近的余数,余数可以是正数,也可以是负数。

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal('18').remainder_near(Decimal(10))

    print(r)

    r = Decimal('25').remainder_near(Decimal(10))

    print(r)

    r = Decimal('35').remainder_near(Decimal(10))

    print(r)

    结果输出如下:

    -2

    5

    -5

     

    rotate(other, context=None) 

    对值按other进行左移运算。

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal('18').rotate(Decimal(2))

    print(r)

    r = Decimal('180').rotate(Decimal(1))

    print(r)

    结果输出如下:

    1800

    1800

     

    same_quantum(other, context=None) 

    判断两个数的小数部分是否有相同有效位数。

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal('18.23').same_quantum(Decimal('2.1'))

    print(r)

    r = Decimal('18.23').same_quantum(Decimal('2.10'))

    print(r)

    r = Decimal('18.23').same_quantum(Decimal(2.10))

    print(r)

    结果输出如下:

    False

    True

    False

     

    scaleb(other, context=None) 

    通过参数other对值进行调整,参数other必须是一个整数,相当于10**other

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal('18.23').scaleb(Decimal(2))

    print(r)

    r = Decimal('18.233333').scaleb(Decimal(3))

    print(r)

    结果输出如下:

    1823

    18233.333

     

    shift(other, context=None) 

    根据参数other进行左移数值。

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal('18.23').shift(Decimal(2))

    print(r)

    r = Decimal('18.233333').shift(Decimal(3))

    print(r)

    结果输出如下:

    1823.00

    18233.333000

     

    sqrt(context=None) 

    计算平方根。

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal('18.23').sqrt()

    print(r)

    结果输出如下:

    4.269660408041838636080849820

     

    to_eng_string(context=None) 

    把值转换为工程方式表示。

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal('18.23').to_eng_string()

    print(r)

    r = Decimal('1823E+1').to_eng_string()

    print(r)

    结果输出如下:

    18.23

    18.23E+3

     

    to_integral(rounding=None, context=None) 

    to_integral_value(rounding=None, context=None) 

    返回最接近的整数。

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal('18.23').to_integral()

    print(r)

    r = Decimal('182.7').to_integral()

    print(r)

    结果输出如下:

    18

    183

     

    to_integral_exact(rounding=None, context=None) 

    返回最接近的整数,但置信号给InexactRounded

    例子:

    #python 3.4

    from decimal import *

     

    r = Decimal('18.23').to_integral_exact()

    print(r, Inexact, Rounded)

    r = Decimal('182.7').to_integral_exact()

    print(r, Inexact)

    结果输出如下:

    18 <class 'decimal.Inexact'> <class 'decimal.Rounded'>

    183 <class 'decimal.Inexact'>



    蔡军生  QQ:9073204 深圳

    展开全文
  • Python math 模块、cmath 模块Python 中数学运算常用的函数基本都在 math 模块、cmath 模块中。高佣联盟www.cgewang.comPython math 模块提供了许多对浮点数的数学运算函数。Python cmath 模块包含了一些用于复数...

    Python math 模块、cmath 模块

    Python 中数学运算常用的函数基本都在 math 模块、cmath 模块中。高佣联盟 www.cgewang.com

    Python math 模块提供了许多对浮点数的数学运算函数。

    Python cmath 模块包含了一些用于复数运算的函数。

    cmath 模块的函数跟 math 模块函数基本一致,区别是 cmath 模块运算的是复数,math 模块运算的是数学运算。

    要使用 math 或 cmath 函数必须先导入:

    import math

    查看 math 查看包中的内容:

    >>> import math

    >>> dir(math)

    ['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']

    >>>

    下文会介绍各个函数的具体应用。

    查看 cmath 查看包中的内容

    >>> import cmath

    >>> dir(cmath)

    ['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'cos', 'cosh', 'e', 'exp', 'inf', 'infj', 'isclose', 'isfinite', 'isinf', 'isnan', 'log', 'log10', 'nan', 'nanj', 'phase', 'pi', 'polar', 'rect', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau']

    >>>

    实例

    >>> import cmath

    >>> cmath.sqrt(-1)

    1j

    >>> cmath.sqrt(9)

    (3+0j)

    >>> cmath.sin(1)

    (0.8414709848078965+0j)

    >>> cmath.log10(100)

    (2+0j)

    >>>

    Python math 、cmath

    1.math dir(math) 2.cmath 复数运算

    模块math和cmath

    python使用特殊命令import导入模块,再以module.function的方式使用模块 python标准库提供了一个专门用于处理复数的模块cmath,math处理数据 模块math常用的函数有 ...

    python 加密算法及其相关模块的学习(hashlib&comma;random&comma;string&comma;math)

    加密算法介绍 一,HASH Hash,一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值.这种 ...

    python之模块cmath

    # -*- coding: utf-8 -*-#python 27#xiaodeng#python之模块cmath #复数的数学函数,如log.tan.sin等函数用法,针对我目前的情况用途较少,暂不 ...

    python加密算法及其相关模块的学习(hashlib&comma;RSA&comma;random&comma;string&comma;math)

    加密算法介绍 一,HASH Hash,一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值.这种 ...

    python标准库介绍——7 cmath 模块详解

    [Example 1-61 #eg-1-61] 所展示的 ``cmath`` 模块包含了一些用于复数运算的函数. ====Example 1-61. 使用 cmath 模块====[eg-1-61] ...

    python math 模块

    数学模块 引入模块:import math 注意: 使用某个模块下的函数,必须先引入这个模块,否则无法正常使用. ceil() 向上取整操作 格式:math.ceil(数值) 返回值:整型 floor ...

    Python全栈之路----常用模块学习----模块的种类和导入方法

    什么是模块? 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码 ...

    Python import语句导入模块语法&lbrack;转&rsqb;

    Python import语句导入模块语法 社区推荐:掘金是国内最活跃的技术社区,我们每日有优质Python开发实例分享,海量python开源库推送.来掘金,和更多懂技术的小伙伴交流.   pytho ...

    随机推荐

    Centos7 关闭防火墙

    CentOS 7.0默认使用的是firewall作为防火墙,使用iptables必须重新设置一下 1.直接关闭防火墙 systemctl stop firewalld.service #停止firew ...

    BZOJ 1031&colon; &lbrack;JSOI2007&rsqb;字符加密Cipher 后缀数组

    1031: [JSOI2007]字符加密Cipher Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 6014  Solved: 2503[Submit ...

    Effective Objective-C 2&period;0 — 第一条:了解Objective-C语言的起源

    第一条: 了解Objective-C语言的起源 由Smalltalk演化而来,消息型语言的鼻祖(messaging structure)而非 (function calling)函数调用 //Mess ...

    网页撤销后ubuntu本地撤销

    git reset --hard 回到上一个commit: 之后再    git reset --hard :

    node&period;js中文资料导航

    以下资料来自gitHUb上面:https://github.com/youyudehexie/node123 Node.js HomePage Node官网七牛镜像 Infoq深入浅出Node.js系 ...

    POJ3268Dijkstra

    题意:给定n个点,m条边,求所有顶点中到顶点x的来回最短距离 分析:考虑到数据范围,选用Dijkstra,用Floyd会超时 #include #include &l ...

    C&num; 常用工具合集

    Visual Studio 2013 扩展 Visual Studio 2013 Update 4:是目前微软发布的最新版开发工具升级包,高效而且强大.下面的扩展都是该版本的Visual Studio ...

    es6 模板字变量和字符串占位符

    开发者一直在寻找一种创建多行字符串的形式,但要使用单引号双引号字符串一定要在同一行才行. 老办法: 还有其他办法,虽然能实现,但是太啰嗦 es6模板自变量 使用反撇好(`)替换了单双引号 反撇好中的所 ...

    jmeter 压测duobbo接口,施压客户端自己把自己压死了

    jmeter 压测duobbo接口,jmeter代码不合理,导致每执行一次请求,会调用一次消耗内存的实例化.导致越压越慢,请求发不出去.这个时候需要考虑修改代码了. 截图中,tps越来越少. 原来初始 ...

    展开全文
  • Python Number(数字)

    2021-03-17 01:07:59
    cmath.sqrt(-1) 1j >>> cmath.sqrt(9) (3+0j) >>> cmath.sin(1) (0.8414709848078965+0j) >>> cmath.log10(100) (2+0j) >>> Python数学函数 函数返回值 ( 描述 ) 返回数字的绝对值,如abs(-10) 返回 10 返回数字的上...

    Python Number(数字)

    Python Number 数据类型用于存储数值。

    数据类型是不允许改变的,这就意味着如果改变 Number 数据类型的值,将重新分配内存空间。

    以下实例在变量赋值时 Number 对象将被创建:

    var1 = 1

    var2 = 10

    您也可以使用del语句删除一些 Number 对象引用。

    del语句的语法是:

    del var1[,var2[,var3[....,varN]]]]

    您可以通过使用del语句删除单个或多个对象,例如:

    del var

    del var_a, var_b

    Python 支持四种不同的数值类型:

    整型(Int) - 通常被称为是整型或整数,是正或负整数,不带小数点。

    长整型(long integers) - 无限大小的整数,整数最后是一个大写或小写的L。

    浮点型(floating point real values) - 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)

    复数(complex numbers) - 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。

    intlongfloatcomplex

    1051924361L0.03.14j

    100-0x19323L15.2045.j

    -7860122L-21.99.322e-36j

    0800xDEFABCECBDAECBFBAEl32.3+e18.876j

    -0490535633629843L-90.-.6545+0J

    -0x260-052318172735L-32.54e1003e+26J

    0x69-4721885298529L70.2-E124.53e-7j

    长整型也可以使用小写"L",但是还是建议您使用大写"L",避免与数字"1"混淆。Python使用"L"来显示长整型。

    Python还支持复数,复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示,

    复数的实部a和虚部b都是浮点型

    Python Number 类型转换

    int(x [,base ]) 将x转换为一个整数

    long(x [,base ]) 将x转换为一个长整数

    float(x ) 将x转换到一个浮点数

    complex(real [,imag ]) 创建一个复数

    str(x ) 将对象 x 转换为字符串

    repr(x ) 将对象 x 转换为表达式字符串

    eval(str ) 用来计算在字符串中的有效Python表达式,并返回一个对象

    tuple(s ) 将序列 s 转换为一个元组

    list(s ) 将序列 s 转换为一个列表

    chr(x ) 将一个整数转换为一个字符

    unichr(x ) 将一个整数转换为Unicode字符

    ord(x ) 将一个字符转换为它的整数值

    hex(x ) 将一个整数转换为一个十六进制字符串

    oct(x ) 将一个整数转换为一个八进制字符串

    Python math 模块、cmath 模块

    Python 中数学运算常用的函数基本都在 math 模块、cmath 模块中。

    Python math 模块提供了许多对浮点数的数学运算函数。

    Python cmath 模块包含了一些用于复数运算的函数。

    cmath 模块的函数跟 math 模块函数基本一致,区别是 cmath 模块运算的是复数,math 模块运算的是数学运算。

    要使用 math 或 cmath 函数必须先导入:

    import math

    查看 math 查看包中的内容:

    >>> import math

    >>> dir(math)

    ['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']

    >>>

    下文会介绍各个函数的具体应用。

    查看 cmath 查看包中的内容

    >>> import cmath

    >>> dir(cmath)

    ['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'cos', 'cosh', 'e', 'exp', 'inf', 'infj', 'isclose', 'isfinite', 'isinf', 'isnan', 'log', 'log10', 'nan', 'nanj', 'phase', 'pi', 'polar', 'rect', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau']

    >>>

    实例

    >>> import cmath

    >>> cmath.sqrt(-1)

    1j

    >>> cmath.sqrt(9)

    (3+0j)

    >>> cmath.sin(1)

    (0.8414709848078965+0j)

    >>> cmath.log10(100)

    (2+0j)

    >>>

    Python数学函数

    函数返回值 ( 描述 )

    返回数字的绝对值,如abs(-10) 返回 10

    返回数字的上入整数,如math.ceil(4.1) 返回 5

    如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1

    返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045

    返回数字的绝对值,如math.fabs(-10) 返回10.0

    返回数字的下舍整数,如math.floor(4.9)返回 4

    如math.log(math.e)返回1.0,math.log(100,10)返回2.0

    返回以10为基数的x的对数,如math.log10(100)返回 2.0

    返回给定参数的最大值,参数可以为序列。

    返回给定参数的最小值,参数可以为序列。

    返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。

    x**y 运算后的值。

    返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。

    返回数字x的平方根

    Python随机数函数

    随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。

    Python包含以下常用随机数函数:

    函数描述

    从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。

    从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1

    随机生成下一个实数,它在[0,1)范围内。

    改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。

    将序列的所有元素随机排序

    随机生成下一个实数,它在[x,y]范围内。

    Python三角函数

    Python包括以下三角函数:

    函数描述

    返回x的反余弦弧度值。

    返回x的反正弦弧度值。

    返回x的反正切弧度值。

    返回给定的 X 及 Y 坐标值的反正切值。

    返回x的弧度的余弦值。

    返回欧几里德范数 sqrt(x*x + y*y)。

    返回的x弧度的正弦值。

    返回x弧度的正切值。

    将弧度转换为角度,如degrees(math.pi/2) , 返回90.0

    Python数学常量

    常量描述

    pi数学常量 pi(圆周率,一般以π来表示)

    e数学常量 e,e即自然常数(自然常数)。

    原文链接:https://rumenz.com/python/python_numbers.html

    Python pass 语句

    展开全文
  • Python基础学习:cmath模块

    千次阅读 2018-04-12 17:15:52
    cmath——复数域数学函数模块 该模块属于内置模块,随时可以调用。它提供了数学函数在复数域上扩展的运算函数,math模块内的函数属于其子集,该模块是为了某些需要在复数域上进行的操作站门设计的。该模块的函数...
  • Python 数学运算相关函数

    千次阅读 2018-03-28 14:56:16
    Python math 模块、cmath 模块Python 中数学运算常用的函数基本都在 math 模块、cmath 模块中。Python math 模块提供了许多对浮点数的数学运算函数。Python cmath 模块包含了一些用于复数运算的函数。cmath 模块的...
  • cmath——复数域数学函数模块 转自:https://blog.csdn.net/zhtysw/article/category/7511293 该模块属于内置模块,随时可以调用。它提供了数学函数在复数域上扩展的运算函数,math模块内的函数属于其子集,该...
  • Python math 模块与 cmath 模块

    千次阅读 2018-06-24 18:12:00
    cmath 模块的函数跟 math 模块函数基本一致,区别是 cmath 模块运算的是复数,math 模块运算的是数学运算。要使用 math 或 cmath 函数必须先导入:import math1、math 模块查看 math 查看包中的内容:&gt;&gt...
  • python之math_cmath

    2021-12-09 13:09:21
    import cmath #math 模块提供了许多对浮点数的数学运算函数 print(dir(math)) #['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', # 'atan2', 'atanh'...
  • Polar 投影c#版本移植

    2017-11-26 19:07:00
    return (RADIUS * (CMath.acos(CMath.cos(rlat2) * CMath.cos(rlat1) * CMath.cos(rlon2 - rlon1) + CMath.sin(rlat2) * CMath.sin(rlat1)))); } /** * 功能: * 重置参数 * 参数: * lon,lat - 中心经纬度,...
  • Python中的数学模块:Math和Cmath

    千次阅读 2019-04-23 20:21:01
    当我们在日常生活中编写程序时,我们通常遇到需要使用数学来完成任务的情况。像其他编程语言一样,Python提供了各种基本运算操作,如*代表乘法,%代表求模...这两个模块是math和cmath。 第一个模块允许您访问实数的...
  • 例子: #python 3.4 import cmath n = cmath.polar(complex(-1.0, 0.0)) print(n) n = cmath.polar(complex(-1.0, -0.0)) print(n) 结果输出如下: (1.0, 3.141592653589793) (1.0, -3.141592653589793) cmath.rect...
  • 然而,没有直接的公式来计算cosec(x),sec(x)和cot(x),但是它们的值分别等于sin(x),cos(x)和tan(x)返回值的倒数。 你也可以做逆运算,通过使用asin(x),acos(x)和atan(x)计算给定值的角度,而不是计算某个角度的...
  • python基础及函数1

    2020-12-04 23:17:44
    cmath:数学模块,衍生了复数 cmath.phase(x):返回复数x的【幅角】,即math.atan(b/a) cmath.polar(x):笛卡尔坐标,转换为极坐标 print(r,p):r为模,即r=abs(x) p为幅角,即p=phase(x) cmath.rect(r,p):极坐标,...
  • 然而,没有直接的公式来计算cosec(x),sec(x)和cot(x),但是它们的值分别等于sin(x),cos(x)和tan(x)返回值的倒数。 你也可以做逆运算,通过使用asin(x),acos(x)和atan(x)计算给定值的角度,而不是计算某个角度的...
  • cmath:数学模块,衍生了复数 cmath.phase(x):返回复数x的【幅角】,即math.atan(b/a) cmath.polar(x):笛卡尔坐标,转换为极坐标 print(r,p):r为模,即r=abs(x) p为幅角,即p=phase(x) cmath.rect(r,p):极坐标,...
  • Example 1 def get_polar_t(self): mag = self.get_magnitude() sizeimg = np.real(self.imgfft).shape pol = np.zeros(sizeimg) for x in range(sizeimg[0]): for y in range(sizeimg[1]): my = y - sizeimg[1] / ...
  • R距离/mm """ try: R=np.sqrt(x**2+y**2) J1=math.degrees(cmath.polar(complex(x,y))[1]) return round(R, 2),round(J1, 2) except Exception as e: logging.error("计算J1异常:",e) def 判断象限(self,x,y): """ ...
  • # 平面直角坐标和极坐标之间的转换 d = cmath.polar(1 + 1j) e = cmath.rect(1, cmath.pi / 2) print(a, b, c, d, e) 三、类型转换 a = float(2) b = str('1.2') c = bool(1) d = 1.5 == 2 print(a, b, c, d) 四、...
  • math模块支持浮点数运算 cmath模块支持复数运算 cmath.polar() 极坐标 cmath.rect() 笛卡尔坐标 cmath.exp(x) e^x cmath.log(x,a) 以a为底的x的对数 decimal模块 小数-固定精度的浮点值,当做相等判断时小心: 如:...
  • python07(python数字)

    2021-02-11 01:22:26
    python数字二.Python Number 类型转换三.Python math 模块、cmath 模块四.Python数学函数五.Python随机数函数六.Python三角函数一.引子前几篇中粗略介绍了一下python数字,本篇我们详细介绍一下python数字。二.数字...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 132
精华内容 52
关键字:

cmath.polar返回值

友情链接: x_4.zip