python函数
函数是完成特定功能的一个语句组,这组语句可以作为一个单位使用,并且给它取一个名字。
函数调用就是通过函数名在程序的不同地方多次执行。
函数分为预定义函数(可以直接使用)和自定义函数(用户自己编写)。
使用函数可以降低编程难度(将大问题划分为多个小问题);可以实现代码重用,提高效率。
定义格式
def 函数名([参数列表]):
函数名首字母小写,其余单词首字母大写
调用格式
函数名([参数])
实例
判断键盘输入是否为数字1
2
3
4
5
6
7
8
9
10
11#!/usr/bin/python
def fun_Is_Num():
sth = raw_input("Please input something:")
try:
if type(int(sth)) == type(1):
print "%s is a number" %sth
except:
print "%s is not a number" %sth
fun_Is_Num()
输出结果1
2
3
4
5
6[root@linux02 advance]# python 1_1_3.py
Please input something:www
www is not a number
[root@linux02 advance]# python 1_1_3.py
Please input something:12
12 is a number
函数参数
参数分为形式参数和实际参数。
在定义函数时,函数名后面括号中的变量名称叫做形式参数。
在调用函数时,函数名后面括号中的变量名称叫做实际参数。
实例1
判断输入是否为数字1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16#!/usr/bin/python
import 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])
输出结果1
2
3
4[root@linux02 advance]# python 1_2_1.py 12
12 is a number.
[root@linux02 advance]# python 1_2_1.py 12ffff
12ffff is not a number.
sys.argv
返回一个列表,其中argv[0]
表示文件路径,后面的依次为参数。1
2
3
4
5
6
7
8#!/usr/bin/python
import sys
def fun():
print sys.argv
fun()
输出结果1
2
3
4
5
6[root@linux02 advance]# python 1_1_1.py
['1_1_1.py']
[root@linux02 advance]# python 1_1_1.py 1 b e
['1_1_1.py', '1', 'b', 'e']
[root@linux02 ~]# python /root/aming/advance/1_1_1.py 2
['/root/aming/advance/1_1_1.py', '2']
实例2
打印系统所有的PID,要求从/proc读取。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17#!/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." %s
break
else:
print s,
for i in os.listdir('/proc'):
isNum(i)
默认参数
默认参数必须连续设置,直至最后一个参数,中间不可间断。1
2
3
4
5
6def fun(x,y=10,z): 错误
def fun(x=10,y,z): 错误
def fun(x=10,y,z=10) 错误
def fun(x=10,y=8,z=7): 正确
def fun(x,y=8,z=7): 正确
def fun(x=10,y=8,z=7): 正确
调用函数时,对于已经给的参数从左向右进行匹配。