python期末总结第六章

 第六章  函数

6.2定义函数

def定义函数

def add():

def add_modify(a, b):
    result = a + b
    print(result)

调用函数

l函数在定义完成后不会立刻执行,直到被程序调用时才会执行。

函数名([参数列表])

add()
add_modify(10, 20)

函数内部也可以调用其他函数,这被称为函数的嵌套调用。

def add_modify(a, b):
    result = a + b
    add()   	
    print(result)
add_modify(10, 20)

6.3函数参数的传递

通常将定义函数时设置的参数称为形式参数(简称为形参),将调用函数时传入的参数称为实际参数(简称为实参)。函数的参数传递是指将实际参数传递给形式参数的过程。

函数参数的传递可以分为位置参数传递、关键字参数传递、默认参数传递、参数的打包与解包以及混合传递。

函数打包

“*” —— 接收以元组形式打包的多个值

“**”—— 接收以字典形式打包的多个值

In [1]: val = 1, 2, 3, 4

In [2]: type(val)

Out[2]: tuple

In [3]: val

Out[3]: (1, 2, 3, 4)

关键字参数的传递

关键字参数的传递是通过“形参=实参”的格式将实参与形参相关联,将实参按照相应的关键字传递给形参。

使用符号“/”来限定部分形参只接收采用位置传递方式的实参。

默认参数的传递

函数在定义时可以指定形参的默认值,如此在被调用时可以选择是否给带有默认值的形参传值,若没有给带有默认值的形参传值,则直接使用该形参的默认值。

混合传递

def test(a, b, c=33, *args, **kwargs):
print(a, b, c, args, kwargs)
test(1, 2)
test(1, 2, 3)
test(1, 2, 3, 4)
test(1, 2, 3, 4, e=5)

函数的返回值

函数中的return语句会在函数结束时将数据返回给程序,同时让程序回到函数被调用的位置继续执行。

如果函数使用return语句返回了多个值,那么这些值将被保存到元组中。

#角谷猜想
n = int(input("请输入一个正整数:"))
 
while n != 1:
    if n % 2 == 0:
        k = n / 2
        print("%d/2=%d" %(n, k))
        n = k
    else:
        l = n * 3 + 1
        print("%d*3+1=%d" %(n, l))
        n=l
#模拟超市收银
price=float(input("请输入商品单价:"))
if(price<0):
    print("输入不合法!")
amount=int(input("请输入商品数量:"))
total_price=price*amount
print(total_price)
if(total_price>=500):
    total_price1 = total_price * 0.8
    print(total_price1)
else:
    total_price1 = total_price
    print(total_price1 )
payment=int(input("请输入付款金额:"))
margin=payment-total_price1
if (margin>0):
    print("找零"+str(margin))
else:
    print("余额不足!")

6.7递归函数

函数在定义时可以直接或间接地调用其他函数。若函数内部调用了自身,则这个函数被称为递归函数。

递归函数的执行可以分为:

1.递推:递归本次的执行都基于上一次的运算结果。

2.回溯:遇到终止条件时,则沿着递推往回一级一级地把值返回来。

def函数名([参数列表]):

  if 边界条件:

  rerun 结果

  else:

  return 递归公式

上一篇:弹框中有分页,关闭弹框分页回到默认状态


下一篇:做矩阵随机翻转的小领悟