函数
-如果你要重复使用相同的或者非常相似的功能,就写一个函数。
-函数使用def关键字声明,用return关键字返回值
def my_function(x, y, z=1.5):
if z > 1:
return z * (x + y)
else:
return z / (x + y)
-如果到末尾都没有return,则返回None
-函数可以有位置参数和关键字参数,关键字阐述通常用于指定默认值或者可选参数,在上面的代码中x和y是位置参数,而z是关键字参数,可以用下面的两种方法调用
a = my_function(5,6,z=0.7)
c = my_function(5,6,0.7)
d = my_function(4,8)
-关键字参数必须位于位置参数之后(如果有位置参数),可以以任意顺序指定关键字参数
*笔记:也可以用关键字参数传递位置参数。前面的例子可以写成
c = my_function(x=5,y=6,z=0.7)
命名空间、作用域,和局部变量
-函数乐意访问两种不同作用域的变量:全局变量(global)和局部变量(local)。
-python叫做命名空间
-如下函数
def func():
a = []
for i in range(5):
a.append(i)
-调用func之后,首先会创建出空列表a,然后添加5个元素,a会在该函数退出的时候被销毁
-假如我们像下面那样定义a
a = []
def func():
for i in range(5):
a.append(i)
-虽然可以在函数中对全局变量进行赋值操作,但是那些变量必须用global关键字声明成全局变量才可以
global a
返回多个值
def f():
a = 5
b = 6
c = 7
return a,b,c
a,b,c = f()
print(a)
print(b)
print(c)
-上面代码返回的是一个三元元组
-也可以写下面的代码,返回一个字典
def f():
a = 5
b = 6
c = 7
return {"a":a,"b":b,"c":c}
a= f()
print(a)