zoukankan      html  css  js  c++  java
  • 函数的返回值 和传参

    函数

    自定义函数的原因

    避免代码冗余,提高可读性和扩展性

    返回值

    注意

    • a.如果函数有返回值,还应该定义“变量”接收返回值 b.如果返回值有多个,也可以用多个变量来接收,变量数应和返回值数目一致

    没有返回值

    • 不写return,只写return,return None 都是返回None

    返回一个值

    • return后面写上要返回的内容即可 注意:return和返回值之间要有空格,可以返回任意数据类型的值

      def my_len():
          """计算s1的长度"""
          s1 = 'hello world'
          length = 0
          for i in s1:
              length +=1
          return length
      # 函数调用
      str_len = my_len()
      print('str_len : %s'%str_len)
      

        

      # 执行结果
      str_len : 11

    返回多个值

    • 返回的多个值会被组织成元组被返回,也可以用多个值来接收 原因:python中把用逗号分割的多个值就认为是一个元组

      def ret_dome1():
      return 1,2,3
      # 调用函数
      ret1 = ret_dome1()
      print('用一个变量接收',ret1)
      a,b,c = ret1
      print('用多个变量接收',a,b,c)

        

      # 执行结果
      用一个变量接收 (1, 2, 3)
      用多个变量接收 1 2 3

    函数的参数

    传参方式

    • 实参

      • 位置传参

        • 就是按照位置一一对应

          def mymax(x,y):
              # 此时x=10,y=20
              the_max = x if x > y else y
              return the_max
          # 调用函数
          m = mymax(10,20)
          print(m)
          

            

          # 执行结果
          20
      • 关键字传参

        • 类似于变量赋值的形式 传参

          def mymax(x,y):
              print(x,y)
              the_max = x if x >y else y
              return the_max
          # 调用函数
          m = mymax(y=10,x=20)
          print(m)
          

            

          # 执行结果
          20 10
          20
      • 位置、关键字混合方式传参

        • a.位置参数必须在关键字参数的前面

        • b.对于一个形参只能赋值一次 

          def mymax(x,y):
              print(x,y)
              the_max = x if x >y else y
              return the_max
          #调用函数
          m = mymax(10,y=20)
          print(m)
          

            

          # 执行结果
          10 20
          20
    • 形参

      • 定义函数时用来接收的

      • 位置参数

        • 位置参数必须传值,不传值报错

      • 默认参数

        • 为什么要有默认参数:将变化频率比较小的值设置成默认参数

          def stu_info(name,gender='male'):
              """
              打印学生信息函数,由于班里大部分都是男生
              所以设置默认参数gender默认值为‘male’
              """
              print(name,gender)
          # 调用函数
          stu_info('Tom')
          stu_info('Jerry','female')
          

            

          # 执行结果
          Tom male
          Jerry female
        • 注意参数陷阱:默认参数不是默认不可变,只是一个初始值,它是一个‘可变’数据类型

          def default_param(a,l=[]):
              l.append(a)
              print(l)
          #调用函数
          default_param('Tom')
          default_param('Jerry')
          

            

          # 执行结果
          ['Tom']
          ['Tom', 'Jerry']
      • 动态参数

        • *args

          • 按位置传值多余的参数都由args统一接收,保存成一个元组的形式

            def mysum(a,*args):
                the_sum = 0
                for i in args:
                    the_sum +=1
                print(a)
                return the_sum
            # 调用函数
            the_sum = mysum(3,2,1)
            # 这个the_sum跟函数内的互不干扰
            print(the_sum)
            

              

            # 执行结果
            3
            2
        • **kwargs

        •   按关键字传值多余的参数都由args统一接收,保存成一个字典的形式

          def stu_info(**kwargs):
              print(kwargs)
              print(kwargs['name'],kwargs['gender'])
          # 调用函数
          stu_info(name='Tom',gender='male')
          

            

          # 执行结果
          {'name': 'Tom', 'gender': 'male'}
          Tom male
          

  • 相关阅读:
    【SQL】DBCC(zz)
    Temporary Tables and Table Variables
    SQL特殊字符处理zz
    更改 Office 解决方案的安装路径
    SQL优化
    zzSQL Server性能优化
    SQL Server2005 表分区三步曲(zz)
    zz精妙SQL
    Deal with an annoying Message in Excel
    SQL技巧总结
  • 原文地址:https://www.cnblogs.com/buzaiyicheng/p/11158293.html
Copyright © 2011-2022 走看看