1.1 函数定义
函数就是完成特定功能的一个语句组, 这组语句可以作为一个单位使用, 并且给它取一个名字.
可以通过函数名在程序的不同地方多次执行 (这通常叫函数调用).
预定义函数
可以直接使用
自定义函数
用户自己编写
为什么使用函数
降低编程难度
通常将一个复杂的大问题分解成一系列的小问题, 然后将小问题划分成更小的问题, 当问题细化为足够简单时, 我们就可以分而治之. 各个小问题解决了, 大问题就迎刃而解了.
代码重用
避免重复劳作, 提供效率
函数的定义和调用 参数可选
def 函数名 ([参数列表]): // 定义
函数名 ([参数列表]) // 调用
函数名的命名规则: 函数名可以是数字字母下划线 不能以数字开头, 一般情况下函数名定义 , 除了第一个单词小写其它单词的首字母都大写 , 也可以单词之间通过下划线链接
类: 每个单词的首字母大写
- def fun():
- print "hello world"
例子:
- #!/usr/bin/python
- def fun():
- sth = raw_input("Please input somting:")
- try:
- if type(int(sth))==type(1):
- print "%s is a number" %sth
- except:
- print "%s is not number" %sth
- fun()
1.2 函数的参数
形式参数和实际参数
在定义函数时, 函数名后面括号中的变量名称叫做 "形式参数", 或者称为 "形参"
在调用函数时, 函数名后面括号中的变量名称叫做 "实际参数", 或者称为 "实参"
def fun(x,y): 形参
print x+y
fun(1,2) 传进去实际的参数 实参
- def fun(x,y):
- if x>y:
- print x
- else:
- print y
例子: 定义函数的时候传参数
import sys 导入 sys 模块
- def isNum(s):
- for i in s:
- if i in '0123456789':
- pass
- else:
- print "%s is not a number" %s
sys.exit() 退出脚本
- else:
- print "%s is a number" %s
isNum(sys.argv[1]) 实参传入 argv[1]
1.3 函数的默认参数
练习:
打印系统的所有 PID
要求从 / proc 读取.
os.listdir() 使用 os 模块的 listdir()
- #!/usr/bin/python
- import sys
- import os
- def isNum(s):
- for i in s:
- if i in '-0123456789':
- pass
- else:
- #print "%s is not a number" %i
- break
- else:
- print s
- for i in os.listdir('/proc'):
- isNum(i)
缺省参数 (默认参数) 默认参数只能在最后的形参上 默认参数只能写在最右边
def fun(x, y=100): 如果调用函数时, 没有实际参数 y 则 y 的值就是 100
- print x,y
- fun(1,2)
- fun(1)
来源: http://www.bubuko.com/infodetail-2862717.html