day5- 内置函数&函数&模块(os、sys、radom、string、time、加密)
2018-01-20 20:11 yemeiling 阅读(157) 评论(0) 收藏 举报内置函数:
print(all([1,2,3,4]))#判断可迭代的对象里面的值是否都为真
print(any([0,1,2,3,4]))#判断可迭代的对象里面的值是否有一个为真
print(bin(10))#十进制转二进制
print(chr(10))#打印数字对应的ascii
print(dict(a=1,b=2))#转换字典
print(locals())#返回局部变量
print(max(111,12))#取最大值
print(round(11.11,2))#取几位小数
print(sorted([2,31,34,6,1,23,4]))#排序
__import__('decorator')#导入一个模块
print(bool('s'))#把一个对象转换成布尔类型
print(eval('[]'))#执行python代码,只能执行简单的,定义数据类型和运算
print(globals())#返回程序内所有的变量,返回的是一个字典
函数:
函数名也是一个变量
1、 如果函数返回多个值的时候,会把这return的多个值保存成一个元祖
res=hello('aa','bb','cc','dd')
print(res) #执行结果('aa', 'bb', 'cc', 'dd')--这是一个元祖
2、将int 转换为str类型
nums=[1,2,3,4,5,6,7]
new_nums=[str(x) for x in nums] # 这个叫做列表推倒试,简化循环代码
print(new_nums) # 执行结果变成字符串了:['1', '2', '3', '4', '5', '6', '7']
3、交换两个变量的值,不需要引用第三方变量,有如下2种方式:
a=2 b=1
方式一:b,a=a,b #直接替换
方式二, 这种方式只存在int类型
a=a+b #3
b=a-b #2
a=a-b #1
print(a,b) # 执行结果 1 2
4、json的处理:
json串就是字符串
1、将字典转换成json
res =json.dumps(d,indent=8,ensure_ascii=False)#把list、字典转换成json indent 是缩减多少
f1=open('f1','w',encoding='utf-8')
f1.write(res)
2、 json 里面都是双引号
f1=open('f1',encoding='utf-8')
res=f1.read()
3、dic_res=json.loads(res) #把json串变成python都数据类型
print(dic_res)
4、 自动帮你写入文件,第一个参数是数据,第二个是文件对象
f2=open('f2','w',encoding='utf-8')
json.dumps(d,f2,ensure_ascii=False,indent=4)#把list、字典转换成json indent 是缩减多少
5、自动帮你读文件,load不带s的是操作文件,带S的是操作json
f1=open('f1',encoding='utf-8')
print(json.load(f1))
常用的os模块:
os.getcwd()#取当前工作目录
os.mkdir("test1"))# 创建文件夹
os.remove("../day4/5.png") # 删除文件,不能删文件夹。
os.listdir('c://') # 列出一个目录下的所有文件
os.rename("test", "test1") # 重命名
os.path.abspath(__file__)# 获取绝对路径
os.path.split("c:\\usr\\hehe\\hehe.txt") # 分割路径和文件名
os.path.dirname("c:\\usr\\hehe\\hehe.txt") # 获取父目录
os.path.exists("c://test2") # 目录/文件是否存在
os.path.isfile(r"E:\txz\day2.zip")#判断是否是一个文件
os.path.isdir(r"E:\txz\day2")#是否是一个文件夹
os.path.join("e",name)#拼接成一个路径
os.system('ipconfig') # 用来操作系统命令的,只能执行,不能获取不到结果
通过如下可以获取结果,并且只能获取非动态的,如果是动态的就获取不到了,比如top命令
res=os.popen('ipconfig')
print(res.read())
常用的sys模块:
sys.path #查看环境变量
sys.platform)#查看当前系统是什么
sys.version #查看python的版本
sys.exit('程序退出') #程序退出
quit('程序退出.....')
sys.argv # 获取运行pyhton文件的时候,传入的参数,放在list中
常用的随机和string模块:
string:
string.digits#所有的数字 0-9
string.ascii_lowercase #所有的小写字母
string.ascii_uppercase#所有的大写字母
string.ascii_letters#所有的小写字母+大写字母
string.punctuation#所有的特殊字符
random:
(1)random.randint 随机取一个整数
print(random.randint(1,199)) #1-199随机取一个整数
(2)random.choice 随机取一个元素
s=random.choice(['yml','mpp','zhx']) #随机取一个元素
print(s)
(3)random.sample 随机取N个元素
res=random.sample(string.digits,3) # 得到的是一个list
print(''.join(res)) #运行结果是034这样的一个结果,把list中的值连接起来变成一个字符串
(4) random.uniform 随机取小数
res=random.uniform(1,9)
res1=round(res,2) #保留2位小数,如果四舍五入之后,最后一位小数是0,那么不显示
print(res1)
(4)random.random 取0-1之间的随机小数
res=random.random()
print(res)
(5) random.shuffle 洗牌,打乱顺序的,只能传入list,是没有返回值的
s=['a','b','f','q','h']
res=random.shuffle(s) #执行结果为None,因为这个方法是没有返回值的,只是打乱顺序
random.shuffle(s)
print(s)
时间处理模块:
time: 格式化的时间 2018-1-02 -----时间撮,是从unix元年到现在所有的秒数
1、等待几秒
time.sleep(5)
2、当前的时间撮
print(int(time.time()))
3、取当前时间的格式化时间
cur_time=time.strftime('%Y-%m-%d-%H:%M:%S')
print(cur_time)
4、时间元祖,默认的是取标准时区的时间元祖,如果传入了一个时间撮,那么会把这个时间撮转化成时间元祖
time.gmtime()
5、查看和标准时间相差了几个小时
time.timezone
6、 想时间撮和格式化好的时间相互转换的话,都要先转化成时间元祖,然后才能转化
time.localtime()#默认取当前时区的时间元祖
cur_time=time.localtime(1516006898)
res=time.strftime('%Y-%m-%d-%H:%M:%S',cur_time)
print(res)
7、时间撮转成格式化好的时候
def timestmapToStr(time_stramp,format='%Y-%m-%d-%H:%M:%S'):
cur_time = time.localtime(time_stramp) #时间撮转成时间元祖
res = time.strftime(format, cur_time) #在把时间元祖转成格式化好的时间
print(res)
return res
timestmapToStr(1515920498)
8、格式化好的时间转化成时间撮
def strToTimestamp(time_st,format= '%Y%m%d%H%M%S'):
t=time.strptime('20181128','%Y%m%d') #把格式化好的时间转化成时间元祖
res=time.mktime(t) #再把时间元祖转化是时间撮
print(res)
return res
strToTimestamp('2018-01-14-17:01:38')
9、# 通过时间撮的加减可以得到几天前或几天后的时间,一天的时间撮为 86400
加密模块
s='dfsdf34234sfsdf'
1、使用base64编码进行加密
bytes_s=s.encode() #转成二进制
res=base64.b64encode(bytes_s) #base64编码
print(res.decode()) #把bytes转成字符串
2、解密用base64.b64decode()
jie_mi_res=base64.b64decode(res.decode())
print(jie_mi_res)
print(jie_mi_res.decode())
浙公网安备 33010602011771号