有参参数

 函数的作用

 1 减少代码的冗余

 2 提高了代码的重用性

 3 提高了代码的可读性

 4 增强了代码的可扩展性

概念:

 面向过程编程:功能与功能之间的耦合很紧密

 解耦:将一个复杂的功能分解成多个简单的功能,并且将功能与功能之间的影响减到最小

    函数里面不宜放一个复杂的功能

在定义函数后最好时在函数名下面解释一下这个函数的功能。

二 定义有参函数

 1 位置参数必须要在默认参数的前面

1
2
3
4
# def fang(a,b=18):
#     return a,b
# ret=fang('方杰')
# print(ret)

 2 默认参数就是在定义阶段时就给参数传入了参数的值。

1
2
3
def  aa(a = 9 ):
#     print(a)
# aa()

 3 定义阶段时不建议传入可变的数据类型作为默认参数的值

 4 动态参数:*args和**kwargs:在定义阶段,*是将一个个位置参数聚合成一个元组。

                     **是将一个个关键字参数聚合成一个字典

    在不确定传入参数的个数时,可以直接传入动态参数

    在定义阶段传入动态参数可以hold 100%的传参。

 5 传参必须遵守的顺序:位置参数——》*args——》默认参数——》**kwargs。不管哪个参数不用定义,都得遵循这个定义这个有参函数的顺序。

1
2
3
# def aa(a,*b,c=1,**d):
#     print(a,b,c,d)
# aa(1,2,3,4,55,e=6,f=7)

三 执行有参函数

 1 位置参数必须在关键字参数的前面

1
2
3
# def aa(a,b):
#     print(a,b)
# aa(1,b=2)

 2 在定义时假如只有位置参数,那么执行的时候传参个数必须要一一对应

1
2
3
def  aa(a,b,c,d):
     print (a,b,c,d)
aa( 1 , 2 , 3 , 4 )

 3 默认参数在调用时可以不用传参,没有传参,默认参数就会用定义时给的参数的值,也可以传参,传入参数,就会使用在调用时传入的参数(注意:在不同的环境下,传参的方式不同)

1
2
3
4
5
6
7
8
# def aa(a=9):
#     print(a)
# aa()
 
 
# def aa(a=1):
#     print(a)
# aa(3)

 4 *args动态参数:只基于位置传参上使用,将位置传参多余的参数值以一个元组的形式聚合在一起。在执行的时候假如使用*,就是将一个列表或者元组的元素打散,变成多个位置参数在聚合成一个元组的类型

1
2
3
4
5
6
7
8
# def aa(a,*b):
#     print(a,b)
# aa(1,2,3,4,5,6,7)
 
# def aa(*a):
#     print(a)
# l=[1,2,3,4,5]
# aa(*l)

 5 **kwargs动态参数:只基于关键字参数上使用,将多余额关键字参数以一个字典的形式聚合到一起。在执行的时候假如使用**,就是讲一个字典的元素打散,变成多个关键字参数。在聚合成一个字典的类型

1
2
3
4
# def aa(**a):
#     print(a)
# d={'b':1,'a':2,'c':3}
# aa(**d)

四 嵌套函数

 1 外部函数是不能直接调用内部函数的。

 2 内部函数是不能在外部函数外直接单独调用

 3 假如要调用为内部函数,必须要在外部函数内执行。内部函数必须是在外部函数执行时才能执行。

1
2
3
4
5
6
# def func():
#     print(22)
#     def func1():
#         print(11)
#     func1()
# func()

 4 有参嵌套函数:

  4,1 如果要在外部函数传入参数,和内部函数链接,就要在外部函数传入先对应的参数个数来连接内部函数定义的参数。

1
2
3
4
5
# def func(x,y,z):
#     def func1(a,b,c):
#         print(a,b,c)
#     func1(x,y,z)
# func(1,2,3)

  4,2 在不确定内部参数定义个数就用动态参数来连接内部参数。

1
2
3
4
5
6
7
8
9
10
11
12
13
def  func( * args):
     def  func1(a,b,c,d):
         print (a,b,c,d)
     func1( * args)
func( 1 , 2 , 3 , 4 )
 
 
 
def  func( * args, * * kwargs):
     def  func1(a,b,c,d = 6 ):
         print (a,b,c,d)
     func1( * args, * * kwargs)
func( 1 , 2 , 3 )

转载于:https://www.cnblogs.com/tianjianng/p/7470383.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值