Day5_函数全局变量+列表推导式+函数递+常用模块
# 定义一个读取文件的函数 import json FILE_N = 'goods' def op_file(fname): with open(fname, encoding='utf-8') as fr: res = json.load(fr) return res print(op_file(FILE_N)) #局部变量 #在函数里面定义的变量都是局部变量,除了函数之后就不能用了 #全局变量 #在文件最上面定义的这个变量,就是全局变量 #S1不可变变量的声明 name = '小黑' def variate_pratice(): global name name = '小白' print('你好',name) variate_pratice() print(name) # 你好 小白 # 小白 #S2可变变量不需要声明就可以直接改了 d = {'age':123} def variate_pr(): d ['sex'] = '女' print(d) variate_pr() print(d) #{'age': 123, 'sex': '女'} #{'age': 123, 'sex': '女'} def my(name,sex='男',*args,**kwargs): print(name) print(sex) print(args) print(kwargs) my('xhei',) my('xhei','hhh','args','args2',k='1',k2='v2') my(name='hahah',sex='nv',age=18) my(type='car',a=1,c=1) #函数的递归 最多调用999次 count = 0 def add(): global count count+=1 print(count) add() add() #所以用递归的时候一定要有一个明确的结束条件 def digui_pr(): num = int(input('请输入一个数字: ')) if num %2 != 0: print('请输入一个偶数') digui_pr() # return digui_pr() digui_pr() #列表推导式 import random res = [10,2,3,11,5,34] for i in range(len(res)): res[i] = str(res[i]).zfill(2) print(res) #等同于 RES = [str(i).zfill(3) for i in res] print(RES) RES2 = [i+10 for i in res] print(RES2)
import os print(os.getcwd()) #取当前的路径 os.mkdir('spz')#创建文件夹 os.mkdir('e:\\nhy123') os.makedirs('spz2')#创建文件夹 os.makedirs('stu\laowang') #父目录不存在的时候会帮你创建父目录 print(os.listdir(r'C:\Users\Administrator\Desktop\pylearn_spz\Day5\day5'))#获取某个目录下的所有文件,并且放到一个列表里 for i in range(10): os.makedirs(fr'C:\Users\Administrator\Desktop\pylearn_spz\Day5\0707\07test{i}') os.rmdir(r'C:\Users\Administrator\Desktop\pylearn_spz\Day5\spz2')#只能删除空文件夹 把末尾是偶数的文件夹中,创建一个a.txt,文件,里面随便写点东西 1、获取到这个目录下所有的文件夹, os.listdir('') 2、判断文件夹的名字最后一位是不是偶数 3、如果是偶数的,在这个文件里 f = open(a.txt) f.write('xxx') for dir in os.listdir(r'C:\Users\Administrator\Desktop\pylearn_spz\Day5\0707'): if int(dir[-1])%2 == 0: abs_path = (r'C:\Users\Administrator\Desktop\pylearn_spz\Day5\0707\%s\test.txt'%dir) with open(abs_path,'w',encoding='utf-8') as fw: fw.write('who tm cares') print(os.path.join('nhy123','test0','a.txt'))#拼接路径,它会自动识别路径分隔符 print(os.sep)#当前系统的路径分隔符 print(os.path.dirname('e:\\nhy123\\test0\\a.txt'))#获取父目录的路径 print(os.path.getsize('e:\\nhy123\\test0\\a.txt')) #获取文件大小的 print(os.path.exists('code'))#判断文件、文件夹是否存在 print(os.path.isdir('e:\\')) #判断是否是文件夹,如果文件夹不存在的话,会返回False print(os.path.isfile(r'e:\\nhy123\\test0\\a.txt')) #判断是否是文件,如果文件不存在的话,会返回False print(os.path.dirname('user/local/test'))#获取父目录的路径 print(os.path.split(r'e:\nhy123\test0\a.txt'))#分割文件名和路径的
import time 时间戳 从unix元年开始到现在过的秒数 格式化好的时间 2018-07-01 时间元组, print(int(time.time()))#获取当前时间戳 print(time.strftime('%Y%m%d%H%M%S')) print(24*60*60*3) print(time.gmtime()) #把时间戳转成时间元祖,如果不传时间戳,那么取的是标准时区的时间 print(time.localtime(1530436245 - 259200))#把时间戳转成时间元祖,如果不传时间戳,那么取的是当前时区的时间 print(time.strftime('%Y%m%d%H%M%S',time.localtime(1530436245 - 259200))) #1、时间戳转格式化好的时间 # 1、首先要把时间戳转成时间元组 # 2、再把时间元组转成格式化好的时间 def timestampToStr(timestamp=None,format='%Y-%m-%d %H:%M:%S'): if timestamp: time_tuple = time.localtime(timestamp) # 转成时间元组 return time.strftime(format,time_tuple) #把时间元组,转成格式化好的时间 return time.strftime(format) #2、格式化好的时间,转时间戳, #1、首先要把格式化好的时间 转成时间元组 #2、再把时间元组转成时间戳 def strToTimestamp(format_time=None,format='%Y%m%d%H%M%S'): if format_time: time_tuple = time.strptime(format_time, format)#把格式化好的时间,转成时间元组 return int(time.mktime(time_tuple)) return int(time.time()) # print(strToTimestamp('20190221180759')) # print(strToTimestamp())