一、内置函数
内置函数就是python自带的函数,不需要自己定义,可以直接使用。
print(sum([1,2,3])) #求和的print(min("123")) #最小值print(max([1,2,3])) #最大值print(round(1.9842,2)) #保留N位小数的s = "346346312"print(sorted(s,)) #排序,它返回一个list,默认是升序print(sorted(s,reverse=True)) #排序,指定reverse参数为True就是降序print(list(reversed(s))) #反转变量的,默认返回的是一个生成器,你想看结果的话,转成listprint(dir(s)) #查看某个变量的所有属性(方法)print(divmod(10,3)) #除法取商和余数,返回两个值,第一个是商,第二个是余数quit() #退出程序,代码里面遇到它,程序就结束了,后面还有多少代码都不会再运行exit() #退出程序a="{'a':1}"b = "1+1"print(eval(a) )#执行简单python代码的,定义变量,运算print(eval(b))code="""for i in range(5):print(i*3)"""print(code)exec(code) #执行python代码的,只要是合法的代码,都可以帮你运行country = "中国"def hhh():name = "死循环"age = 19print(locals())print(globals())hhh()# locals() #获取当前函数里面的所有局部变量,返回的是一个字典,字典里面的key是变量名,value是变量的值# globals() #获取所有全局变量names = ["a","b","c","d"]for index,n in enumerate(names,1):print(index,n)# enumerate() #枚举函数,可以传数组或者list,会自动计算下标,也可以指定从几开始,默认从0开始l1 = [1,2,3]l2 = ["a","b","c"]l3 = ["sdg","sdg","sdg"]for a,b,c in zip(l1,l2,l3):print(a,b,c)print(list(zip(l1,l2,l3))) #把多个数组变成一个二维数组,或者想同时循环N个list的时候,可以用zip# zip()usernames = ["admin","dev","sdfsdf"]passwords = ["123456",2332523,3252352]print(list(zip(usernames,passwords)))print(dict(zip(usernames,passwords)))def func1(n):if n % 2 == 0:return Truereturn Falseresult = filter(func1, numbers)result2 = filter(lambda n: n % 2==0, numbers) # 第一个参数要传一个函数名,第二个参数是一个可以循环的对象(list、set、str、dict,tuple)print(list(result))print(list(result2))#filter()# 第一个参数要传一个函数名,第二个参数是一个可以循环的对象(list、set、str、dict,tuple)#他会循环list,把list的每一个参数传给指定的函数,把函数返回true的参数保留下来def zzz(n):return str(n).zfill(2)# ret = map(lambda n:str(n).zfill(2),range(1,34))ret = map(zzz,range(1,34))#第一个参数要传一个函数名,第二个参数是一个可以循环的对象(list、set、str、dict,tuple)#循环调用函数,它会保存每次调用函数返回的结果,放到一个listprint(list(ret))print(all([True,True,True,False])) #list每个元素都是true,那么就返回true,如果有一个为false,那么就返回falseprint(any([1,2,3,0])) #list只要有一个元素是true,那么就返回true,否则就返回falseprint(chr(35)) #把ascii转成对应的字符print(chr(98))print(ord("#")) #把对应的字符转成asciiprint(ord("a"))print(bin(89)) #10进制转二进制print(oct(10000)) #10进制转8进制print(hex(10000)) #10转16进制print(int("2710",base=16)) #把16进制转成10进制
二、os模块
# os.makedirs("logs/2021-10-10") #创建多层的文件夹,父目录不存在的时候会帮你创建# os.rmdir("xiaobai") #删除空文件夹#os.removedirs("logs/2021-10-10") #删除空文件夹,会连带着父目录一起删除# print(os.name) #获取当前操作系统的名称# print(os.cpu_count()) #获取当前系统cpu核心数# os.chdir("/Users/hansen/PycharmProjects/homework/day2") #进入到某个目录# print(os.listdir())# print(os.getcwd()) #获取当前所在的目录# ret = os.system("ifconfig1")#执行操作系统命令,只能执行命令,如果命令有结果,是拿不到的,它返回的是命令执行的状态,返回是0的话#代表命令执行成功,不是0代表命令执行失败# ret = os.popen("ifconfig").read()#执行操作系统命令,调用read方法拿到结果#os.listdir() #获取某个目录下的内容,如果不传路径,那么就获取当前目录下的#os.remove() #删除文件,传入的是一个文件路径#os.rename() #重命名,传入一个旧的文件名和一个新的文件名# os.mkdir("logs") #创建文件夹# os.chdir("/Users/hansen/PycharmProjects/homework/day2") #进入到某个目录# print(os.path.join("logs","2021","a.py"))#拼路径的# print(os.path.sep) #当前系统的的路径分隔符# print(os.path.isdir("ssq.txt")) #判断是否为文件夹# print(os.path.isfile("ssq.txt")) #判断是否为文件# print(os.path.exists("sdgsdg.txt")) #判断路径是否存在#print(os.path.abspath("../day4/logs")) #把相对路径转成绝对路径#print(os.path.dirname("/User/abc/a.txt") )#取父目录#os.path.getsize() #获取文件的大小# print(os.path.getatime("ssq.txt") )#最后一次访问的时间,比如看过它# print(os.path.getctime("ssq.txt")) #文件变化时间,大小改变/权限改变/归属人改变# print(os.path.getmtime("ssq.txt")) #最近一次修改时间,文件内容被修改# print(os.path.split("/User/abc/a.txt"))#分割路径的,他会把文件名和你的路径分割开,返回两个参数,第一个是路径,第二个是文件名for cur_dir,dirs,files in os.walk("e"): #递归查找目录下面所有的文件夹print(cur_dir,dirs,files)
三、练习
查找电脑下面mp4文件
import os#mp4def find_file(keyword,path="/"):for cur_dir,dirs,files in os.walk(path):for file in files:if keyword in file:abs_path = os.path.join(cur_dir,file)print("发现目标文件%s" % abs_path)find_file(".mp4")
