Python—内置函数

内置函数

内置函数补充


 all: 所有iterable类型,包含的元素要全为真才返回真

>>> all([0,-1,5])
False
>>> all([-1,5])
True

any:有iterable类型,非空且包含任一为真element就返回true

>>> any([])
False
>>> any([0])
False
>>> any([0,12])
True

ascii:

>>> a = ascii([1,2,"中文"])   
>>> print(type(a),[a])
<class 'str'> ["[1, 2, '\u4e2d\u6587']"]
>>> #把内存的数据转换为可打印的字符串格式

bin:

>>> bin(2)  #把十进制转换为二进制
'0b10'
>>> #convert an integer number to a binary string ,需要整数才能转
#二进制转十进制
>>> int('0b10',2)  #如果前面有标识进制数,后面不用加 base
2
>>> int('10',base=2)
2
>>> int('0x10',16)
16
>>> int('0o657',8)
431
>>> int('657',base=8)
431
>>> bin(431)
'0b110101111'
>>> oct(431)
'0o657'
>>> hex(431)
'0x1af'
>>> 
2,8,16,10进制互转

bool:判断真假

>>> bool([])     
False
>>> bool(0)     
False
>>> bool([0,1])
True

bytes:转换为二进制格式

>>> a = bytes("abcde",encoding='utf-8')
>>> print(a.capitalize(),a)
b'Abcde' b'abcde'
>>> a[0]
97
>>> a[0] = 100    #当想修改它时会报错
Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    a[0] = 100
TypeError: 'bytes' object does not support item assignment
>>> 

bytearray:

>>> b = bytearray("abcde",encoding='utf-8')
>>> b[0]
97
>>> b[0] = 102
>>> print(b)
bytearray(b'fbcde')
>>> #bytearray变成变成二进制列表的形式,并可以修改,很少用到

callable:

>>> print(callable([]))
False
>>> #判断是否可以调用,后面能加括号的就是能调用的,比如函数
>>> def sayhi():
    pass
>>> callable(sayhi())  #此时为函数运行结果,不能调用
False
>>> callable(sayhi) #注意此时函数为内存地址,可以调用
True

chr:

>>> chr(87) #把Unicode中的数字对应的元素返回出来
'W'

ord:

>> ord('a') #把元素返回为Unicode中对应的数字号码
97

compile:#compile(str,'err.log','exec or eval') 把字符串编译为可运行的代码

>>> code = 'for i in range(2):print(i)'
>>> compile(code,'','exec')
<code object <module> at 0x000001C8899C89C0, file "", line 1>
>>> exec(code)  #相当于import了这个模块,然后执行
>>>>
0
1
2

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} >>>

delattr :

很重要,先跳过

dir:

>>> a = {}
>>> dir(a)  #查可用方法
['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
>>> 

divmod:

divmod(5,2)  # 5除以2 并返回商和余数
(2, 1)

lambda: 匿名函数

>>> x = lambda n:3 if n<3 else n
>>> x(7)  #>>> x(2) 输出为 3
7

>>>aaa = lambda x,y:x+y
>>>print(aaa(1,2)) #定义了几个参数就传几个参数和函数一样
3

format:

实例
>>>"{} {}".format("hello", "world")    # 不设置指定位置,按默认顺序
'hello world'
 
>>> "{0} {1}".format("hello", "world")  # 设置指定位置
'hello world'
 
>>> "{1} {0} {1}".format("hello", "world")  # 设置指定位置
'world hello world'
也可以设置参数:

实例
#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
print("网站名:{name}, 地址 {url}".format(name="菜鸟教程", url="www.runoob.com"))
 
# 通过字典设置参数
site = {"name": "菜鸟教程", "url": "www.runoob.com"}
print("网站名:{name}, 地址 {url}".format(**site))
 
# 通过列表索引设置参数
my_list = ['菜鸟教程', 'www.runoob.com']
print("网站名:{0[0]}, 地址 {0[1]}".format(my_list))  # "0" 是必须的
format

filter:过滤

>>> res = filter(lambda n:n>5,range(10))     #filter(function,iterable),参数1为条件,参数2为可迭代类型
>>> for i in res:
    print(i)

6
7
8
9
>>> #在range(10)中过滤出大于5的元素

map:   map(function,iterable),按照function的功能,对iterable进行操作

>>> res2 = map(lambda n:n*n,range(3))
>>> for i in res2:
    print(i)

0
1
4
>>> #map(function,iterable),按照function的功能,对iterable进行操作
>>> #是个迭代器,要用for循环输出
>>> #和列表生成式一样,区别是map是迭代器

reduce : 在python3中不是内置函数,需要import  functools调用

>>> import functools
>>> res3 = functools.reduce(lambda x,y:x+y,range(10))
>>> print(res3)
45
>>> #x为返回值,y为第一个数,执行x+y后,x变为x+y,y变为下一个数,从而得到从1加到10的值
>>> #在python2.7中 reduce为内置函数,现在要用functools导入调用

float:  将数字或者字符串,返回为浮点数

>>> float(3)
3.0
>>> float('3.4')
3.4

 globals(): 只打印全局变量   locals():打印局部变量

>>> a = [1]
>>> globals()
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 'a': [1]}
>>> globals().get('a')
[1]
>>> #golbals 变量名是key,变量值是value,返回当前程序所有的变量

frozenset():

>>> set1 = frozenset([1,4,4,3])
>>> 不可变集合,用这个定义集合后,set1
SyntaxError: invalid character in identifier
>>> #不可变集合,用这个定义集合后,set1就不可变,pop,clear方法都没了

hash():

>>> hash('gkx')  #返回对象的哈希值
-3746276222014687951
>>> #可以应用于数字、字符串和对象,不能直接应用于 list、set、dictionary。

help(),hex(),int(),isinstance(),len(),list(),iter()

>>> help(a.append)   #返回帮助信息
Help on built-in function append:
append(...) method of builtins.list instance
    L.append(object) -> None -- append object to end

>>> hex(66)
'0x42'
>>> #转十六机制     bin()#转二进制   oct() #转八进制

>>> id(a)
1960805134216
>>> #返回内存地址

>>> int(3.4)  
3
>>> int('3')  #返回整数,注意'3.4'字符串如果时小数,返回会报错
3

>>> iter([]) #变为iterator
<list_iterator object at 0x000001C889A4C908>

>>> a = 'abc'
>>> len(a)  #查询变量长度
3
>>> a = list()
>>> #定义一个列表

 max()  min() : #1,比较的元素是可迭代对象,用for循环原理,如果第一个元素分出大小,后面就不会继续比较了。2.根据ASCII码值的大小比较

>>> max([2,3,45])  #求最大值
45
>>> min([2,3,45])  #求最小值
2

next():

>>> next(iter([1,2,3]))
1
>>> #返回迭代器的下一个元素

pow():

>>> pow(3,3)
27
>>> #返回3的3次方

repr():

>>> a = [1,2,3]
>>> repr(a)
'[1, 2, 3]'
>>> #类似ascii,转为str

round():

>>> round(1.33333,2)
1.33
>>> #保留小数位,根据参数2.  默认是保留整数位

slice(起始位置,终止位置,间距):  list的切片方法 【:】一模一样

>>> d = 'abcde'
>>> c = [1,2,3,4,5]
>>> d[slice(1,2)]
'b'
>>> d[slice(4)]
'abcd'
>>> #切片
>>> d = range(10)
>>> d[slice(2,5)]
range(2, 5)
>>> #slice(起始位置,结束位置,间距)
>>> d[2:5]
range(2, 5)
>>> 
View Code

sorted():

>>> a = {1:2,3:6,7:11,-1:6}
>>> sorted(a.items())  #默认用key排序
[(-1, 6), (1, 2), (3, 6), (7, 11)]
>>> sorted(a.items(),key=lambda x:x[1])  #用value排序,用到匿名函数
[(1, 2), (3, 6), (-1, 6), (7, 11)]
>>> 

sum():求和

>>> sum([1,2,3,4])
10

tuple(): 定义一个元组

>>> a = tuple()
>>> a
()

zip():

>>> cc = ['gkx','lion','cat']
>>> dd = [1,2,3]
>>> for i in zip(cc,dd):  #因为是一个迭代器,所以要用循环
    print(i)

('gkx', 1)
('lion', 2)
('cat', 3)
>>> 
>>> dd = [1,2,3,4,5]
>>> for i in zip(cc,dd):
    print(i)

('gkx', 1)
('lion', 2)
('cat', 3)
>>> #按最小的拼接
View Code
>>>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}
>>>

__import__():

import sys  
__import__('a')        # 导入 a.py 模块
原文地址:https://www.cnblogs.com/gkx0731/p/9463638.html