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

 

posted @ 2017-02-16 17:16  皮蛋solo粥  阅读(136)  评论(0编辑  收藏  举报