• python中函数的基本结构及参数


    函数:定义了之后可以在任何需要它的地方调用

    返回值3种情况:
    1:没有返回值
      不写return
      只写rerurn:结束一个函数的连续
      return None
    2:返回一个值
    3:返回多个值(这里多个值可以用一个变量接收,也可以用多个变量接收
      一个变量接收就是元祖)

    1 def my_len(s):  #自定义函数只需要0个参数,接收参数
    2     pass
    3     return 0    #返回值
    4 s = '我们一起学习python'
    5 ret = my_len(s)   #传递参数:传参,实际参数,实参
    6 print(ret)

    顺序:位置参数,*args,默认参数,**kwargs

    1:传多个参数

    1 def my_sum(a, b):     #位置参数
    2     res = a+b
    3     return res
    4 ret = my_sum(2,1)       #位置传参
    5 ret1 = my_sum(b = 2, a = 1)    #关键字传参
    6 print(ret)
    站在实参的角度上:
    1.按照位置传参
    2.按照关键字传参
    3.混着用可以:但是必须先按照位置传参,再按照关键字传参,不能给不能给同一个变量传多个值
    站在形参的角度上:
    1.位置参数:必须传参数,且有几个参数传几个值
    2.默认参数:可以不传,那么则默认,如果传了,则选择传的参数
    1 def classmate(name,sex=''):
    2     print('{} : {}'.format(name,sex))
    3 
    4 classmate('python','')
    5 classmate('java')
    6 classmate('php','')
    
    

    2.动态求参的两种

    第一种:

    1 def func(*args, **kwargs):
    2     print(args,kwargs)
    3 func(1,2,3,4,5,a = 'aaa',b = 'bbb')#输出结果:(1, 2, 3, 4, 5) {'a': 'aaa', 'b': 'bbb'}
    1:*args接收的是按照位置传参的值,组织成一个元祖
    2:**kwargs接收的是按照关键字传参的值,组织成一个字典
    3:args必须在kwargs之前
    1 def sum(*args):  #接收的是按照位置传参的值,组织成一个元祖
    2     n = 0
    3     for i in args:
    4         n+=i
    5     return n
    6 print(sum(1,2))

    第二种:

    1 def func(*args):  #站在形参的角度上,给变量加上*就是组合所有传来的值
    2     print(args)
    3 
    4 func(1,2,3,4,5)    #输出结果:(1, 2, 3, 4, 5)
    5 l = [1,2,3,4,5]
    6 func(*l)            #输出结果:(1, 2, 3, 4, 5)
    7                     #站在实参的角度上,给一个序列加上*就是将这个序列按照顺序打散,将其元素一个个传进去
    8                     #同理**配和kwargs

    3:关于函数的注释:

    def func():
        '''
        这个函数实现了什么功能
        参数1:
        参数2:
        :return:是字符串或者列表的长度
        '''
        pass
    
    
  • 相关阅读:
    python : 将txt文件中的数据读为numpy数组或列表
    ROS :为IDE配置环境变量
    ROS 教程之 navigation :在 catkin 环境下创建costmap layer plugin
    ROS 教程之 vision : 用各种摄像头获取图像
    ROS 教程之 network:多台计算机之间网络通信(2)
    MS sql 查询动态表名的方法
    把ocx打包成CAB,并签名
    DataSet 转换成List
    C# 反序列化datetime的处理
    PSP软件开发过程管理
  • 原文地址:https://www.cnblogs.com/rcat/p/9310134.html
Copyright © 2020-2023  润新知