函数参数(一)
思考一个问题,如下:
现在需要定义一个函数,这个函数能够完成2个数的加法运算,并且把结果打印出来,该怎样设计?下面的代码可以吗?有什么缺陷吗?
def add2num(): a = 11 b = 22 c = a+b print(c)
为了让一个函数更通用,即想让它计算哪两个数的和,就让它计算哪两个数的和,在定义函数的时候可以让函数接收数据,就解决了这个问题,这就是 函数的参数
<1> 定义带有参数的函数
示例如下:
def add2num(a, b): c = a+b print c
<2> 调用带有参数的函数
以调用上面的add2num(a, b)函数为例:
def add2num(a, b): c = a+b print c add2num(11, 22) # 调用带有参数的函数时,需要在小括号中,传递数据
调用带有参数函数的运行过程:
<3> 练一练
要求:定义一个函数,完成前2个数完成加法运算,然后对第3个数,进行减法;然后调用这个函数
- 使用def定义函数,要注意有3个参数
- 调用的时候,这个函数定义时有几个参数,那么就需要传递几个参数
# 定义一个函数,完成前2个数完成加法运算,然后对第3个数,进行减法;然后调用这个函数 def addnum(a, b, c): ret1 = a + b -c print(ret1) addnum(10, 20, 20)
<4> 调用函数时参数的顺序
>>> def test(a,b): ... print(a,b) ... >>> test(1,2) 1 2 >>> test(b=1,a=2) 2 1 >>> >>> test(b=1,2) File "<stdin>", line 1 SyntaxError: positional argument follows keyword argument >>> >>>
<4> 小总结
- 定义时小括号中的参数,用来接收参数用的,称为 “形参”
- 调用时小括号中的参数,用来传递给函数用的,称为 “实参”
例子1:
# # 需求: 利用函数完成 10 + 20 完成后求和打印 # # 函数的定义 # def add2num1(): # # 定义两个变量 # a = 10 # b = 20 # # 求和 # ret = a + b # print(ret) # # # 函数的调用 # add2num1() # # # 需求: 利用函数完成 11 + 22 完成后求和打印 # # 函数的定义 # def add2num2(): # # 定义两个变量 # a = 11 # b = 22 # # 求和 # ret = a + b # print(ret) # # # 函数的调用 # add2num2() # 优化后 有参数的函数 # 函数的定义 """ 形参 = 形式参数 def 函数名(形参1, 形参2, ...): 代码逻辑 """ def add2num(a, b): # 求和 ret = a + b print(ret) # 函数的调用 (10 + 20) # 实参 = 实际参数 # 格式: 函数名(实参1, 实参2, ...) # 注意: 在完成函数的调用的时候 如果这个函数有形参 # 传入实参的个数必须要和形参一样多, 而且 实参和形参的位置要一一对应 add2num(10, 20) # 函数的调用 (11 + 22) # add2num(11, 22)