函数的目的:重复使用相同的一段程序
函数的定义
下面是我自定义的一个求a,b,c三个参数平方和的函数
#a,b,c三个参数的平方和 def pow_sum(a,b,c): x = pow(a,2)+pow(b,2)+pow(c,2) return a,b,c,x #调用 print(pow_sum(1,2,3))
首先,def通知Python我是一个函数,pow_sum是一个函数
括号中的a,b,c三个是参数,参数也可以为空,但括号是必须要有
以下两段代码的缩进代表隶属关系
Return可以返回多个值,用逗号分隔。相当于一个tuple(定值表)
在Python中,当程序运行到return的时候,程序将停止执行函数内剩下的语句,当没有return时,或者return后面没有返回值时,函数将自动返回None
函数的调用与传递
定义了一个函数后,需要进行调用才可以凸显函数的价值
使用以下这段程序即可调用
print(pow_sum(1,2,3))
Python通过位置,知道a对应的是1,b对应的是2,c对应的是3,然后把参数传递给函数pow_sum.
下面是2个例子:
例子1:
a = 1 def add(a): a = a+1 return a print(add(a)) print(a)
运行结果:
C:UsersThinkpadAppDataLocalProgramsPythonPython36python.exe D:/Python/Python_Demo/Demo_3.py
2
1
说明:我们将一个整形变量传递给函数,函数对它进行操作,但原整形变量a不发生变化。
例子2:
i = [1,2,3] def add(a): i[0] = i[0]+1 return i print(add(i)) print(i)
说明:我们将一个表传递给函数,函数进行操作,原来的表发生变化
对于基本数据类型的变量,变量传递给函数后,函数会在内存中复制一个新的变量,从而不影响原来的变量。(我们称此为值传递)
但是对于表来说,表传递给函数的是一个指针,指针指向序列在内存中的位置,在函数中对表的操作将在原有内存中进行,从而影响原有变量。 (我们称此为指针传递)