• python——第九天


    今日目标:

     偏函数

     递归

     字符串对象

     切片

     常见排序和查找

     

     

    偏函数:

     python中存在一种函数的特殊使用,称为偏函数

     如果在调用某个函数时,恰好某一个或者,某一些参数都是一个固定值(正好不是默认值),

     为了方便调用,我们可以通过特殊手段修改默认值

    from functools import partial

    新的函数 = partial(原函数名称, 参数=新值)


    递归(recursion):
    递归就是函数调用函数本身


    求 1~n的和:


    注意:递归虽然非常好用,可以将一些复杂的问题,极度简化,使得可以通过递归解决一些复杂问题,
    但是递归是会重复压栈调用相同函数,所以栈内存会被大量占据,无法释放,
    容易出现:“栈溢出错误”(StackOverFlow)


    斐波那契数列:
    第三个元素,是前两个元素之和
    0 1
    1 1
    1 2


    求第n个项的元素是多少?


    案例:斐波那契数列的实现



    思考题:
    1、青蛙跳楼梯
    2、不死兔子:
    一对刚刚出生的兔子,四个月之后,会称为成年的兔子,成年兔子每月会生一对小兔子
    等N月时,共有多少对兔子




    字符串对象:
    字符串是基本数据类型,讲解了几种常见的创建方式
    "字符串"
    '字符串'
    """
    字符串
    """
    '''
    字符串
    '''

    str() 创建或者转换其他类型为字符串
    len(字符串) 获取字符串的长度

     字符串是一个有序的序列(sequence),也是一个可迭代对象,也有下标

      字符串[下标] # 某一个位置的字符

     

     通过while、for循环进行遍历

     

     字符常量:字符串本质是一种常量

     

     

    全局函数: 

     enumerate(可迭代对象)

     

     

    python是一门面向对象的编程语言,在面向对象的编程语言看来:

     万物皆对象

     

    字符串对象的常见方法和属性:

     ['capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 

     'expandtabs', 'find', 'format', 'format_map', 'index', 

     

     'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 

     'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 

     

     'join', 'ljust', 'lower', 'lstrip', 'maketrans', 

     'partition', 'removeprefix', 'removesuffix', 'replace', 'rfind',

     'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 

     'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate',

     'upper', 'zfill']

     

     

     |-- capitalize # 首字母大小

     |-- center # 文本居中对齐

     |-- ljust # 文本左对齐

     |-- rjust # 文本右对齐

     

     |-- count()

     |-- endswith()

     |-- startswith()

     |-- format()

     

     |-- find()

     |-- index()  

     |-- rindex()

     |-- rfind()

     

     |-- lstrip()

     |-- rstrip()

     |-- rstrip()

     

     

     |-- upper()

     |-- lower()

     

     |-- join()

     |-- split()

     

     

     |-- maketrans()

     |-- translate()

     

     

     

     |-- encode() # 编码转换,注意编码!!!!

     

     

     字节类型中的转换函数

     

     |-- decode()

     

     

     

     

    切片操作:

     python提供的用来切割和分割有序序列的一种技术

      list、tuple、字符串

     

     切片操作是基于下标进行切割

     

     对象[num1:] # 返回num1到结束的值

     对象[num1:num2] # 返回[num1, num2)的所有值

     对象[num1:num2:step] # step是步长,步长为负数,表示从右向左切割

     

     

    注意:python是支持付索引操作的!!!!

     

     

     

    课堂案例练习:

     输入字符串,判断该字符串是否是回文字符串

     

     

     

    排序:

     为数据排序,目的让数据有序,有序的数据可以使用各种查找算法,实现快速查找

     

     冒泡排序

     选择排序

     插入排序

     

     大O表示法

     时间复杂度:O(1) O(logN) O(n) O(nlogN) O(n^2)

     空间复杂度:

     

     算法稳定度:

     

     

     

    冒泡排序:

     [1, 3, 2, 10, -8, 9, -30, 7] n 最多n - 1

     

     [1, 2, 3, -8, 9, -30, 7, 10] # 第1个最大值

     [1, 2, -8, 3,-30, 7, 9, 10] # 第2个最大值

     [1, -8, 2, -30, 3, 7, 9, 10] # 第3个最大值

     [-8, 1, -30, 2, 3, 7, 9, 10] # 第4个最大值

     [-8, -30, 1, 2, 3, 7, 9, 10] # 第5个最大值

     [-30, -8, 1, 2, 3, 7, 9, 10] # 第6个最大值

     

     两两比较,找到最大值!!!

    ed7afac2a86c4d24a614780897269a67.jpg

     递归:

    b8737b1413bb49b78d119db63cb676e6.jpg

     

    ab37b99cd6394b47afe193dc5c217234.jpg

     

  • 相关阅读:
    界面控件DevExtreme——轻松将TreeList数据导出为PDF格式
    深入解析:前端跨域问题及其CORS、代理、JSONP、Nginx反向代理等解决方案
    NUAA操作系统OS实验及上机考试记录
    MySQL高级
    c# 的一些简单用法
    Centos7.9 安装 rabbitMq
    判断测试结束的标准有哪些?
    嵌入式Linux学习(1)——通信总线协议简介
    Linux小技巧之awk必知必会
    NAT 技术概览(二)
  • 原文地址:https://blog.csdn.net/2202_75594192/article/details/134484435