day16 Python 内置函数 大体演示想看就看,会用就行
1、abs() 获取绝对值
a = -10 print(a.__abs__()) 结果: 10
2、all() 接收一个迭代器,如果跌电气的所有元素都为真,那么返回True,否则返回False
tmp_1 = ['python',123] print(all(tmp_1)) tmp_2 = [] print(all(tmp_2)) tmp_3 = [0] print(all(tmp_3)) tmp_4 = '' print(all(tmp_4)) 结果: True True False True
3. any() 接受一个迭代器,如果迭代器里有一个元素为真,那么返回True,否则返回False
4. ascii() 调用对象的__repr__()方法,获得该方法的返回值.
5. bin(), 6. oct(), 7. hex() 三个函数功能为:将十进制数分别转换为2/8/16进制。
8. bool() 测试一个对象是True还是False,空,None,0布尔值都是False,其余是True
9、bytes() 将字符串
s = 'python' x = bytes(s, encoding='utf-8') print(x) a = '王' s = bytes(a, encoding='utf-8') print(s) 如果: b'python' b'\xe7\x8e\x8b'
10、str() 将字符类型、数值类型转换成字符串类型
print(str(b'\xe7\x8e\x8b',encoding='utf-8')) print(str(1)) print(type(str(1))) 如果: 王 1 <class 'str'>
11. challable() 判断对象是否可以被调用,能被调用的对象就是一个callables对象,比如函数和带有__call__()的实例
12、chr() 打印ASCII表
print(chr(65)) 结果: A
12、dir() 打印某一个对象有哪些方法
print(dir(all)) 结果: ['__call__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__name__', '__ne__', '__new__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__text_signature__']
13、divmod() 分别取商和余数,比如网页搜索分页,一页中有多少条记录,余下的单放一页
print(divmod(20,8)) 结果: (2, 4)
14、enumerate() 返回一个可以枚举的对象,该对象的next()方法将返回一个元组
test = ['a','b','c'] for k,v in enumerate(test): print(k+1,v) 结果: 1 a 2 b 3 c
15、eval() 将字符串中得数据结构提取出来
例子1 dic = {'name':'pluto'} print(dic.get('name')) print(type(dic)) dic_str = str(dic) print(type(dic_str)) dic_dic = eval(dic_str) print(type(dic_dic)) print(dic_dic.get('name')) 结果: pluto <class 'dict'> <class 'str'> <class 'dict'> pluto 例子2 s = "1+2*3" print(type(s)) print(eval(s)) 结果: 7
16、 hash() 哈希值,可哈希的数据类型即不可变数据类型,不可哈希的数据类型即可变数据类型
1 hash(object) 2 如果对象object为哈希表类型,返回对象object的哈希值。哈希值为整数,在字典查找中,哈希值用于快递比价字典的键。 3 两个数值如果相等,则哈希值也相等。
17、help() 帮助文档
print(help(all)) 查看帮助 Help on built-in function all in module builtins: all(iterable, /) Return True if bool(x) is True for all values x in the iterable. If the iterable is empty, return True. None
18、bin(),oct(),hex() 三个函数功能为:将十进制数分别转换为2/8/16进制。
print(bin(10)) print(oct(10)) print(hex(10)) 结果: 0b1010 0o12 0xa
19、id() 返回对象的内存地址
20、isinstance() 检查对象是否是类的对象,返回True或False
print(isinstance(1,str)) print(isinstance(1,int)) print(isinstance({1,2,'s'},set)) 结果: False True True
21、 len() 返回对象长度,参数可以是序列类型(字符串,元组或列表)或映射类型(如字典)
22、 globals() 返回一个描述当前全局变量的字典
name = '对象' print(globals()) 结果: {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x7f06f2534c88>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': '/opt/zifuchuangeshihua.py', '__cached__': None, 'name': '对象'}
23、 locals() 打印当前可用的局部变量的字典
24、 max() 返回给定元素里最大值
25、 min() 返回给定元素里最小值
max,min
1、max函数处理的是可迭代对象,相当于一个for循环取出每个元素进行比较,注意,不同类型之间的不能比较
2、每个元素间进行比较,是从每个元素的第一个位置依次比较,如果这一个位置分出来大小,后面的就不需要比较了,直接取出这两个元素的大小
age_dic = {'a1':10,'g3':20,'e2':30}
#字典默认比较的是key for item in zip(age_dic.values(),age_dic.keys()): print(item) print(list(max(zip(age_dic.values(),age_dic.keys())))) # print(list(min(zip(age_dic.values(),age_dic.keys())))) l_t = [ (5,'e'), (1,'a'), (6,''), (3,'b'), (4,'d'), ] print(list(max(l_t))) 结果: (10, 'a1') (20, 'g3') (30, 'e2') [30, 'e2'] [6, '']
l = [1,2,3,100,-1,2] print(max(l)) print(min(l)) 结果: 100 -1
终极晚玩法
people = [ {'name':'charon','age':10}, {'name':'pluto','age':1100}, {'name':'peter','age':12}, {'name':'alex','age':13} ] print(max(people,key=lambda dic:dic['age'])) #ret=[] #for item in people: # ret.append(item['age']) #print(ret) #print(max(ret)) 结果: {'name': 'pluto', 'age': 1100} [10, 1100, 12, 13] 1100
min类似
26、delattr() 删除对象的属性
27、dict() 创建数据字典
28、float() 讲一个字符串或整数转换为浮点数
29、format() 格式化输出字符串,format(value, format_spec)实质上是调用了value的
30、frozenset() 创建一个不可修改的集合
31、 getattr() 获取对象的属性
32、getattr() 获取对象的属性
33、int() 将一个字符串或数值转换为一个普通整数
34、issubclass() 检查一个类是否是另一个类的子类。返回True或False
35、open() 打开文件
36、range() 根据需要生成一个指定范围的数字,可以提供你需要的控制来迭代指定的次数
37、set() 集合
38、str() 字符串构造函数
39、sum() 求和
40、tuple() 元组构造函数
41、type() 显示对象所属的类型
42、zip() 将对象逐一配对
list_1 = [1,2,3] list_2 = ['a','b','c'] s = zip(list_1,list_2) print(list(s)) 运行结果: [(1, 'a'), (2, 'b'), (3, 'c')]
a = [(1,),(2,),(3,)] r = zip(*a) print(list(r)) 运行结果: [(1, 2, 3)] print(list(r)[0]) 运行结果: (1, 2, 3)
print(list(zip(('a','b','c'),(1,2,3)))) print(list(zip(('a','b','c'),(1,2,3,4)))) print(list(zip(('a','b','c','d'),(1,2,3)))) p = {'name':'charon','age':18,'gender':'F'} print(list(zip(p.keys(),p.values()))) print(list(zip('hello','12345'))) 结果: [('a', 1), ('b', 2), ('c', 3)] [('a', 1), ('b', 2), ('c', 3)] [('a', 1), ('b', 2), ('c', 3)] [('name', 'charon'), ('age', 18), ('gender', 'F')] [('h', '1'), ('e', '2'), ('l', '3'), ('l', '4'), ('o', '5')]
43、reversed 翻转
l = [1,2,3] print(list(reversed(l))) print(l) 结果: [3, 2, 1] [1, 2, 3]
44、round 四舍五入
num = 4.6 print(round(num)) 结果: 5
45、slice 切片
srt_slice = 'charonpluto' s1 = slice(3,5) s2 = slice(1,9,2) print(srt_slice[s1]) print(srt_slice[s2]) #硬切,可读性不是太强 print(srt_slice[3:5]) 结果: ro hrnl ro
46、sorted 排序,不同类型不能排序,本质就是比较
l = [1,3,5,2,4] print(sorted(l)) people = [ {'name':'charon','age':10}, {'name':'pluto','age':1100}, {'name':'peter','age':12}, {'name':'alex','age':13} ] print(sorted(people,key=lambda dic:dic['age'])) 结果: [1, 2, 3, 4, 5] [{'name': 'charon', 'age': 10}, {'name': 'peter', 'age': 12}, {'name': 'alex', 'age': 13}, {'name': 'pluto', 'age': 1100}]
47、open
文件处理读操作
# f=open('陈粒',encoding='utf-8') # data=f.read() # print(data) # f.close() # f=open('xxx') # data=f.read() # print(data) #r w a f=open('陈粒','r',encoding='utf-8') # data=f.read() # # print(data) # print(f.readable())#是否是可读 # print('第1行',f.readline(),end='') # print('第2行',f.readline()) # print('第3行',f.readline()) # # for i in range(1): # # pass # print('第4行',f.readline()) # print('第5行',f.readline()) # print('第6行',f.readline()) # print('第7行',f.readline()) data=f.readlines() print(data) f.close()
文件处理写操作#文件存在先清空掉,在操作,不存在就创建一个新的
f=open('陈粒1','w',encoding='utf8') # f.read() f.write('11111111\n') f.write('222222222\n') f.write('333\n4444\n555\n') # f.writable()#是否是可写 f.writelines(['555\n','6666\n']) f.writelines(['555\n','6666\n',1]) # 文件内容只能是字符串,只能写字符串 f.close()
文件处理追加操作
f=open('陈粒1','a',encoding='utf-8') f.write('写到文件最后')
文件处理其他模式
# f=open('xxx','r+',encoding='gbk') # # data=f.read() # # print(data) # # f.write('123sb') # # # # f.write('sb') #文件修改 # src_f=open('xxx','r',encoding='gbk') # data=src_f.readlines() # src_f.close() # # # for i in data: # # print(i) # print(data) # dst_f=open('xxx','w',encoding='gbk') # # dst_f.writelines(data) # dst_f.write(data[0]) # dst_f.close() # with open('a.txt','w') as f: # f.write('1111\n') # src_f=open('xxx','r',encoding='gbk') # dst_f=open('xxx','w',encoding='gbk') # with open('xxx','r',encoding='gbk') as src_f,\ # open('xxx_new','w',encoding='gbk') as dst_f: # data=src_f.read() # dst_f.write(data) f=open('a.txt') print(f.encoding) #查看文件编码