1、函数定义
函数包括函数头和函数体,函数头以def关键字开始,后面紧接着函数名以及形参并以冒号结束
函数头的参数被称为形参,参数就像一个占为符,当调用参数时,就将一个值传递给参数,这个值被称为实参。
def functionName(list of parmeters):
Funciton body
例:
def say_hello():
print('hello Python')
say_hello()
函数里可以嵌套函数:
def fun():
print('You are')
def fc():
print('student')
fc()
fun()
2、函数参数
参数:形参,实参
形参:位置参数,默认参数,可变参数,关键字参数
1、位置参数:形参和实参个数必须保持一致,最好按位置传参
def getInfor(name,age):
print(name,age)
getInfor('student',18)
getInfor(18,'student')
getInfor(age = 18,name = 'student')
2、默认参数:形参和实参类型可以不一致
def mypow(x,y=2):
print(x ** y)
mypow(4,3)
3、可变参数
def mysum(*a):
"""
:param a:
:return:
*a:可变参数
a:是元组数据类型
"""
print(a)
sum = 0
for item in a:
sum += item
print(sum)
mysum(1,2,3,4,5,6,7,8,9)
4、关键字参数
def getStuInfo(name,age,**kwargs):
"""
**kwargs是一个字典,可以传递任意多的key-value
:param name:
:param age:
:param kwargs:
:return:
"""
print(name,age)
print(kwargs)
getStuInfo('westos','19',hobbies=['coding','running'],gender='female')
3、函数返回值
返回值:函数运行的结果,还需要进一步操作时,给一个返回值
return用来返回函数执行结果,如果没有返回值,默认为None
python可以间接返回多个值(返回了一个元组)
一旦遇到return,函数执行结束,后面的代码不会执行
def mypow(x, y=2):
return x ** y, x + y
print('hello')
a, b = mypow(3, 4)
print(a, b)
def mypow(x, y=2):
print(x ** y)
a = mypow(2)
print(a)
4、变量的作用域
局部变量:在函数内部定义的变量,只在函数内部起作用,函数执行结束
变量会自动删除
全局变量:在所有的函数之外创建,可以被所有的函数访问
a = 1
print('outside:',id(a))
def fun():
global a
a = 5
print('inside:',id(a))
fun()
print(a)
print(id(a))