zoukankan      html  css  js  c++  java
  • python第十四课--排序及自定义函数

    1.排序

    特点:

    1).升序:从小到大

    2).降序:从大到小

    课堂实现选择排序:参看老郭选择排序.py文件

    2.函数:(方法/method)

    自定义函数:

    概念:它表示一段作用范围(作用域),当中封装了一段业务逻辑代码,此范围有名字,

    我们需要调用函数名,才能去执行它;

    好处:

    1).代码的复用性变强

    2).代码的扩展性和维护性变好

    3).代码的阅读性变好

    函数有五要素:

    ①.函数修饰符:必须都是def开头

    ②.函数返回值:函数执行完毕可能存在有返回值/没有返回值两种情况

    ③.函数名:标识符(规则和规范),自己定义函数的名字

    ④.形参列表定义在函数名后的小括号内,可以没有也可以定义多个

    ⑤.函数体封装的功能代码

    格式:

    ① ③(④):





    函数的内存执行过程:

    栈:

    特点:分为栈顶部分和栈底部分,满足先进后出,只运行栈顶的内容;

    函数method一旦被执行了,先进栈(入栈) --> 在栈顶开辟空间执行,

    如果执行到一半调用了别的函数method02,那么method就被压栈了(顶->底),

    method02在开辟空间执行,等到method02执行完毕了,它就被弹栈(出栈)了,

    然后method01获取了执行权,它会先升栈(底->顶),到method执行完毕了,它就被弹栈(出栈)了

    【注意事项】:

    1).形式参数也称形参,实际参数也称实参

    2).形式参数出现在定义函数的时候,没有具体的内容,只是开了个口

    3).实际参数出现在函数调用的时候,将实际参数给到形式参数 --> 称为参数传递,

    之后参与运算的全部都是实参而已

    4).return关键字有两层含义:

    ①.表示函数的结束②.将结果返回给函数的调用者/调用处

    5).python中没有函数重载的现象:

    什么是函数重载?

    在同一个作用范围内定义相同名字的函数,但是形参不同(个位、位置),

    在调用函数的时候,通过传入的参数的不同,能得知到底需要执行哪一个函数

    python中如果在相同的作用域中定义多个重名的函数,

    最后的一个函数,会将之前所有的同名函数全部覆盖,

    所以只能调用最后一个同名函数执行

    6).与return同一作用范围内的后面不要显示的书写任何代码,因为永远不可能被执行到,不会报错

    7).return后面也可以不定义任何有效的数据,但是这样会将None值返回给调用处,一般没有什么意义

    4中最常见的自定义函数模型

    1).无参无返回值

    2).无参有返回值

    3).有参无返回值

    4).有参有返回值

    参数的定义和使用细节:

    分类:

    1).默认参数:

    #在设计自定义函数的时候,就存在一个默认值,就算在调用的时候不显示的传入实参,也不会报错

    #会用默认值来代替参与后期的运算

    def m1(name='zs',age=23):
    
    print(name,age)
    
    m1("李四")
    
    # m1(18)

    2).一般参数:

    #定义函数的时候有几个参数,在调用函数的时候就需要显示的传递几个实参,

    #而且要保证位置不能传错,否则会造成数据内容的不合理
    def m2(name,age,sex):
    
    print(name,age,sex)
    
    m2("王五",30,"")

    3).关键字参数:
    def m3(name,age,sex):
    
    print(name,age,sex)
    
    m3(age=25,name="钱八",sex="")

    4).#可变参数:(重要)

    格式:

    def 函数名(*args,**kwargs):

    函数体

    参数的讲解:

    *args:可以接受0~无穷多个单值,将它们存入到一个元祖中使用

    **kwargs:接可以受0~无穷多个键值对,将它们存入到一个字典中使用
    def m4(*args,**kwargs):
    
    print(args,type(args))
    
    print(kwargs,type(kwargs))
    
    # m4()
    
    m4(10,0,3.14,True,"abc",name="老郭",hobby="开车")
  • 相关阅读:
    hive调度脚步p_fact_bi_browser_t_job.sh
    public_db.cfg数据库配置公共变量设置
    public_time.cfg时间公共变量设置
    sqoop导出数据到关系数据库export_fact_bi_browser_t_job.sh
    sqoop导入数据到hdfs初始化
    审批流程
    关于触发器修改自身数据表实例
    Oracle触发器修改自身字段解决方案
    JSON.stringify(国丰PU3023)
    $("#lblMsg").html("请先选择一行网格数据!");
  • 原文地址:https://www.cnblogs.com/hankleo/p/10427053.html
Copyright © 2011-2022 走看看