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())

猜你喜欢

转载自www.cnblogs.com/jinzhng/p/9276922.html