内建函数.数学运算类

abs(x) 

返回值: 数值对象

常用于: 对整数/长整数/浮点数/负数求绝对值.复数的绝对值返回它的模

# -*- coding: utf-8 -*-
"""
#
# Authors: limanman
# OsChina: http://my.oschina.net/pydevops/
# Purpose:
#
"""
import cmath


def main():
    """Main function."""

    cur_num = -1
    cur_complex = cmath.sqrt(cur_num)
    # 其实返回的是复数模的绝对值
    print abs(cur_complex)

if __name__ == '__main__':
    main()

complex(real [,imag])

返回值: complex对象

常用于: 创建一个实数部分为real,虚数部分为imag的复数,或是将一个字符串/数字转换为复数,当字符串转换为复数时,字符串+/-两边不能有空白

# -*- coding: utf-8 -*-
"""
#
# Authors: limanman
# OsChina: http://my.oschina.net/pydevops/
# Purpose:
#
"""


def main():
    """Main function."""

    cur_strs = '0 + 1j'
    # 将字符串转换为复数
    try:
        cur_complex = complex(cur_strs)
    except ValueError:
        cur_complex = complex(cur_strs.replace(' ', ''))
    print cur_complex

if __name__ == '__main__':
    main()

divmod(x, y)

返回值: 元祖对象对象

常用于: 传入两个非复数,作为参数,返回商和余数的二元祖

float(x)

返回值: 浮点对象

常用于: 将字符串或是数字转换为浮点数

int(x[, base])

返回值: int/long对象

常用于: 将数字或是字符串X转换为整数或是长整数,X为浮点数则向0截断,如果超出整数返回则返回长整数对象,如果定义了base则X必须是字符串

# -*- coding: utf-8 -*-
"""
#
# Authors: limanman
# OsChina: http://my.oschina.net/pydevops/
# Purpose:
#
"""


def main():
    """Main function."""

    hex_num = '209'
    oct_num = '1011'
    # int进制转换时参数必须是字符串
    print ('hex %s -> int %s\n'
           'oct %s -> int %s') % (hex_num, int(hex_num, 16),
                                  oct_num, int(oct_num, 8))

if __name__ == '__main__':
    main()

long(x [,base] )

返回值: long对象

常用于: 将数字或是字符串X转换为长整数,X为浮点数则向0截断,如果定义了base则X必须是字符串

pow(x, y[, z])

返回值: 整型对象

常用于: 返回x的y次幂,如果提供z的化返回x的y次幂然后对z取模,比pow(x, y)%z更高效,pow(x, y)和x**y是等价的

# -*- coding: utf-8 -*-
"""
#
# Authors: limanman
# OsChina: http://my.oschina.net/pydevops/
# Purpose:
#
"""
import sys
import os


# 快速创建大文件
def create_bigfile(file_name, file_size, file_unit='G'):
    """Create a big file.

    Args:
        file_name: big file name
        file_size: big file size
        file_unit: big file unit
    Returns:
        None
    """

    unit_dict = {
        'k': pow(2, 10),
        'm': pow(2, 20),
        'g': pow(2, 30)}

    if file_unit.lower() not in unit_dict:
        sys.exit('Found Errors: %s not found in unit_dict keys.' % (file_unit))

    file_unit = file_unit.lower()
    file_size *= unit_dict[file_unit]

    with open(file_name, 'w+b') as whandle:
        # 减去最后一个字符
        whandle.seek(file_size-1)
        # 写入字符串结束符
        whandle.write('\x00')


# 根据文件大小转换单位
def convert_unit(file_size):
    """Convert file size unit.

    Args:
        file_size: the byte size of file
    Returns:
        str object
    """
    convert_size = str(file_size)

    if file_size >= pow(2, 30):
        convert_size = '%sG' % int(file_size/pow(2, 30))
    elif file_size >= pow(2, 20):
        convert_size = '%sM' % int(file_size/pow(2, 20))
    elif file_size >= pow(2, 10):
        convert_size = '%sK' % int(file_size/pow(2, 10))
    else:
        pass

    return convert_size


def main():
    """Main function."""

    pt_format = '%-35s %s'
    # 创建大文件
    file_name = 'xmdevops'
    create_bigfile(file_name, 10, 'G')
    # 打印测试
    for cur_item in os.listdir(os.curdir):
        if cur_item.startswith('.'):
            continue
        file_size = os.path.getsize(cur_item)
        file_size = convert_unit(file_size)
        print pt_format % (file_size, cur_item)

if __name__ == '__main__':
    main()

range(start, stop[, step])

返回值: 列表对象 

常用于: 创建包含少量数列的列表,参数必须为普通的整数,step默认为1,start默认为0,产生的序列包含start不包含stop

# -*- coding: utf-8 -*-
"""
#
# Authors: limanman
# OsChina: http://my.oschina.net/pydevops/
# Purpose:
#
"""


def main():
    """Main function."""

    # 在内存中生成列表,大列表不推荐使用
    cur_num = 10
    generate_list = range(cur_num, 0, -1)

    print 'type -> %s' % (type(generate_list))
    for cur_item in generate_list:
        print cur_item

if __name__ == '__main__':
    main()

round(number[, ndigits])

返回值: 浮点数

常用于: 返回一个浮点型近似值,保留小数后ndigits位,如果省略则默认为0

# -*- coding: utf-8 -*-
"""
#
# Authors: limanman
# OsChina: http://my.oschina.net/pydevops/
# Purpose:
#
"""


def main():
    """Main function."""

    cur_float = 2.675
    # 十进制小数无法用浮点数精确表示,所以如下结果为2.67而不是你想的2.68
    print round(cur_float, 2)

if __name__ == '__main__':
    main()

sum(sequence[, start])

返回值: 对象

常用于: sequence可以是任何可迭代对象,start表示初始值,返回序列对象的和,如果指定了start,则最后的和还要加上start的值

oct(x)

返回值: 字符串对象

常用于: 将任意尺寸整数X转换为八进制字符串,结果是一个合法的Python表达式

hex(x)

返回值: 字符串对象

常用于: 将任意尺寸的整数转换为0x/0X开头的十六进制字符串

chr(x)

返回值: 字符对象

常用于: 返回一个单字符字符串,字符的ASCII码为整数x,x的取值范围在[0..255]闭区间

bin(number)

返回值: 字符串对象

常用于: 将一个整数转换为一个二进制字符串,结果是一个合法的Python表达式,对于中文字符串要获取二进制可以先用binascii来转换为16进制再用bin转换为二进制

# -*- coding: utf-8 -*-
"""
#
# Authors: limanman
# OsChina: http://my.oschina.net/pydevops/
# Purpose:
#
"""
import binascii


def main():
    """Main function."""

    cur_strs = '慧惠'
    # 生成位数表
    bin_bits = (i*-8 for i in xrange(-8, 0, 1))
    # 转换为16进制字符串
    hex_strs = binascii.hexlify(cur_strs)
    # 转换为二进制字符串
    bin_strs = bin(int(hex_strs, 16))[2:]
    bin_leng = len(bin_strs)

    # 填充位数
    for bin_num in bin_bits:
        if bin_num % bin_leng >= 0:
            bin_strs.zfill(bin_num)
            break
    # 分段输出
    for i in xrange(len(bin_strs)/8):
        print bin_strs[0+i*8: 8+i*8],


if __name__ == '__main__':
    main()

bool(x)

返回值: 布尔对象

常用于: 将一个值转换为布尔值,真返回True,假返回False,bool其实是一个类,它是int的子类,bool无法被继承

# -*- coding: utf-8 -*-
"""
#
# Authors: limanman
# OsChina: http://my.oschina.net/pydevops/
# Purpose:
#
"""


def main():
    """Main function."""

    if issubclass(bool, int):
        print 'Found Notice: bools is int subclass!'

if __name__ == '__main__':
    main()


你可能感兴趣的:(内建函数.数学运算类)