您的位置:首页 > 编程语言 > Python开发

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

2012-03-12 14:18 941 查看
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 ...
复制搜索

复制搜索

复制搜索

复制搜索
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: