#coding=utf-8
#Python函数定义
#一、什么事函数
# 函数就是完成特定功能的一组语句,这组语句可以作为一个单位来使用,
# 并且给它取一个名字。
#二、函数的定义和调用
#定义形式:
# def 函数名(参数列表):
# 函数体
# return 返回值
# 注:其中参数列表,返回值是非必须的,可有可无。没有返回值的语句等价于return None.
# 另外,函数体一定要缩进
######### 实例 ############
def add(x,y):
return x+y
print 'add(1,2)=',add(1,2) #显示结果:add(1,2)= 3
#三、全局变量和局部变量
# 全部变量:一直占据着内存,可以攻所有的函数使用
# 局部变量:只在所属函数调用时才会分配内存,函数返回后,内存就会释放
######### 实例 ############
globalInt = 5
def delete():
localInt = 2
return globalInt - localInt
print 'delete()=',delete(); #显示结果:delete()= 3
print 'globalInt=',globalInt #显示结果:globalInt= 5
#print 'localInt=',localInt #显示结果:错误,显示localInt没有定义
#如果全局变量和局部变量使用了同样的变量名会怎么样??
age = 23
def myAge():
age = 24
return age
print 'myAge()=',myAge() #显示结果:myAge()= 24
print 'age=',age #显示结果:age= 23
#但是下面的这种情况会报错:UnboundLocalError: local variable 'name' referenced before assignment
name = 'LBJ'
def myName():
print 'name=',name
name = 'KoBe' #这样 name 就会认为是“局部”变量,因此,在执行(print 'name=',name) 语句时,Python 会认为其未赋值。
return name
#print 'myName()=',myName()
#print 'name=',name
#所以,在全局变量和局部变量名一样的时候,要先对其赋值,然后才能使用,并且局部变量的作用范围也只是该函数内部。