`
runfeel
  • 浏览: 902627 次
文章分类
社区版块
存档分类
最新评论

Python2.7 学习笔记 (二)—— 函数,模块,正则

 
阅读更多
2012-3-9
[函数]
1.函数
def functionName (param1,param2,...): #参数可选,以逗号隔开
return <return value> # optional,可以没有return

def hello():
print 'hello world!' #要有缩进

def listSum(list): #不需要指明数据类型,python 会自动处理
sum =0
for i in list:
sum +=i
return sum

2.函数调用
r=hello() #输出hello world
print r #输出none

3.默认参数
def cube(x=5): # x默认值为5
return x**3 #返回x的乘方

4.参数传递-按顺序
def sum (x,y,z) :
return x+y+z

sum(1,2,3)#按参数顺序传递

5.参数传递-按名字
def sum (x,y,z) :
return x+y+z

sum(1,z=2,y=3) #按参数名字传递

6.可变长参数
参数使用*开头,就是可变长参数,即参数可以是1个,或者多个
def appendParams(*list):
temp =[]
for i in list #可以是一个list或者多个list
temp.extend(i) #把list里的值加到temp里面
return temp

a=[1,2]
b=[3,4]
print appendParams(a,b) #输出 [1,2,3,4]

7.作用域
内置作用域:python内置
全局作用域:当前文件范围
局部作用域:函数

8.lambda表达式

#感觉没太大用处,了解即可

声明一个匿名函数,lambda里不能使用print,不能使用其他语句(带冒号的)
fun = lambda x:x*x -x
fun(3) #输出6

[模块]
模块就是以.py结尾的,包含函数和变量的Python文件
1.导入模块
import 模块名
improt 模块名 as 新名字
from 模块名 import 函数名 #使用from导入函数时, 调用函数时不需要加模块名

import string
print string.capitalize("hello") #输出Hello

from string import * #导入string里面所有的函数
print capitalize("hello") #输出Hello

2.编写模块
新建一个文件 testModule.py
内容如下
def show():
print 'hello module'
name='I am module name'

其他python文件里
import testModule
testModule.show() #输出hello module


3.模块变量
相当于java里的类变量,属于全局变量
import testModule
print testModule.name #输出I am module name
testModule.name ='new module name'
print testModule.name #输出new module name

4.模块路径
默认路径是当前目录下,以及sys模块中的path变量里面查找
import sys
import os
print sys.path #输出path
modulePath=os.getcwd()+'\\module' #os.getcwd()得到的是当前目录
sys.path.append(modulePath)
print sys.path

5.模块编译
import py_compile
py_compile.compile('module.py') #目录下会出现一个module.pyc

优化编译,后缀是.pyo
python -o module.py #优化编译,力度小,不会出错
python -oo module.py #优化编译,力度大,但是可能会有错

6.__name__属性
如果模块被其他模块导入,__name__属性为该模块的名字
如果模块没有被其他模块导入,则__name__属性为__main__
if __name__ == '__main__':
print 'I am not a module'
else:
print 'I am '+ __name__

7.dir()函数
获取模块里的所有变量名,函数名
import sys
print dir(sys) #列出sys里所有的变量,函数名
a=[1,2]
b='test'
print dir() #列出当前目录所有变量函数名

8.模块包 Package
C:\PYTHON27\TEST\PACKAGE
└─A
│ __init__.py

├─B
│ test1.py
│ __init__.py

└─C
test1.py
test2.py
__init__.py


把__init__.py 放在某个目录下,则该目录成为一个package
引入package的主要目的就是减少module的命名冲突


from A.B import test1
import A.B.test1 #这两种都是一样的


[正则表达式]
1.基本元字符
. 匹配除换行符以外的任何单个字符 r.d匹配red,rid,rad
* 匹配*之前的任意个字符 r*d 匹配 rd,rrd,rrrrd
+ 匹配*之前的1个或多个字符 r+d 匹配 rrd,rrrrd
| 匹配|之前或之后的字符 red|blue匹配red,blue
^ 匹配行首
$ 匹配行尾
? 匹配?之前的0个或1个字符 r?d匹配rrd,rd
\ 转义字符
[] 匹配位于[]内的任何一个字符r[ae]d匹配rad,red
() 将位于()内的内容当作一个整体
{} 按{}内的次数进行匹配 13[0-3][0-9]{8} 匹配联通号码


2.元字符的组合使用
.*匹配任意个字符 r.*d匹配rd,read,red
.+匹配任意一个或者多个字符
.?匹配任意的一个或者0个字符
[a-z] 匹配a到z之间的小写字母
[a-zA-Z0-9]匹配任意字母或者数字

16:30 2012-3-9

正则表达式暂且下跳过吧,能看懂简单的即可,等以后再返回细学~

TO Be continued ...
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics