python课堂整理16---内置函数
1. abs :求绝对值
print(abs(-1))
2. all()传入一个可迭代对象,对该对象进行bool值运算,若都为True 就返回True,有一个为假,就返回False
print(all([12,'asds',345])) print(all('')) #特例 若参数为空也返回True print(all((0,))) print(all([]))
3. any () 和all()相反,只要有一个为真就返回Ture
print(any([1231, 0])) print(any([0]))
4. 进制转换
print(bin(3)) # 10进制转化为二进制 print(hex(15)) # 10进制转化为16进制 print(oct(15)) # 10 进制转化为8进制
5. bool() 判断布尔值,除了下面三个,其他都返回True
print(bool(0)) print(bool('')) #可以是空列表空元组 print(bool(None))
6. 编码:bytes:把字符串转换为字节,需要手动指明编码格式
name = '大白' print(bytes(name, encoding = 'utf - 8')) # utf-8 一个中文 = 3 个字节
解码:用什么格式编码就用什么格式解码,gbk 用2个字节表示中文,ASCII码不能表示中文,python3 默认utf - 8 解码
name = '大白' print(bytes(name, encoding = 'utf - 8').decode('utf-8'))
7. chr() 求一定范围内某个数字对应的ascii 码
print(chr(1223))
8. dir() 打印某一对象下面有哪些方法
print(dir(dict))
9. divmod() 用来作分页功能,第一个参数是内容总数,第二个参数是一页要显示的内容数,可求得要分几页,若有余数,自行加一
print(divmod(10, 3)) 10/3 商3余1
10. eval
①把字符串中的数据结构给提取出来
dic_str1 = "{'name': 'alex'}" print((eval(dic_str1))) print(type(eval(dic_str1))) print(type(dic_str1))
②把字符串的表达式进行运算
express = '1 + 1' print(eval(express))
11. hash() 可hash的数据类型即不可变数据类型,不可hash的数据类型即可变数据类型
特征:①得到的hash值不会随着传入内容的增长而变长(固定长度)
②不能根据hash值反推出原来内容
③若原参数发生变化,得到的hash值也跟着变化,可用来检测数据是否被篡改
print(hash('shfduqwhfkwsajdfh9237498231')) print(hash('5211314')) print(hash('5211314safhciwsafhwiofhdajskdhjioas;fhdasiodcjasodfacxasd')) name = 'jinling' print(hash(name)) print(hash(name)) name = 'dabai' print(hash(name))
12. isinstance() 判断类型(学完面向对象再作修改)
print(isinstance(1, int)) print(isinstance('abc', str)) print(isinstance([], list)) print(isinstance([], tuple))
13. globals() 和locals() 查看全局变量和局部变量
name = '天青色等烟雨而我在等你' print(globals()) def test(): age = '18' print(locals()) test()
14. max 和min 最大值和最小值,max()里面传入的是可迭代类型
age_dic = {'alex3': 18, 'liu1': 17, 'jinling2': 16} print(max(age_dic.values())) #指定比较values print(max(age_dic)) #默认比较的是key, 一位一位的比较
从前往后循环比较,第一位最大就不比了,不同类型之间不能进行比较
l1 = [ (5, 'e'), (1, 'l'), (3, 'o'), (2, 'v') ] print(max(l1))
15. zip函数,里面传入两个参数(序列),形成一一对应关系(拉链效果)
print(list(zip(['l', 'o', 'v', 'e'], [1, 2, 3, 4])))
p = {'name': 'alex', 'age': 18, 'gender': 'none'} print(list(zip(p.keys(), p.values())))
16. max的高级用法,结合zip(min不在赘述,和max使用方法相同)
dic = {'age': 18, 'age2': 10} print(max(dic)) #默认比较的是key print(max(dic.values())) #比较的是key,但不知道是哪个key的 print(max(zip(dic.values(), dic.keys())))
people = [ {'name': 'dabai', 'age': 21}, {'name': 'jinling', 'age': 19}, {'name': 'liu', 'age': 20}, {'name': 'sb', 'age': 100} ] print(max(people, key=lambda dic: dic['age'])) #自己写函数规则
自己结合max函数写了个排序(嘻嘻)
li = [3, 5, 9, 7] l2 = [] while len(li) > 1: a = min(li) l2.append(a) li.remove(a) l2.append(li[0]) print(l2)
17. ord ,和chr功能相反,ascill码的对应值
print(chr(97)) print(ord('a'))
18. pow 幂运算
print(pow(2, 2)) #2**3 print(pow(2, 2, 3)) #2**3 % 3
19. reversed() 翻转
l1 = [1, 2, 3, 4, 5] print(list(reversed(l1)))
20. round() 四舍五入
print(round(4.6))
21. set() 把参数转换为集合类型
print(set('jinling'))
22. since 切片,可以指定步长
l = 'jinling' s1 = slice(3, 5) print(l[s1]) s2 = slice(2, 5, 2) print(l[s2]) print(s2.start) print(s2.stop) print(s2.step)
23.sorted 排序,不同类型不能排
l = [3, 2, 15, 7] print(sorted(l))
高级用法
people = [ {'name': 'dabai', 'age': 21}, {'name': 'jinling', 'age': 19}, {'name': 'liu', 'age': 20}, {'name': 'sb', 'age': 100} ] print(sorted(people, key = lambda dic: dic['age']))
name_dic = { 'liuwenhao': 10000, 'jinling': 9999, 'dabai': 9998 } print(sorted(name_dic)) #默认比较key值 print(sorted(name_dic, key = lambda key: name_dic[key])) print(sorted(zip(name_dic.keys(), name_dic.values())))
24. sum求和
l1 = [1, 2, 4, 5, 6] print(sum(l1))
25. type 查看数据类型
print(type('love'))
26. vars
def test(): msg = '月下门筒喟叹昨夜太平长安' print(locals()) print(vars()) #没有参数时,效果和locals一样 test() print(vars(int)) #把int下所有方法存成字典的形式
27. __import__
假如要导入的模块是字符串
module_name = 'test' m = __import__(module_name) m.say_hai() #使用test中的方法
一个奋斗中的产品小白