內建函數.數學運算類

abs(x) python

返回值: 數值對象git

經常使用於: 對整數/長整數/浮點數/負數求絕對值.複數的絕對值返回它的模測試

# -*- 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])spa

返回值: complex對象.net

經常使用於: 建立一個實數部分爲real,虛數部分爲imag的複數,或是將一個字符串/數字轉換爲複數,當字符串轉換爲複數時,字符串+/-兩邊不能有空白code

# -*- 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)orm

返回值: 元祖對象對象對象

經常使用於: 傳入兩個非複數,做爲參數,返回商和餘數的二元祖繼承

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()
相關文章
相關標籤/搜索