首页 > 代码库 > Python之路----------内置函数

Python之路----------内置函数

1、abs(x)绝对值

1 #coding=utf-8
2 a = 1
3 b = -2
4 print(abs(a))
5 print(abs(b))

 

2、all(iterable)可迭代对象里面所有内容为真返回真,空列表返回真

1 #非0就是真
2 l = [1, 2, 3, 4, 5, 6, -1, -2, a]
3 print(all(l))#True
4 l = [1, 2, 3, 4, 5, 6, 0, -2, a]
5 print(all(l))#False
6 l = []
7 print(all(l))#True

 

3、any(iterable)可迭代对象里面任意数据为真返回真,空列表返回假

1 #非0就是真
2 l = [1, 2, 3, 4, 5, 6, -1, -2, a]
3 print(any(l))#True
4 l = [1, 2, 3, 4, 5, 6, 0, -2, a]
5 print(any(l))#True
6 l = []
7 print(any(l))#False

 

4、ascii(object)把内存的对象变成可打印的字符对象(貌似没有什么用)

1 l = [1, 2, 3, 4, 5, 6, 0, -2, a]
2 a = ascii(l)
3 print(type(a), [a])
4 
5 #运行结果:
6 ‘‘‘
7 <class ‘str‘> ["[1, 2, 3, 4, 5, 6, 0, -2, ‘a‘]"]
8 ‘‘‘

 

5、bin( X)十进制数字转二进制

 1 print(bin(1))
 2 # 0b1
 3 print(bin(2))
 4 # 0b10
 5 print(bin(3))
 6 # 0b11
 7 print(bin(4))
 8 # 0b100
 9 print(bin(5))
10 # 0b101
11 print(bin(6))
12 # 0b110
13 print(bin(7))
14 # 0b111
15 print(bin(8))
16 # 0b1000
17 print(bin(9))
18 # 0b1001
19 print(bin(10))
20 # 0b1010
21 print(bin(11))
22 # 0b1011
23 print(bin(12))
24 # 0b1100

 

6、bool()判断对象真假

 1 print(bool(0))   # False
 2 
 3 print(bool(1))   # True
 4 
 5 print(bool([]))  # False
 6 
 7 print(bool([1]))  # True
 8 
 9 print(bool({}))  # False
10 
11 print(bool({1: 2}))  # True

 

7、bytearray()可修改二进制的字符串,很少用到

1 a = bytes(baidu, encoding=utf-8)
2 print(a.capitalize(), a)#字符串a没有被修改
3 b = bytearray(baidu, encoding=utf-8)
4 print(b[0])
5 b[0] = 100
6 print(b)#字符串b被修改

 

8、callable()判断可不可以调用

1 print(callable([]))
2 
3 def call():
4     pass
5 
6 print(callable(call))
7 
8 #列表不可以调用Flase,函数可以调用True

 

9、 chr(i)输入数字返回对应的ascii码的内容

1 print(chr(21016))
2 
3 print(chr(24191))
4 
5 print(chr(20449))

 

10、ord(c)输入字符返回对应的ascii码的数字

1 print(ord())
2 
3 print(ord(广))
4 
5 print(ord())

 

11、dir()查看内置方法

 

1 a = []
2 print(dir(a))

 

 

12、filter()过滤数据用的

 

1 res = filter(lambda n: n < 5, range(10))
2 for i in res:
3     print(i)

 

 

13、map()处理数据用的

1 res = map(lambda n: n*2, range(10))
2 for i in res:
3     print(i)

 

 

14、reduce()

 

1 import functools
2 res = functools.reduce(lambda x, y: x+y, [x * (1 if x % 2 == 0 else -1) for x in range(2, 101, 1)])
3 print(res) 

 

 

15、reduce()

reduce把一个函数作用在一个序列[x1, x2, x3...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,其效果就是:

 reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)

比方说对一个序列求和,就可以用reduce实现:

1 import functools
2 def add(x, y):
3     return x + y
4 functools.reduce(add, [1, 3, 5, 7, 9]) 

当然求和运算可以直接用Python内建函数sum(),没必要动用reduce。

但是如果要把序列[1, 3, 5, 7, 9]变换成整数13579,reduce就可以派上用场:

1 import functools
2 def fn(x, y):
3     return x * 10 + y
4 functools.reduce(fn, [1, 3, 5, 7, 9])

可以写一个稍微复杂一点的reduce,计算数字列表的和

1 import functools
2 res = functools.reduce(lambda x, y: x+y, [x * (1 if x % 2 == 0 else -1) for x in range(2, 101, 1)])
3 print(res)

16、oct()转8进制

 

1 print(oct(1))
2 print(oct(3))
3 print(oct(5))
4 print(oct(7))
5 print(oct(8))
6 print(oct(9))
7 print(oct(10))

 

17、pow(x,y)返回x的y次幂

 

1 print(pow(2, 8))
2 #256 计算2的8次方
3 print(pow(2, 8, 3))
4 #256 计算 2**8 % 3
5 print(2**8 % 3)

 

18、round(number,ndigits)给定一个数字number,ndigits是他要保留的小数位数,四舍五入,看例子

 

1 print(round(3.1592653))
2 # 3
3 print(round(3.1592653, 2))
4 # 3.16
5 print(round(3.1592653, 3))
6 # 3.159

 

19、sorted(*args, **kwargs)排序

1 a = {1: 0, -99: 9, 100: -10, 38: 7}
2 print(a)#直接打印列表
3 # {1: 0, 100: -10, -99: 9, 38: 7}
4 print(sorted(a)) #字典的key排序
5 # [-99, 1, 38, 100]
6 print(sorted(a.items())) #字典的key value排序
7 # [(-99, 9), (1, 0), (38, 7), (100, -10)]
8 print(sorted(a.items(), key=lambda x: x[1])) #按照value的值排序
9 # [(100, -10), (1, 0), (38, 7), (-99, 9)]

 

 20zip(*args, **kwargs)接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表。

1 a = [1, 2, 3, 4, 5, 6, 7]
2 b = [a, b, c, d, e]
3 for i in zip(a, b):
4     print(i)

 

Python之路----------内置函数