zoukankan      html  css  js  c++  java
  • day10 函数

    day10 函数

    把重复代码写成一个通用模版

    可以把冗余的代码独立开

    把工具事先准备好

    定义函数

    def 函数名():
    代码快

    函数名:需要具有某种意义
    代码块,实现具体的功能

    使用函数:
    函数()

    一个函数分为两个阶段,分别是定义和调用

    定义函数的三种形式

    函数的参数
    函数的返回值
    函数的可变长参数

    函数只是一种思想,干活的具体实现都是靠if/while/for+变量,函数只是帮你干活更轻松

    第一种定义方式,无参函数

    def self_max():
        x,y=10,20
        if x>y:
            print(x)
        else:
            print(y)
    

    第二种定义方式,有参函数

    def self_max(x,y):
        if x>y:
            print(x)
        else:
            print(y)
    

    第三种定义方式,空函数

    def self_max():
        pass
    

    函数返回值

    return 默认返回None
    return 可以返回任意数据类型的数据
    当return 返回多个值的时候,会以元组的形式把多个值包在一起
    return 会终止函数

    函数的两个阶段

    1. 定义阶段:定义阶段的x和y被称为形参,形参具有描述意义,类似于变量名,不为具体的数据类型
    2. 调用阶段:调用阶段的x和y被称为实参,实参必须是具体的某种数据类型

    形参

    默认形参:值不需要改变,并且经常使用,默认形参必须在位置形参后面
    关键字形参:在函数定义阶段,提前赋值给形参

    关键字实参

    用于函数调用阶段,找到与形参的对应关系,并赋值给对应的形参

    面试经常问,不推荐使用

    可变长实参

    def selfmax(a,b,c,d,e,f,g,h=1,g=3)
        print(a,b,c,d,e,f,g,h)
    a= [1,2,3,4,5,6,7,8,9] # *会把元组或者列表打散一个个做为实参传个函数
    b= {'x':10,'y':12}  # **会把这个字典达三成键值对的形式做为实参传给函数
    selfmax(*a,**b)
    

    可变长形参

    def self_max(*a,**b)
        print(a)
        print(b)
    
    self_max(1,2,3,4,5,6,7,x=6,y=9,z=20)
    

    *a 接收了所有的位置实参,然后以元组的形式保存下来
    **b 接受了所有的关键字参数,然后以字典的形式保存下来

    约定俗成

    "*" 后面必须得写args,"**"后面必须得写kwargs,约定俗称的一种规范

  • 相关阅读:
    P1908 逆序对
    P3834 【模板】可持久化线段树 1(主席树)
    BZOJ 4300: 绝世好题
    Codevs 2185【模板】最长公共上升子序列
    P1439 【模板】最长公共子序列
    P3865 【模板】ST表
    【转】良心的可持久化线段树教程
    Codevs 1299 切水果
    P3388 【模板】割点(割顶)&& 桥
    P3805 【模板】manacher算法
  • 原文地址:https://www.cnblogs.com/wsxiaoyao/p/10946656.html
Copyright © 2011-2022 走看看