注意:本篇包含day16的最后一个视频(内置函数part1)和day17的全部内容
【abs() 绝对值】
print(abs(-1))
【all() 布尔运算-->全部元素为真才返回True】
print(all([1,2,'1',None])) #False
【any() 布尔运算-->只要有一个元素是真就返回真】
print(any([1,0,''])) #True
【bin() 把十进制转换成二进制】
print(bin(3)) #0b11
【bool() 布尔值】
空、None、0的布尔值为Flase,其他都为True
【bytes() 转码和解码】
name = '你好'
print(bytes(name,'gbk'))
print(bytes(name,'gbk').decode('gbk'))
输出:
b'\xc4\xe3\xba\xc3'
你好
【chr()】
print(chr(46)) #找到和已知ASCII码对应的符号
输出是一个点.
【dir()】
print(dir(dict)) #列出dict类的所有方法
【divmod()】
python divmod() 函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)。
print(divmod(10,3)) #用来做分页
输出:
(3, 1)
【eval()】
eval() 函数用来执行一个字符串表达式,并返回表达式的值。
语法:
eval(expression[, globals[, locals]])
举例:
--------------将字符串中的字典提取出来--------------
dic = {'name':'alex'}
dic_str = str(dic)
print(dic_str) #{'name': 'alex'}
print(eval(dic_str)) #{'name': 'alex'}
print(type(dic_str)) #<class 'str'>
print(type(eval(dic_str))) #<class 'dict'>
--------------将字符串中的数学运算做出来--------------
express = '1+2*(3/3-1)-2'
print(eval(express)) #-1.0
【hash()】
可hash的数据类型即不可变数据类型;不可hash的数据类型即可变数据类型
特点:
1、不管输入的值有多长,输出的hash值长度都相等
2、不能根据得出的hash值反推出输入的值
3、同一个输入值得到的hash值相同
应用:检验软件是否被人为修改过(或有木马程序)
【help()】
print(help(all)) #打印方法的解释
注意help和dir的区别:dir只打印了方法的名字,help打印的是方法的解释
【bin() 十进制改二进制】
【hex() 十进制改十六进制】
【oct() 十进制改八进制】
【isinstance() 判断某对象是否是某数据类型的一个实例】
print(isinstance(1,int)) #True
print(isinstance('abc',str)) #True
【globals() 打印全局变量(包括自建的和系统提供的全局变量)】
【locals() 打印本地变量】
【max()和min()】
example1:
l = [1,3,100,-1]
print(max(l))
print(min(l))
example2:
dic ={'age1':18,'age2':10}
print(max(dic)) #比较的是key
输出:
age2
example3:既想得到key值又想得到value值
dic ={'age1':18,'age2':10}
print(max(dic.values())) #18
print(max(zip(dic.values(),dic.keys()))) #(18, 'age1')
example4:
people = [
{'name':'alex','age':1000},
{'name':'wupeiqi','age':10000},
{'name':'yuanhao','age':9000},
{'name':'linhaifeng','age':18}
]
print(max(people,key = lambda dic:dic['age']))
#{'name': 'wupeiqi', 'age': 10000}
注意:不同类型数据不能进行比较
【zip()】
注意:zip()函数传入两个参数,这两个参数都是序列类型(列表、元组、字符串)
example1:
print(list(zip(('a','b','c'),(1,2,3)))) #[('a', 1), ('b', 2), ('c', 3)]
example2:
p = {'name':'alex','age':18,'gender':0}
print(list(zip(p.keys(),p.values()))) #[('name', 'alex'), ('age', 18), ('gender', 0)]
example3:
print(list(zip('hello','12345'))) #[('h', '1'), ('e', '2'), ('l', '3'), ('l', '4'), ('o', '5')]
【ord()】
print(ord('a')) #97
【pow()】
print(pow(2,3)) #8(相当于2**3)
print(pow(2,3,5)) #3(相当于2**3%5)
【repr()】
面向对象里面会使用
【reversed()】
l = [1,2,3,4]
print(reversed(l)) #<list_reverseiterator object at 0x00000273F7D356D8>
list(reversed(l)) #[4, 3, 2, 1]
【round()】
print(round(3.5)) #4(四舍五入)
【set()】
print(set('hello')) #{'l', 'h', 'e', 'o'}
【slice()】
l = 'hello'
s1 = slice(3,5)
s2 = slice(1,4,2)
print(l[s1]) #lo
print(l[s2]) #el
print(s2,start) #1
print(s2,stop) #4
print(s2,step) #2
【sorted()】
example1:
l = [3,2,1,5,7]
print(sorted(l)) #[1, 2, 3, 5, 7]
注意:不同类型不能排序(排序的本质就是在比较大小)
example2:
people = [
{'name':'alex','age':1000},
{'name':'wupeiqi','age':10000},
{'name':'yuanhao','age':9000},
{'name':'linhaifeng','age':18}
]
print(sorted(people,key = lambda dic:dic['age']))
#[{'name': 'linhaifeng', 'age': 18}, {'name': 'alex', 'age': 1000}, {'name': 'yuanhao', 'age': 9000}, {'name': 'wupeiqi', 'age': 10000}]
example3:
people = {
'yuanhao':900,
'alex':200,
'wupeiqi':100
}
#(按照key的大小排序)
print(sorted(people)) #['alex', 'wupeiqi', 'yuanhao']
#(按照value的大小排序,但是返回的结果是keys的值)
print(sorted(people,key=lambda key:people[key])) #['wupeiqi', 'alex', 'yuanhao']
#(用zip同时提取keys和values的值)
print(sorted(zip(people.values(),people.keys()))) #[(100, 'wupeiqi'), (200, 'alex'), (900, 'yuanhao')]
【str()】
可以把任意类型转换成字符串类型
print(str('1')) #1
print(str({'a':1})) #{'a': 1}
注意:用eval可以将字符串转换成为原来的类型,比如:
dic_str = str({'a':1})
print(eval(dic_str)) #{'a': 1}
【vars()】
注释:
"""
vars([object]) -> dictionary
Without arguments, equivalent to locals().
With an argument, equivalent to object.__dict__.
"""
example:
print(vars(int)) #输出int下所有的方法并存入一个字典
【import】
导入一个模块(一个py文件)
example1:
import test #test不能是字符串类型
example2:当py文件名是一个字符串时
module_name = 'test'
m = _import_(module_name)