python(3)模块、函数式 、三元运算、Lambda表达式、序列化,正则
2015-12-12 18:42
681 查看
一、模块和模块的常用方法
__name__
判断是否为主文件
返回当前.py文件的路径
对模块的一个描述
二、函数
简单函数测试
·在Python中采用def关键字进行函数的定义
·函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段
2.格式
(1)定义函数并调用
1.实例:
(1)根据返回值做相应操作
1.实例:
(1)定义两个参数和一个默认参数
1.举例:
(1)如果1>3,就把gt赋值给result,否则把lt赋值给result
用途:比较简单的函数定义
举例:
(1)
序列化:把一个对象(列表、字典等)以python特殊二进制的方式加密一下,这个过程叫做序列化
把一个对象序列化之后还可以反序列化
1.举例:
(1)把一个list转成str
语法:pickle.dumps(obj)
语法:pickle.loads(str)
1.正则表达式是re模块
(1)re.match:从开头开始匹配,如果开头没有就不继续向下匹配
字符:\d:数字\w:‘_’, ‘-’,等字符\t:制表符.:所有字符次数:
*:大于等于0
+:大于等于1
?:0或者1
{m}:次数,比如让a出现6次
{m,n}:范围,比如出现3-5次之间的
七、time模块
打印当前时间:
本文出自 “翟军铭python” 博客,请务必保留此出处http://pythonzhai.blog.51cto.com/10391994/1722336
__name__
判断是否为主文件
>>> print __name__ #判断是否是主文件,如果是主文件就返回_main_ __main____file__
返回当前.py文件的路径
cat /root/1.py print __file__ 测试:python 1.py /root/1.py__doc__
对模块的一个描述
二、函数
简单函数测试
cat 2.py #!/bin/env python def bro(): #定义函数名为bro print 'hello' heo() #调用hro函数 def hro(): #定义函数名为hro print 'world' bro() #执行bro函数 测试:python 2.py hello world1.概念:
·在Python中采用def关键字进行函数的定义
·函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段
2.格式
def 函数名(参数列表): 函数体3.实例:
(1)定义函数并调用
代码: def foo(name): #定义name为形参 print name,'去砍柴' #打印变量,和动作 foo('张三') #执行函数,括号内为实参 foo('赵四') 结果: 张三 去砍柴 赵四 去砍柴(2)用函数写登陆小程序
代码: #定义函数 def login(username): #username这里为形参 if username == 'aaa': print 'ok' else: print 'no' #执行函数 user = raw_input('请输入用户名') login(user) #执行函数返回值:根据返回值做相应的操作
1.实例:
(1)根据返回值做相应操作
代码 #定义函数 def login(username): if username == 'aaa': #判断用户名是否为aaa return 'ok' #如果是aaa,则返回值为'ok' else: return 'no' #否则返回值为'no' #调用函数 user = raw_input('请输入用户米:') res = login(user) #接受返回值,定义执行函数的过程为res,res随便写 if res == 'ok': #如果返回值是OK print '成功' else: #否则 print '失败'函数的默认参数:定义默认参数,如果下面调用函数时不指定参数,默认就是这个参数,默认参数可以无限定义
1.实例:
(1)定义两个参数和一个默认参数
代码: #定义函数 def foo(name,action='去砍柴'): #第一个参数为内容,第二个参数的默认参数 print name,action #调用函数 foo('zhangsan') #调用函数,输入第一个参数为zhangsan foo('lisi','去吃饭') #调用函数,输入一个参数和第二个参数 结果: zhangsan 去砍柴 lisi 去吃饭(2)定义函数,打印多个传参 #把所有参数封装成列表或者序列
代码: #定义函数 def show(*arg): #加*是所有的意思 for item in arg: #这里是随便定义一个,也可以写别的 print item #调用函数 show('zhangsan','lisi') 结果: zhangsan lisi(3)定义函数,打印多个传参 #把所有参数封装成字典,得加个字典
代码 #定义函数 def show(**kargs): for item in kargs.items(): print item #调用函数 show(name='zhangsan',age='lisi') 结果: ('age', 'lisi') ('name', 'zhangsan')(4)定义函数,传参字典,并打印
代码: #定义函数 def show(**kargs): for item in kargs.items(): print item #调用函数 usr_dict = {'k1':123,'k2':456} show(**usr_dict) #传参字典必须加两个* 结果: ('k2', 456) ('k1', 123)三、三元运算
1.举例:
(1)如果1>3,就把gt赋值给result,否则把lt赋值给result
代码 result = 'gt' if 1>3 else 'lt' print resule 结果: lt四、lambda
用途:比较简单的函数定义
举例:
(1)
代码: temp = lambda x,y:x+y #第一个x,y是参数,第二个x+y表示两个参数相加 print temp(4,4) #4+4=8,temp负责接受参数 结果: 8五、序列化和json
序列化:把一个对象(列表、字典等)以python特殊二进制的方式加密一下,这个过程叫做序列化
把一个对象序列化之后还可以反序列化
1.举例:
(1)把一个list转成str
语法:pickle.dumps(obj)
代码 import pickle a = ['zhangsan',11,22,'lisi'] dumpsed = pickle.dumps(a) print dumpsed print type(a) 结果 (lp0 S'zhangsan' p1 aI11 aI22 aS'lisi' p2 a. <type 'list'>(2)把str转回list
语法:pickle.loads(str)
代码 import pickle a = ['zhangsan',11,22,'lisi'] dumpsed = pickle.dumps(a) #a是list,转成str,赋值给dumpsed loadsed = pickle.loads(dumpsed) #dumpsed是str转成list,赋值给loadsed print loadsed print type(loadsed) 结果 ['zhangsan', 11, 22, 'lisi'] <type 'list'>(3)把list转成str并存到指定文件中,不打印
代码: import pickle a = ['zhangsan',11,22,'lisi'] pickle.dump(a,open('D:/temp.pk','w')) 结果 打开D:/temp.pk (lp0 S'zhangsan' p1 aI11 aI22 aS'lisi' p2 a.(4)把文件中的str转成list,并打印
代码 import pickle result = pickle.load(open('D:/temp.pk','r')) 打开一个文件并把str转成list赋值给result print result print type(result) 结果 ['zhangsan', 11, 22, 'lisi'] <type 'list'>六、正则表达式
1.正则表达式是re模块
(1)re.match:从开头开始匹配,如果开头没有就不继续向下匹配
代码 import re a = re.match('\d+','123abc123') #‘\d+’是匹配数字的意思,后边是字符串 print a.group() #.group是把结果拿出来(这里是匹配到的123) 结果 123(2)re.search:从整个字符串开始匹配,只要有符合就OK,就不继续往下匹配
代码 import re a = re.search('\d+','456abc123') print a.group() 结果 456(3)re.findall:找出所有匹配的,不想match和search找到一个匹配的之后就不往下找
代码 import re a = re.findall('\d+','456abc123def789') print a 结果 ['456', '123', '789'](4)re.compile:先编译,然后利用findall查找,跟findall效果一样,但效率高
代码 import re a = re.compile('\d+') print a.findall('456abc123def789') 结果 ['456', '123', '789']2.正则表达式常用格式
字符:\d:数字\w:‘_’, ‘-’,等字符\t:制表符.:所有字符次数:
*:大于等于0
+:大于等于1
?:0或者1
{m}:次数,比如让a出现6次
{m,n}:范围,比如出现3-5次之间的
七、time模块
打印当前时间:
代码 import time print time.strftime('%Y-%m-%d ') 结果 2015-12-22
本文出自 “翟军铭python” 博客,请务必保留此出处http://pythonzhai.blog.51cto.com/10391994/1722336
相关文章推荐
- Python——模块(1)
- 亲测,手把手教你用Python抢票
- python基础教程共60课-第33课处理文件中的数据
- python学习吐槽
- JDK8.0学习体会--从python的lambda类比java的lambda
- python学习笔记
- python操作mysql数据库
- Python学习笔记-4(模块:collections、itertools、xml)
- python学习笔记1
- python常用函数
- python用pip安装whl后缀的模块文件
- python操作文件目录
- python绘图函数
- Python学习笔记-3(线程、进程、同步等)
- Python for windows
- [从头学python] 第01节 python标准库里有什么
- python读取视频显示视频和保存视频文件
- Python基础(面向对象之类成员与修饰符)
- numpy各函数简介之生成数组函数
- 编译python3