一.
1.模块是包含函数和其他语句的脚本文件,以".py"为后缀名,在Python中可以通过导入模块来使用模块中的函数或数据.
创建一个文件fun.py内容如下:
def f1(): print('hello world!') def f2(L): result = 0 for i in L: result += i return result def f3(x): print("old x = " + str(x)) x = 0 print("change to x = " + str(x)) value=100再创建另一个文件shang.py,再在这个文件调用fun.py中的函数
#!/usr/bin/env python import fun //引入模块 from fun import f1,f2,f3 //引入模块中的函数 fun.f1() //与下一个区别,用这个必须先用import引入模块 f1() print f2([1,2,3,4,5]) f3(20) print fun.value //打印引入模块的变量值
结果如下
hello world!
15
old x = 20
change to x = 0
注:引入fun.py过程中会自动生成fun.pyc文件并且上述两个文件在同一目录.
2.设置模块查找路径2.
上一例子是在同一目录
若不在同一目录,python查找不到,必须进行查找路径的设置,将模块所在的文件夹加入系统查找路径
查看默认查找路径:
import sys
sys.path
添加一个路径[将当前路径加入]
import os
import sys
sys.path.append(os.getcwd())
二.函数参数
1.函数中的参数传递:
>>> def sum(a=1,b=2,c=3): ... return a+b+c ... >>> sum() //不传使用默认参数 6 >>> sum(4,5,6) //顺序传递参数 15 >>> sum(b=4,c=12,a=1) //按参数名传递 17 >>>2.可变长的参数
>>> def listappend( *l ): ... result = [] ... for i in l: ... result.extend(i) ... return result ... >>> l = [1,2,3,4,5] >>> j = [4,5,6] >>> print (listappend(l,j)) [1, 2, 3, 4, 5, 4, 5, 6] >>> k = [1,2,3] >>> print (listappend(l,j,k)) [1, 2, 3, 4, 5, 4, 5, 6, 1, 2, 3]
特殊的声明函数方式,用于创建新的函数对象,并且在运行时返回它们【返回函数对象】
声明一个匿名函数,简单的函数,返回一个值
用于定义小型的函数,在函数中仅包含单一的参数表达式,而不能包含其他语句,但是可以调用其他函数
格式:lambda 参数列表:表达式
>>> def repeater(n): ... return lambda s:s*n ... >>> twice = repeater(2) >>> print(twice('word')) wordword >>> print(twice(2)) 4 >>> fun = lambda x:x*x -1 >>> print(fun(2)) 3 >>> print(fun(3)) 8