1、匿名函数 lambda
这个函数的功能很简单,只用一次
lambda x:x+1 # 冒号后面的是函数体,也是函数的处理逻辑,冒号前面的是返回值
2、列表生成式
M =[i for i in range(1,101,2)] 第一个i 表示循环i
l2 = (i for i in range(1,101,2)) #生成100以内的奇数
备注说明:
外面的小括号的话,它就不是一个list了,它是一个生成器,
生成器比list要节省内存,它是每次循环的时候,会根据规则计算一个元素,放在存里面
list 它是把所有的元素都放在内存里面的
3、常用模块
常用模块有:
os/sys/time/datetime/hashlib
# os模块
import os
#对操作系统的一些操作
# print(os.getcwd()) #获取当前工作目录 不常用 wins/Linux下通用的命令
# os.chmod("/usr/local",7) #给文件/目录加权限 主要是针对linux下面的权限添加,对wins下面不好使
# print(os.chdir("../"))#更改当前目录 ../代表上一级目录
# print(os.getcwd()) #上面的代表是更改目录到它的上一级目录,可以在通过获取当前工作目录来确认目录是否变更过了
# print(os.makedirs("nhy/python")) #递归创建文件,父目录不存在是,创建父目录
# print(os.makedirs('test1')) #返回None
# print(os.mkdir("zll/huangrong")) #创建文件夹
#区别 makedirs 创建文件夹的时候,如果父目录不在会自动帮你创建父目录
#创建多层的mkdir会报错
# print(os.removedirs("nhy/python"))#递归删除空目录
# print(os.rmdir('test1')) #删除指定文件夹
#二个只能删除空目录,目录下面有文件的话,就不能删掉
# print(os.remove("test")) #只能删除文件
# os.rmdir('test2') #只能删文件夹
# print(os.listdir('d:\')) #列出一个目录下的所有文件和文件夹
# os.rename('test1','test2')#重命名
# print(os.stat("上周回顾-my.py")) #获取文件信息
# print(os.linesep) #当前操作系统的路径分隔符
# print(os.linesep) #当前操作系统的换行符
# print(os.pathsep) #当前操作写的环境变量中每个路径的分隔符,linux是:,windows是;
# print(os.environ) #当前系统的环境变量
# print(os.name) #当前系统名称 wins系统都是nt,linux都是posix
# os.system('ipconfig') #执行操作系统命令的,但是获取不到结果
# res =os.system('ipconfig')
# print('res--',res) #获取不到结果验证,用一个变量来接收命令, 打印后res--0
# res = os.popen('ipconfig').read() #可以获取到命令执行的结果 .read()函数的作用是执行完命令后获取到命令的结果
# print('res--',res)
# __file__ #获取到当前文件的绝对路径
# print(os.path.abspath(__file__))#获取绝对路径 ,参数用__file__,就可以获取到当前文件的绝对路径
# print(__file__) #打印的结果是得到了当前文件的绝对路径,但是用的分隔符是/
# print(os.path.split("/usr/hehe/hehe.txt")) #分隔路径和文件名
# print(os.path.dirname("d:\python\day5")) #获取父目录,获取它的上一级目录
# print(os.path.basename("d:\python\day5"))#获取最后一级,如果是文件显示文件名,如果是目录显示目录名
# print(os.path.exists("/usr/local"))#目录/文件是否存在
# print(os.path.isabs("../day5")) #判断是否是绝对路径
# print(os.path.isfile("xiaohei.py")) #判断是否是一个文件
#isfile()的作用:1,文件要存在 2 必须是一个文件
# print(os.path.isdir("/usr/loacal")) #是否是一个路径 目录是否存在
# size = os.path.getsize('字典排序2-my.py') #获取文件的大小
# print(size)
# print(os.path.join("root",'hehe','a.sql')) #拼接成一个路径
#os.walk()
# for data in os.walk('D:Pythonexercises-scriptPython0316day6'):
# print(data)
# for abs_path,dir,file in os.walk(r'D:Pythonexercises-scriptPython0316day7'):
# print(abs_path,dir,file)
#路径前面加r 意思就是路径的意思
# abs_path 当前循环的绝对路径
# dir 目录下面所有的文件夹 [ ]
# file 目录下面的所有文件 []
#abs_path 当前循环的绝对路径
#dir 目录下面所有的文件夹 [ ]
#file 目前下所有的文件
import sys
# print(sys.platform) #判断操作系统
# print(sys.path) #python的环境变量
# sys模块
#Python导入模块时候的顺序:
#1.从当前目录下找需要导入的Python文件
#2.从python的环境变量中找 sys.path
#导入模块的实质:就是把这个把这个python 文件从头到尾执行一遍
#导入文件方法
# import nhy #导入nhy这个文件 只导入文件,运行后是把nhy这个文件执行一遍
# nhy.my() #调用函数
# print(nhy.name) #打印这个文件中的变量
#另一种导入模块的方法
# from nhy import my,name
# my() #调用函数
# print(name)
#以上二种方式的结果是一样的
# from nhy import * #导入所有的 一般不建议这样导入
# 验证:从python的环境变量中找 sys.path
#首先先打印下看有那些python环境变量,把文件放到一个目录下
# import sys
# print(sys.path)
# import nhy #把nhy这个文件C:\Miniconda3\lib中
# nhy.my() #在自己目录下找不到文件,从环境变量中能找到,文件也不会报错
#如果自己的目录下面和python的某一个环境变量中都有相同的一个文件 如:nhy
#那么他会先找自己目录下的这个文件,自己目录下文件中没有my()所以运行后会报错,在自己目录下面找到文件后,不会在去Python的
# 其他环境变量中去找这个文件
#导入其他目录下的文件的方法:先把目录添加到环境变量中,在导入文件就可以了
# import sys
# sys.path.append('../day5') #../返回到上一级目录
# # sys.path.append('D:Pythonexercises-scriptPython0316day5') #把day5文件夹添加到环境变量里面
# print(sys.path)
# import radom7_my #导入刚添加好的文件中的一个文件,标红的原因是因为在当前目录下找不到,但是在环境变量中有,所以运行后不会报错
#使用append()添加环境变量的话,添加变量是添加到了最后面,那么导入文件的时候,要从头开始找,一直到最后一个才找到
#提高查找环境变量的性能,可以把需要添加的目录放在环境变量的第一个,这样第一次就找到了
#方法 insert():
# sys.path.insert(0,r'../day5')
# print(sys.path)
# import radom7_my
import sys
print(sys.argv) #用来获取命令行里面运行python文件的时候传入的参数
# 可以通过python下面的Terminal看这个功能的效果 ,打开Terminal cd day6 进入到day6目录下
# 然后运行文件,如:python 常用模块3-my.py --help
# --help作为一个参数在list中,运行后的结果是一个list ['常用模块3-my.py', '--help']
#这个list默认就有一个参数,就是当前这个文件名
添加环境变量 (导入模块的时候,需要添加环境变量)
sys.path.apped
sys.path.insert(0,'D:Pythonscript')
二,时间模块
1、导入时间模块
1)时间戳, 从unix 元年到现在过了多少秒
2)格式化好的时间
如:print(time.time()) #获取当前时间戳
time.sleep(10) #等待10秒
today = time.strftime('%Y-%m-%d %H:%M:%S') #获取格式化好的时间 年月日 小时分秒
备注:年要大写 月日小写,需要显示时分秒的话,需要大写和年月日区分
时间戳转换成时间元祖
1、时间戳转换成时间元祖 time.localtime()
2、在把时间元祖转换成格式化的时间
#把格式化好的时间转化成时间戳
tp=time.strptime('2018-4-21','%Y-%m-%d')
print(time.mktime(tp))
时间模块:
import datetime
print(datetime.datetime.today()) #获取当前时间,精确到秒
print(datetime.date.today())#精确到天
# res = datetime.date.today()+datetime.timedelta(days=5) #获取5天后的时间 5天前的时间days=-5
res = datetime.date.today()+datetime.timedelta(days=1,minutes=5,seconds=5,weeks=5)