python 函数

Posted tigerzhouv587

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 函数相关的知识,希望对你有一定的参考价值。

内置函数

python 内置函数有很多,这里挑一部分介绍一下

abs() 获取绝对值,参数为数字

all() 参数为一个可迭代对象,判断这个可迭代对象的所有元素都是True。 除了0,None,空,False 其他都是True

any() 参数为一个可迭代对象,判断这个可迭代对象的所有元素都是False。

bin() 返回一个整数 int 或者长整数 long int 的二进制表示。

bool() 函数用于将给定参数转换为布尔类型,如果没有参数,返回 False。

python range() 函数可创建一个整数列表

bytearray() 方法返回一个新字节数组。这个数组里的元素是可变的,并且每个元素的值范围: 0 <= x < 256。

callable() 函数用于检查一个对象是否是可调用的。如果返回 True,object 仍然可能调用失败;但如果返回 False,调用对象 object 绝对不会成功。

cmp(x,y) 函数用于比较2个对象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。

chr() 用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个对应的字符(既对应的 ASCII 字符)。

unichr() 函数 和 chr()函数功能基本一样, 只不过是返回 unicode 的字符。python3已经取消

ord() 返回 ASCII 字符对应的数值。

vars() 函数返回对象object的属性和属性值的字典对象。

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

>>>a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b)     # 打包为元组的列表
[(1, 4), (2, 5), (3, 6)]

 

enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标。

a = [1,2,3]
s = enumerate(a)
for i in s:
    print(i)
(0, 1)
(1, 2)
(2, 3)

str() 函数将对象转化字符串。

repr() 函数将对象转化为供解释器读取的形式。

str 和 repr的区别:
a = hello
print(str(a))
print(repr(a))
hello  #打印的是‘hello‘和换行,方便人理解

hello\n #就是字符串本身,方便解释器理解

eval() 函数用来执行一个字符串表达式,并返回表达式的值。

file() 函数用于创建一个 file 对象,它有一个别名叫 open()。

isinstance() 函数来判断一个对象是否是一个已知的类型。

a = aaa
print(isinstance(a,str))

issubclass() 方法用于判断参数 class 是否是类型参数 classinfo 的子类。

class A:
    pass
print(issubclass(A,object))
True

pow() 方法返回 xy(x的y次方) 的值。

 

delattr 函数用于删除属性。

dict() 函数用于创建一个字典。

>>>dict()                        # 创建空字典

>>> dict(a=a, b=b, t=t)     # 传入关键字
a: a, b: b, t: t
>>> dict(zip([one, two, three], [1, 2, 3]))   # 映射函数方式来构造字典
three: 3, two: 2, one: 1 
>>> dict([(one, 1), (two, 2), (three, 3)])    # 可迭代对象方式来构造字典
three: 3, two: 2, one: 1
>>>

dir() 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息。

divmod() 函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)。

execfile() 函数可以用来执行一个文件。

python3 删去了 execfile(),代替方法如下:
with open(test1.py,r) as f:
    exec(f.read())

filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。

a = [1,2,3,4,5]
b = filter(lambda x:x<=2,a)
print(list(b))
[1, 2]

float() 函数用于将整数和字符串转换成浮点数。

format() 格式化字符串

a = 1
b = 2
print("a = ,b=".format(a,b))

frozenset() 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。

hasattr() 函数用于判断对象是否包含对应的属性。

hash() 用于获取取一个对象(字符串或者数值等)的哈希值。

help() 函数用于查看函数或模块用途的详细说明

hex() 函数用于将10进制整数转换成16进制,以字符串形式表示。

oct() 函数将一个整数转换成8进制字符串。

id() 函数用于获取对象的内存地址。

input() 函数接受一个标准输入数据,返回为 string 类型。

int() 函数用于将一个字符串或数字转换为整型

a = 11
print(int(a,base=2))
#默认base=10 表示进行的是十进制转换
#base=2 表示要把2进制的字符串转换成int类型

iter() 函数用来生成迭代器。把一个可迭代对象变成迭代器

len() 方法返回对象(字符、列表、元组等)长度或项目个数。

list() 方法用于将对象转换为列表。

locals() 函数会以字典类型返回当前位置的全部局部变量。

long() 函数将数字或字符串转换为一个长整型。

__import__() 函数用于动态加载类和函数 

exec 执行储存在字符串或文件中的Python语句

map() 会根据提供的函数对指定序列做映射。

a = [1,2,3]
b = map(lambda x:x*x,a)
print(list(b))
[1, 4, 9]

max() 方法返回给定参数的最大值,参数可以为序列(序列为空会报异常)。

min()方法返回给定参数的最小值,参数可以为序列(序列为空会报异常)。

memoryview()提供了统一且安全的直接读或者写内存的途径。python里一切都是对象,而且简单的字符串操作都会引起内存拷贝和新对象的产生。memoryview正为减少内存拷贝,优化效率而来。str和bytearray实现了memoryview协议,前者实现了只读,后者实现了读写。

b = bytearray(babc)
m = memoryview(b)
b[0] = z
print(m[0])  => z
从stackoverflow看来一个典型的效率用例:

import time
for n in (100000, 200000, 300000, 400000):
    data = x*n
    start = time.time()
    b = data
    while b:
        b = b[1:]
    print bytes, n, time.time()-start

for n in (100000, 200000, 300000, 400000):
    data = x*n
    start = time.time()
    b = memoryview(data)
    while b:
        b = b[1:]
    print memoryview, n, time.time()-start
运行结果如下: 

bytes 100000 0.240149021149
bytes 200000 1.04921603203
bytes 300000 2.66688489914
bytes 400000 4.83206987381
memoryview 100000 0.011647939682
memoryview 200000 0.0258820056915
memoryview 300000 0.0385529994965
memoryview 400000 0.0550448894501
memoryview对象如果不释放,那么即使绑定的对象释放了,内存也不会释放,必须del

reduce() 函数会对参数序列中元素进行累积。

from functools import reduce
def add(x, y) :            # 两数相加
   return x + y

reduce(add, [1,2,3,4,5],100)   # 计算列表和:100+1+2+3+4+5

reduce(lambda x, y: x+y, [1,2,3,4,5])  # 使用 lambda 匿名函数

reverse() 函数用于反向列表中元素。

round() 方法返回浮点数x的四舍五入值。

set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。

setattr() 函数对应函数 getattr(),用于设置属性值,该属性不一定是存在的。

slice() 函数实现切片对象,主要用在切片操作函数里的参数传递。

a = [0,1,2,3,4,5,6,7,8]
print(list(a[slice(3)])) #[:3]
print(list(a[slice(1,2)])) #[1:2]
print(list(a[slice(0,8,2)]))#[0:8:2]

sorted() 函数对所有可迭代的对象进行排序操作。

>>> students = [(john, A, 15), (jane, B, 12), (dave, B, 10)]
>>> sorted(students, key=lambda s: s[2])            # 按年龄排序
[(dave, B, 10), (jane, B, 12), (john, A, 15)]

sum() 方法对系列进行求和计算。

super() 函数是用于调用父类(超类)的一个方法。在继承的时候可传参数指定父类名

tuple() 函数将列表转换为元组。

type() 返回一个对象的类型。

以上是关于python 函数的主要内容,如果未能解决你的问题,请参考以下文章

Python函数

Python3 Python 函数式编程

Python2 与 Python3 的 map 函数

Python3基础-函数

Python函数部分

Python 递归函数