python学习随笔之函数
函数:完成某个特定功能的一个语句组或代码块,这一段代码取名并整体使用。
自定义函数:
预定义的python函数:
函数的定义:def 函数名 (参数列表) : #可以没有参数
函数体
>>>def add():
... c = a + b
... print c
...
>>>add()
c的值
形式参数,简称形参:在定义函数时函数名后面圆括号中的变量名称叫做"形式参数"
实际参数,简称实参:在调用函数时,函数名后面圆括号中的变量名称叫做"做实际参数"
1 #!/usr/bin/python 2 3 def fun(x): #定义函数,冒号开启 4 print x 5 6 s = raw_input("please input :") 7 fun(s) #调用函数
功能:输入什么,打印什么
1 #!/usr/bin/python 2 3 def fun(x,y): 4 if x == y : 5 print x,'=',y 6 else: 7 print x,'!=',y 8 9 s1 = raw_input("please input s1:") 10 s2 = raw_input("please input s2:") 11 12 fun(s1,s2)
功能:传递两个参数,并进行比较:
形参和实参的位置是一一对应的
局部变量:
1 #!/usr/bin/python 2 3 def fun(): 4 a = 100 5 print a 6 7 fun()
输出结果:
100(局部变量a的值)
全局变量:
1 #!/usr/bin/python 2 3 a = 100 4 5 def fun(): 6 print a 7 8 fun()
输出结果:
100(全局变量a的值)
区别:
1 #!/usr/bin/python 2 3 a = 100 4 def fun(): 5 a=10 6 print a 7 8 fun() 9 print a
输出结果:
10(局部变量)
100(全局变量)
1 #!/usr/bin/python 2 3 4 def fun(): 5 a = 10 6 print a 7 8 fun() 9 print "#"*50 10 print a
输出结果:
10
##################################################
Traceback (most recent call last):
File "10.py", line 10, in <module>
print a
NameError: name 'a' is not defined 原因是print a中的a未定义,而函数里的a是局部变量,定义函数,函数本身不执行,调用才执行。
1 #!/usr/bin/python 2 3 x = 'i am a global var' 4 5 def fun(): 6 x = 100 7 global y #声明y为全局变量 8 y = 1000 9 print x 10 11 fun() 12 print "#"*50 13 print x 14 print "#"*50 15 print y
输出结果:
100
##################################################
i am a global var
##################################################
1000