Python3内置函数介绍
[attach]1347[/attach]
详情参考:https://docs.python.org/3/library/functions.html
1、abs(x)(返回一个数的绝对值)
>>> abs(-12) 12 >>> abs(-12.89) 12.89 >>> abs(-0.1) 0.12、all(iterable) all会循环括号内的每一个元素,如果括号内的所有元素都是真的,则返回True,如果有一个为假的那么就返回False
>>> all([0, 3]) False >>> all([1, 3]) True >>> all([1, ""]) False一假则假,假的参数有:False、0、None、""、[]、()、{}等。 查看一个元素是否为假可以使用bool进行查看:
>>> bool("") False >>> bool(()) False >>> bool(0) False >>> bool(1) True3、any(iterable) 循环元素,如果有一个元素为真,那么就返回真,一真则真。
>>> any([0, 1, 2, 3]) True >>> any([{}, (), 0]) False4、ascii(object) 在对象的类中寻找__repr__方法,获取返回值
>>> class Foo: ... def __repr_(self): ... return "Result" ... >>> obj = Foo() >>> r = ascii(obj) >>> print(r) <__main__.Foo object at 0x1045075c0>5、bin(x) 将整数x转换为二进制字符串,如果x不为Python中int类型,x必须包含方法index()并且返回值为integer
# 返回一个整数的二进制 >>> bin(999) '0b1111100111'
# 非整型的情况,必须包含__index__()方法切返回值为integer的类型 >>> class myType: ... def __index__(self): ... return 35 ... >>> myvar = myType() >>> bin(myvar) '0b100011'6、bool([x]) 查看一个元素的布尔值,非真即假
>>> bool([])
False
>>> bool(0)
False
>>> bool(1)
True
7、bytearray([source [, encoding [, errors]]])
bytearray([source [, encoding [, errors]]])返回一个byte数组。Bytearray类型是一个可变的序列,并且序列中的元素的取值范围为 [0 ,255]。
source参数:
- 如果source为整数,则返回一个长度为source的初始化数组;
- 如果source为字符串,则按照指定的encoding将字符串转换为字节序列;
- 如果source为可迭代类型,则元素必须为[0 ,255]中的整数;
- 如果source为与buffer接口一致的对象,则此对象也可以被用于初始化bytearray。
>>> bytearray(3) bytearray(b'\x00\x00\x00')8、bytes([source[, encoding[, errors]]])
>>> bytes("asdasd",encoding="utf-8") b'asdasd'返回一个bytes类型。 9、callable(object) 返回一个对象是否可以被执行
>>> def func(): ... return 123 ... >>> callable(func) True >>> func = 123 >>> callable(func) False10、chr(i) 返回一个数字在ASCII编码中对应的字符,取值范围256个
>>> chr(66) 'B' >>> chr(5) '\x05' >>> chr(55) '7' >>> chr(255) '\xff' >>> chr(25) '\x19' >>> chr(65) 'A'11、compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1) 把字符串编译成python可执行的代码
>>> str = "for i in range(0,6): print(i)" >>> c = compile(str, '', 'exec') >>> exec(c) 0 1 2 3 4 512、complex([real[, imag]]) 创建一个值为real + imag * j的复数或者转化一个字符串或数为复数。如果第一个参数为字符串,则不需要指定第二个参数
>>> complex(1, 2) (1+2j) # 数字 >>> complex(1) (1+0j) # 当做字符串处理 >>> complex("1") (1+0j) # 注意:这个地方在“+”号两边不能有空格,也就是不能写成"1 + 2j",应该是"1+2j",否则会报错 >>> complex("1+2j") (1+2j)13、dict(**kwarg) 创建一个数据类型为字典
>>> dic = dict({"k1":"123","k2":"456"}) >>> dic {'k1': '123', 'k2': '456'}14、dir([object]) 返回一个类中的所有方法
>>> a = [1, 2, 3, 4] >>> dir(a) ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__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']15、divmod(a, b) divmod(a,b)方法返回的是a//b(除法取整)以及a对b的余数,返回结果类型为tuple
>>> divmod(10, 3) (3, 1)16、enumerate(iterable, start=0) 遍历可迭代的数据类型,为元素生成下标
>>> a = [0, 1, 2, 3]
>>> for n, k in enumerate(a):
... print(n, k)
...
0 0
1 1
2 2
3 3
17、eval(expression, globals=None, locals=None)
把一个字符串当作一个表达式去执行
>>> string = "1 + 3" >>> string '1 + 3' >>> eval(string) 418、exec(object[, globals[, locals]]) 把字符串当作python代码执行
>>> exec("for n in range(5): print(n)") 0 1 2 3 419、filter(function, iterable) 筛选过滤,循环可迭代的对象,把迭代的对象当作函数的参数,如果符合条件就返回True,否则就返回False
>>> def func(x):
... if x == 11 or x == 22:
... return True
...
>>> ret = filter(func,[11,22,33,44])
>>> for n in ret:
... print(n)
...
11
22
20、float([x])
将整数和字符串转换成浮点数
>>> float("124") 124.0 >>> float("123.45") 123.45 >>> float("-123.34") -123.3421、format(value[, format_spec]) 字符串格式化
>>> a = "My name is {0}, age is {1}".format('lucky', 18) >>> print(a) My name is lucky, age is 1822、frozenset([iterable]) frozenset是冻结的集合,它是不可变的,存在哈希值,好处是它可以作为字典的key,也可以作为其它集合的元素。缺点是一旦创建便不能更改,没有add,remove方法。 23、globals() 获取当前scripts文件内的所有全局变量
>>> a = 3 >>> bsd = "54asd" >>> globals() {'__doc__': None, 'bsd': '54asd', '__package__': None, 'a': 3, '__spec__': None, '__builtins__':24、hash(object) 返回一个对象的hash值, '__name__': '__main__', '__loader__': }
>>> a = "asdadasdwqeq234sdfdf" >>> hash(a) 539043805782301549725、help([object]) 查看一个类的所有详细方法
>>> help(list) Help on class list in module __builtin__: class list(object) | list() -> new empty list | list(iterable) -> new list initialized from iterable's items | | Methods defined here: | | __add__(...) | x.__add__(y) <==> x+y | | __contains__(...) | x.__contains__(y) <==> y in x | | __delitem__(...) | x.__delitem__(y) <==> del x[y] | | __delslice__(...) | x.__delslice__(i, j) <==> del x[i:j] | | Use of negative indices is not supported. ..........26、hex(x) 获取一个数的十六进制
>>> hex(13) '0xd'27、id(object) 返回一个对象的内存地址
>>> a = 123 >>> id(a) 183540081628、input([prompt]) 交互式输入 29、int(x, base=10) 获取一个数的十进制
>>> int("31") 3130、isinstance(object, classinfo) 判断对象是否是这个类创建的
>>> li = [11,22,33]
>>> isinstance(li,list)
True
31、issubclass(class, classinfo)
查看一个对象是否为子类
32、iter(object[, sentinel])
创建一个可迭代的对象
>>> obj = iter([11,22,33,44]) >>> obj33、len(s) 查看一个对象的长度>>> for n in obj: ... print(n) ... 11 22 33 44
>>> name = 'lucky' >>> len(name) 534、list([iterable]) 创建一个数据类型为列表
>>> li = list([11,22,33,44]) >>> li [11, 22, 33, 44]35、locals() 返回当前scripts的局部变量,返回结果为字典格式
>>> def func(): ... name="lucky" ... print(locals()) ... >>> func() {'name': 'lucky'}36、map(function, iterable, …) 把可迭代的对象作为函数的值
>>> ret = map(lambda x: x + 100, [1, 2, 3, 4, 5])
>>> for n in ret:
... print(n)
...
101
102
103
104
105
37、max(iterable, *[, key, default]) max(arg1, arg2, *args[, key])
获取一个对象中的最大值
>>> li = [1, 3, 5, 9 ,3]
>>> max(li)
9
38、min(iterable, *[, key, default]) min(arg1, arg2, *args[, key])
获取一个对象中的最小值
>>> li = list([11,22,33,44]) >>> li = [11,22,33,44] >>> min(li) 1139、next(iterator[, default]) 每次只拿取可迭代对象的一个元素
>>> obj = iter([11,22,33,44]) >>> next(obj) 11 >>> next(obj) 22 >>> next(obj) 33 >>> next(obj) 44 >>> next(obj) # 如果没有可迭代的元素了就会报错 Traceback (most recent call last): File "40、oct(x) 获取一个字符串的八进制", line 1, in StopIteration
>>> oct(13) '0o15'41、open(file, mode=’r’, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None) 文件操作的函数,用来做文件操作的 42、ord(c) 把一个字母转换为ASCII对对应表中的数字
>>> ord("a") 97 >>> ord("t") 11643、pow(x, y[, z]) 返回一个数的N次方
>>> pow(2, 10) 1024 >>> pow(2, 20) 104857644、print(*objects, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False) 打印输出 45、range(start, stop[, step]) 生成一个可迭代序列
>>> range(10) range(0, 10) >>> for n in range(5): ... print(n) ... 0 1 2 3 446、reversed(seq) 对一个对象的元素进行反转
>>> li = [1, 2, 3, 4] >>> reversed(li)47、round(number[, ndigits]) 四舍五入>>> for n in reversed(li): ... print(n) ... 4 3 2 1
>>> round(3.3) 3 >>> round(3.7) 448、set([iterable]) 创建一个数据类型为集合
>>> varss = set([11,222,333]) >>> type(varss)49、slice(start, stop[, step]) 元素的切片操作都是调用的这个方法 50、sorted(iterable[, key][, reverse]) 为一个对象的元素进行排序
>>> li = [ 2, 3, 4, 9, 1, 100] >>> sorted(li) [1, 2, 3, 4, 9, 100]51、sum(iterable[, start]) 求和
>>> sum([11,22,33])
66
52、type(object)
查看一个对象的数据类型
>>> a = 1 >>> type(a)53、vars([object]) 查看一个对象里面有多少个变量 54、zip(*iterables) 联合迭代>>> a = "str" >>> type(a)
>>> li1 = ["k1","k2","k3"] >>> li2 = ["a","b","c"] >>> zip(li1,li2)55、import(name, globals=None, locals=None, fromlist=(), level=0) 导入模块,把导入的模块作为一个别名。 生成一个六位的随机验证码,且包含数字,数字的位置随机:>>> dic = zip(li1,li2) >>> for n in dic: ... print(n) ... ('k1', 'a') ('k2', 'b') ('k3', 'c')
# 导入random模块 import random temp = "" for i in range(6): num = random.randrange(0,4) if num == 3 or num == 1: rad2 = random.randrange(0,10) temp = temp + str(rad2) else: rad1 = random.randrange(65,91) c1 = chr(rad1) temp = temp + c1 print(temp)