1. 函数的定义:
python函数:
1. 函数就是完成特定功能的一个语句组,这组语句可以作为一个单位使用,并且给它取一个名字。
2. 可以通过函数名在程序的不同地方多次执行(这通常叫函数调用)。
3. 预定义函数
可以直接使用
4. 自定义函数
用户自己编写
为什么使用函数
1. 降低编程难度
- 通常将一个复杂的大问题分解成一系列的小问题,然后将小问题划分成更小的问题,当问题细化为足够简单时,我们就可以分而治之。各个小问题解决 了,大问题就迎刃而解了。
2. 代码重用
- 避免重复劳作,提供效率
函数的定义和调用
- def 函数名([参数列表]): //定义
定义函数名时,如果有多个单词组成,建议从第二个开始,每个单词的首字母大写。
- 函数名([参数列表]) //调用
定义一个函数,判断从键盘输入的是否是数字:
#! /usr/bin/python
def fun():
sth = raw_input("please input something: ")
try:
if type(int(sth)) == type(1):
print "%s is a number" %sth
except:
print "%s is not number" %sth
fun()
注:
try: 捕获异常
except:出现异常后执行下面操作。
2. 函数的参数
形式参数和实际参数:
- 在定义函数时,函数名后面括号中的变量名称叫做“形式参数”,或者称为“形参”
- 在调用函数时,函数名后面括号中的变量名称叫做“实际参数”,或者称为“实参”
注:
x ,y是形式参数;
1,3 和'a','b'是实际参数;
+:加好用在数值中是相加,用在字符串中连接两个字符串;
sys模块的argv属性:
#! /usb/bin/python
import sys
print sys.argv
注:
导入模块sys
sys的一个属性argv,argv的值是一个列表,列表中的元素有,脚本的名字,后面跟的参数;
脚本的第一个参数下标为1;sys.argv[1]
判断参数是否为数字:
#! /usb/bin/python
import sys
def isNum(x):
for i in x:
if i in '0123456789':
pass
else:
print "%s is not a number" % x
sys.exit()
else:
print "%s is a number" % x
isNum(sys.argv[1])
练习:
•打印系统的所有PID
•要求从/proc读取。
•os.listdir() 查看目录内所有的目录文件名,以列表形式输出
#! /usr/bin/python
import os
import sys
def isNum(x):
for i in x:
if i in '0123456789':
pass
else:
break
else:
print x
for i in os.listdir('/proc'):
isNum(i)
缺省参数(默认参数)
def fun(x, y=100):
print x,y
fun(1,2)
fun(1)
y设置一个默认值后,调用函数时最少要写一个x的参数,不写y参数时y默认用设置缺省参数;
默认参数只能在形式参数中从后往前设置:
不能只设置第一个不设置后面的;