zoukankan      html  css  js  c++  java
  • 7-函数

    函数基础

    • 定义函数/声明函数
      • def f():
        • print('hello')
    • 调用函数
      • f()
    • 参数
      • def f2(x, y):
    • 函数的作用
      • 封装一个功能(一段代码)

    标准函数

    • return
      • 1.返回结果
      • 2.立刻退出函数
      • 3.默认返回None
    • return如果不接返回值,可以用来中止函数

    函数参数

    • 实参/形参
      • 实参:函数调用时括号中的参数
      • 形参:函数定义时括号中的参数
    • 参数类型
      • 位置参数/必需参数
      • 默认参数(定义时)
        • def f2(x, y=3):
      • 关键字参数(调用时)
        • def f3(x, y=3, z=4):
          • # z 是关键字参数,给关键字z传参
          • f3(10, z=30) # 10 3 30
      • 可变参数/不定长参数
        • *args: 可以接收任意多个(0~n)位置参数,得到的值是一个元组
          • def f4(x, y, args):
            • print(x, y, args)
        • kwargs:(keyword arguments)可以接收任意多个(0~n)关键字参数,得到的值是一个字典
          • def f5(x, y, kwargs):
            • print(x, y, kwargs)
        • 接收任意参数
          • def f7(*args, **kwargs):
            • print(args, kwargs)

    匿名函数lambda

    • f2 = lambda x: x*x
      • person_list.sort(key=lambda x: x['age'], reverse = True)

    值传递问题

    • 值类型:简单的赋值,没有关联

    • 引用类型:赋值的同时会有关联,深拷贝解决。

      • l1 = [1, 3 ,4 , 2]
      • l2 = l1
      • l2[0] = 100
      • print((l1, l2)) # ([100, 3, 4, 2], [100, 3, 4, 2])
    • 函数中参数:值类型和引用类型的区别

      • def f(n, m):  # n=a, m=b
            # pass  # 空函数
            n += 1
            m['age'] += 1
            print(n, m)
        a = 10
        b = {'age': 10}
        f(a, b)  # 11 {'age': 11}
        print(a, b)  # 10 {'age': 11}
        
  • 相关阅读:
    视频:JDBCRDD源码及自定义JDBCRDD的分区策略
    聊聊spark-submit的几个有用选项
    线性求第k大
    汇编基础 第一章_总线
    长度不超过n的连续最大和___优先队列
    ISAP
    次小生成树
    k短路
    求出欧拉回路,欧拉路径
    拓扑排序bfs_dfs
  • 原文地址:https://www.cnblogs.com/lotuslaw/p/14006843.html
Copyright © 2011-2022 走看看