python内置函数

dir()

返回拥有的方法

print(dir([]))
# ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

callable()

返回是否为函数

def aaa():
    pass
print(callable([]))
# False
print(callable(aaa))
# True

help()

返回函数的指引(详细的帮助)

def aaa():
    '''
    我是aaa
    :return:
    '''
    pass
help(aaa)
# Help on function aaa in module __main__:
# 
# aaa()
#     我是aaa
#     :return:

–import–(module_name)

import pkg
# import pkg.mod
# from pkg import mod, mod2
# from pkg.mod import func, func2
# from pkg.mod import submod
# 在前两种情况下,import语句将最左侧模块对象分配给了: pkg。之后的import pkg.mod可以这样使用pkg.mod.func(),因为import语句引入了本地的模块pkg,这是一个具有mod属性的模块对象。因此__import__函数必须返回最左侧的模块对象,以便将其分配给pkg。这两种情况相当于
# 
# pkg = __import__('pkg')
# pkg = __import__('pkg.mod')
# 后面三种情况,import就必须做更多的工作了,它必须从模块对象获取并分配多个名称。但是__import__函数只能返回一个对象,并且它不能从模块对象中检索出多个名字,所以对于第三种情况就是:
# 
# pkg = __import__('pkg')
# mod = pkg.mod
# mod2 = pkg.mod2
# 但是如果mod和mod2在该模块pkg中尚未导入,那将无法生效。__import__函数需要知道mod和mod2是它可以访问的名称,以便它可以查看他们是否是模块并且尝试导入他们。所以像一下这个方式更为接近:
# 
# pkg = __import__('pkg', fromlist=['mod', 'mod2'])
# mod = pkg.mod
# mod2 = pkg.mod2
# 这会导致__import__先尝试pkg.mod和pkg.mod2,如果不生效的话,它并不会抛出异常。但是第五种例子按照以上方式依然不行:
# 
# 
# tmp = __import__('pkg.mod', fromlist=['submod'])
# submod = tmp.submod

–len–

返回容器长度

list=[12,31,21]
print(list.__len__())
# 3

id()

返回内存地址

hash()

返回hash值,(不可变数据类型)

exec()和eval()

print(exec('1+2+3')) # None
print(eval('1+2+3')) #6
# exec()和eval()都能执行字符串内的Python语句,区别exec没有返回值.

compile()

# str = "for i in range(0,10): print(i)"
# c = compile(str,'','exec')   # 编译为字节代码对象
# c
# <code object <module> at 0x10141e0b0, file "", line 1>
# exec(c)
# 0
# 1
# 2
# 3
# 4
# 5
# 6
# 7
# 8
# 9
# str = "3 * 4 + 5"
# a = compile(str,'','eval')
# eval(a)

# input这样式交互式代码用 
# a=compile('input('please')','','single')
# exec(a)

sum

求迭代器等的合,默认为0+迭代器合,0可以修改 sum([],10)

min 或 max

求迭代器最小值或最大值,当有负数时候可以设置求正数最小值. min((,key=abs))

bytes

转换成bytes类型
注意:utf-8转gbk,过程:utf-8(decode)>unicode(encoding)>gbk

print(bytes('作业',encoding='gbk'))
print(bytes('作业',encoding='utf-8'))
# b'\xd7\xf7\xd2\xb5'
# b'\xe4\xbd\x9c\xe4\xb8\x9a'

bytearray

print(bytearray('作业',encoding='gbk'))
# bytearray(b'\xd7\xf7\xd2\xb5')

print(bytearray('打砂机',encoding='gbk')[0])
print(bytearray('打砂机',encoding='gbk')[1])
print(bytearray('打砂机',encoding='gbk')[2])
# 180
# 242
# 201

memoryview

返回byte类型的可切片的东西,不占内存,不知道干嘛用,先记着

print(memoryview(bytes('我的', encoding='utf-8')))
# <memory at 0x01E27F38>

ord \ chr

字符与asc码相互转换

print(ord('a'))
print(chr(97))
# 97
# a

ascii

内容在ascii码中返回原内容,如果不在返回 ‘\uxxxx’’

print(ascii('a'))
print(ascii('你'))
# 'a'
# '\u4f60'

repr

返回数据该有的样子,如果是字符串就带冒号

name='小花'
print('%r要去吃饭'%name)
print(repr(1))
# '小花'要去吃饭
# 1

all 和 any

all(可迭代的):迭代器中有1假,返回假.全是真返回真
any(可迭代的):迭代器中有1真,返回真,全是假返回假

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)]
>>> zip(a,c)              # 元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]
>>> zip(*zipped)          # 与 zip 相反,*zipped 可理解为解压,返回二维矩阵式
[(1, 2, 3), (4, 5, 6)]

filter

过滤

def is_odd(n):
    return n % 2 == 1
newlist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(newlist)
for i in newlist:
    print(i) #1,3,5,7,9

map

>>>def square(x) :            # 计算平方数
...     return x ** 2
... 
>>> map(square, [1,2,3,4,5])   # 计算列表各个元素的平方
[1, 4, 9, 16, 25]
>>> map(lambda x: x ** 2, [1, 2, 3, 4, 5])  # 使用 lambda 匿名函数
[1, 4, 9, 16, 25]
 
# 提供了两个列表,对相同位置的列表数据进行相加
>>> map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
[3, 7, 11, 15, 19]

reversed 和 sorted

reversed :反转列表,返回迭代器,不占内存
sorted:排序,返回新的列表,占内存,慎用!
list.sort():排序原列表
注意:sort(列表,key=匿名函数或者内置函数(比如len,abs,只写函数名))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值