python--关键字参数/可变参数--内置函数--时间模块--常用模块--(day4)

 

知识点一、内置函数

 

1 def send_msm2(*args): #可变参数,参数组
2     print('phone',args)
3 send_msm2()#返回值为元组

1 def send_msm2(*args): #可变参数,参数组
2     print('phone',args)
3 send_msm2(110, 113, 333)

  • #参数组不能用word= "haha "这样的形式,直接传

2 def say(word,*args):
3     print(word)
4     print(args)
5 say('nihao',34444,666)

  • #关键字参数 传参格式 key = value

1 def kwfun(**kwargs):
2     print(kwargs)
3 kwfun()#空字典

1 def kwfun(**kwargs):
2     print(kwargs)
3 kwfun()#空字典
4 kwfun('222')

1 def kwfun(**kwargs):
2     print(kwargs)
3 kwfun()#空字典
4 kwfun(age = '123')
5 kwfun(age = '123',name = 'xiaohei')

1 def t1(word,country = 'china',*args,**kwargs):#(必填参数,默认值参数,参数组,关键字参数)必须定义这4个类型参数,顺序要固定
2     print(word)
3     print(country)
4     print(args)#没有认领的参数都给参数组
5 
6     print(kwargs)
7 t1('hah','japan',134,333,na'ddeme = ',age = 44)

1 def redis(ip,pwd,post = 5666):
2     print('连接redis')
3     print(ip)
4     print(post)
5     print(pwd)
6     print('='*10)
7 redis('127.0.0.01','23344')

1 def redis(ip,pwd,post = 5666):
2     print('连接redis')
3     print(ip)
4     print(post)
5     print(pwd)
6     print('='*10)
7 redis_info = ('127.0.0.1','12356',777)
8 redis(redis_info[0],redis_info[1],redis_info[2])
9 redis(*redis_info)#拆包,自动把元组拆开,意义同前两条代码

 

 1 def redis(ip,pwd,post = 5666):
 2 
 3     print('连接redis')
 4     print(ip)
 5     print(post)
 6     print(pwd)
 7     print('='*10)
 8 redis_info2 = {'ip':'127.0.0.1','pwd' : '5667','post' : 444}
 9 redis(redis_info2['ip'],redis_info2['pwd'],redis_info2['post'])
10 redis(**redis_info2)#可替代上两条代码

 

 知识点二、内置函数

 

 1 #coding=utf-8
 2 # input()
 3 # print()
 4 # len()
 5 # type()
 6 # str()
 7 # tuple()
 8 # set()
 9 # dict()
10 # list()
11 l='asdfgwert3r'
12 # sorted(l) #排序
13 # print(all([1,2,3,4,'']))#如果li
14 # print(any([0,0,0,1]))#判断可迭代的对
15 # print(bin(10))#十进制转二进制
16 # print(bool(0))#把一个对象转换成布尔类型
17 # print(chr(66))#打印数字对应的ascii
18 # print(ord('B'))#打印字符串对应的ascii
19 # print(dict(a=1,b=2))#转换字典
20 #s='a'
21 # print(dir(s))#打印传入对象的可调用方法
22 s = '[1,2,3]'
23 
24 print(eval(s))#执行python代码,只能执行简单的,定义数据类型和运算 ,1+1,定义字典

 1 # print(exec('def a():pass'))#执行python代码
 2 # print(filter(lambda x:x>5,[12,3,12,2,1,2,35]))#把后面的迭代对象根据前面的方法
 3 # print(map(lambda x:x>5,[1,2,3,4,5,6]))
 4 #print(max([12,3,4,5]))#取最大值
 5 #min([12,3,4,5])
 6 #print(oct(9))#把数字转换成8进制
 7 #print(round(3.1415926,3))#取几位小数
 8 #print(eval('[]'))#执行python代码,只能执行简单的,定义数据类型和运算
 9 # print(exec('def a():pass'))#执行python代码
10 # print(filter(lambda x:x>5,[12,3,12,2,1,2,35]))#把后面的迭代对象根据前面的方法
11 # print(map(lambda x:x>5,[1,2,3,4,5,6]))
12 #zip()
1 # func_str = '''
2 # import time
3 # def fun():
4 #     return 'func_name'
5 # '''
6 # exec(func_str)
7 # result = fun()
8 
9 #print(result)
1 # f = open('作业.py',encoding='utf-8')
2 # result = f.read()
3 # exec(result)
 1 # l = [1,2,3,4,5,6,7,8,9,10]
 2 #
 3 # def t(num):
 4 #     if num % 2 == 0:
 5 #         return True
 6 
 7 #l2 = list( filter(t,l) )
 8 # l3 = list( map(t,l) )
 9 # print(l3)
10 # print(l2)
1 # l1=[1,2,3,4]
2 # l2=['a','b','c','d']
3 # l3=['a','b','c','d','f']
4 # for k1,k2,k3 in zip(l1,l2,l3):
5 #     print(k1,k2,k3)

 

知识点三、模块

 

1、一个模块就是一个python文件
2、自己写的python文件
3、标准模块,python自带的
4、第三方模块
安装:
pip install xxx #安装
pip uninstall xx #卸载
pip install xx -U #更新
pip freeze > 第三方模块.txt #导出已经安装的第三放模块
pip install -r 第三方模块.txt #从文件里面读模块,批量安装
pip问题:
1、pip命令不存在,把python安装目录下的Scripts加入环境变量
2、pip 的时候没用python目录下的pip,使用where命令知道其他的pip,改为其他名字
手动安装:
1、whl结尾的
pip install /Users/PyMySQL-0.9.3-py2.py3-none-any.whl #后面whl文件的绝对路径
2、tar.gz结尾的
1、解压
2、在命令行里面进入到解压的目录下
3、执行python setup.py install

如果电脑上有多个版本的python
1、python3 -m pip install xpinyin
python2 -m pip install xpinyin
2、找到各个版本的下面的scripts目录,pip各自修改为 pip2 /pip3
导入模块的顺序
1、当前目录下找
2、sys.path

导入模块的实质是
import模块的实质就是把该模块从上到下执行一遍

 os模块

 1 import os
 2 os.remove()
 3 os.rename()
 4 os.mkdir()#创建文件夹,单层
 5 os.makedirs()#创建文件夹,创建多层目录
 6 
 7 os.listdir(r'Documents\Tencent Files\2273747892\FileRecv\day4')#加r不用转译
 8 
 9 files = os.listdir(r'C:\Users\yangmingyue\Documents\Tencent Files\2273747892\FileRecv\day4\day4')
10 print(files)
11 print(os.path.isdir(r'C:\Users\yangmingyue\Documents\Tencent Files\2273747892\FileRecv\day4\day4'))#判断是不是文件夹
12 print(os.path.isfile(r'C:\Users\yangmingyue\Documents\Tencent Files\2273747892\FileRecv\day4\day4'))#判断是不是文件
13 os.chdir(r'C:\Users\yangmingyue\Documents\Tencent Files\2273747892\FileRecv\day4\day4')#进入文件
14 print(os.listdir())#获取当前文件目录
15 print(os.getcwd())#获取当前路径
 1 #判断文件夹还是文件
 2 # name = '.mp4'
 3 # def search_file(path,name):
 4 #     for cur_dir,dirs,files in os.walk(path):
 5 #         for file in files:
 6 #             if name in file:
 7 #                 abs_path = os.path.join(cur_dir,file)
 8 #                 print('找到%s文件,路径是%s'%(file,abs_path))
 9 #
10 # search_file('/',name)

 1 result = os.system('ifconfig') #执行操作系统命令,帮你执行命令,拿不到执行命令的结果
 2 #result = os.popen('ifconfig').read()#执行操作系统命令,可以拿到结果
 3 print('result...',result)
 4 #print(os.getcwd())#获取当前路径
 5 # print(os.path.getsize('products.json'))#获取文件大小
 6 # print(os.path.exists('products.json'))#是否存在
 7 # print(os.path.getatime('products.json'))#最近一次的访问时间
 8 # print(os.path.getctime('products.json'))#createtime创建时间
 9 # print(os.path.getmtime('products.json'))#modiyftime修改时间
10 # print(os.path.split(r'/Users/nhy/PycharmProjects/mjz/day4/products.json'))#分割文件路径和文件名
11 #print(os.path.dirname(r'/Users/nhy/PycharmProjects/mjz/day4/os模块.py'))#获取父目录
12 
13 #print(os.path.abspath(__file__))#根据相对路径获取绝对路径 .代表当前目录,..代表上一级目录
14 
15 #os.rmdir()#删除空文件夹
16 #os.removedirs()#删除空文件夹

知识点四、时间模块

1 import time,datetime
2 #2019-10-19 13:23:38
3 #13245232453
4 #时间戳 一串数字
5 #从计算机诞生那一秒到现在过了多少秒
6 
7 # print(time.time()) #获取前时间戳
8 # print(time.strftime('%Y-%m-%d %H:%M:%S'))#当前格式化好的时间
  • #时间元组

  • #1、时间戳转格式化的时间

 1 timestamp = 1571476513
 2 # time_tuple = time.gmtime(timestamp)#以标准时区的时间转换
 3 time_tuple = time.localtime(timestamp)#以当前时区的时间转换
 4 result = time.strftime('%Y-%m-%d %H:%M:%S',time_tuple)#格式化时间
 5 print(result)
 6 
 7 def timestamp_to_str(timestamp=None,format='%Y-%m-%d %H:%M:%S'):
 8     '''时间戳转格式化好的时间,默认返回当前时间'''
 9     if timestamp:
10         time_tuple = time.localtime(timestamp)  # 以当前时区的时间转换
11         result = time.strftime(format,time_tuple)
12     else:
13         result = time.strftime(format)
14     return result
15 
16 def str_to_timestamp(string=None,format='%Y-%m-%d %H:%M:%S'):
17     '''格式化好的字符串转时间戳,默认返回当前时间戳'''
18     if string:
19         time_tuple = time.strptime(string, format)  # 格式化好的时间,转时间元组的
20         result = time.mktime(time_tuple)  # 把时间元组转成时间戳
21     else:
22         result = time.time()
23     return int(result)
24 
25 # s = '2019-10-19 17:15:13'
26 # time_tuple = time.strptime(s,'%Y-%m-%d %H:%M:%S')#格式化好的时间,转时间元组的
27 # result = time.mktime(time_tuple)#把时间元组转成时间戳
28 # print(result)
29 
30 t1 = str_to_timestamp() + 60*60*24*3

知识点五、创造日志

 1 def timestamp_to_str(timestamp=None,format='%Y-%m-%d %H:%M:%S'):
 2     '''时间戳转格式化好的时间,如果没有传时间戳,就获取当前的格式化时间'''
 3     if timestamp:
 4         time_tuple = time.localtime(timestamp) #把时间戳转成时间元组
 5         result = time.strftime(format,time_tuple) #把时间元组转成格式化好的时间
 6         return result
 7     else:
 8         return time.strftime(format)
 9 
10 
11 import time,os,random
12 l = ['ios','android','nginx','tomcat','python','blog','apache','mysql','redis']
13 for i in l:
14     p = os.path.join('logs',i)
15     os.makedirs(p)
16     for j in range(30):
17         t = int(time.time())-86400*j
18         time_str = timestamp_to_str(t,'%Y-%m-%d')
19         log_name = '%s_%s.log'%(i,time_str)
20         abs_file_path = os.path.join('logs',i,log_name)
21         fw = open(abs_file_path, 'w', encoding='utf-8')
22         if random.randint(1,10)%2==0:
23             fw.write('胜多负少防守打法双方都')
24         fw.close()

运行结果就是:当前目录下生成log文件
posted @ 2019-10-25 12:15  洛歆陌离  阅读(188)  评论(0编辑  收藏  举报