函数
-
函数的理解与定义
def hello(): # def 定义函数的关键字 print('hello') # 不调用时不会执行函数体里的内容 print('python') hello() # 调用函数(通过函数名调用函数)
-
函数嵌套
def westos(): print('is westos') def python(): print('python') python() # 嵌套函数调用 westos()
-
函数传参
def welcome(name): # name 形参(定义函数时的变量) print('hello',name) welcome('lily') # 'lily' 实参(真实数据信息,调用函数时传递的参数)
四种形参形式
-
位置参数(形参和实参个数必须保持一致)
def getInfo(name,age): # 按照位置传参 print(name,age) getInfo('westos',11) getInfo(age=11,name='westos')
-
默认参数(形参和实参可以不一致)
def mypow(x,y=2): # y是默认参数u print(x**y) mypow(4) mypow(2,3) # 指定y=3
-
可变参数(不知道传递的实参数量时)
def mysum(*args): # *args是可变参数('*'打包) print(args) # args是元组数据类型(没有'*'就是解包) mysum(1,2,3,4,5)
-
关键字参数
def getStuInfo(name,age,**kwargs): # **kwargs是一个字典,可以传递任意多的key-value print(name,age) print(kwargs) getStuInfo('westos','19',hobbies=['code','running'],gender='female')
函数的返回值
返回值:函数运算的结果,还需进一步操作,给函数一个返回值
return:用来返回函数执行的结果,如果没有返回值,默认返回None
python可间接返回多个值,组成一个元组
函数中一旦遇到return,则函数执行结束,后面的代码不会执行
def mypow(x,y=2):
return x**y,x+y
print('~~~~~~~')
print(mypow(3))
变量的作用域
全局变量:通用于整个程序的变量
局部变量:在函数内部定义的变量,只在函数内部其作用,函数执行结束后,会自动删除
a = 1
print('outside:',id(a)) # id()返回地址
def fun():
a = 5
print('inside:',id(a))
fun()
print(a)
print(id(a))
----------------------------
a = 1
print('outside:',id(a)) # id()返回地址
def fun():
global a # 声明a为全局变量
a = 5
print('inside:',id(a))
fun()
print(a)
print(id(a))