字符串及函数

字符串对象:
    1、什么是字符串
        肉眼可以识别,具有特殊含义的字符组成串
    
    2、python如何表示字符串(定义字符串)
        -- 若数据类型语言的特性决定的:
            ' '-- 单引号
            " "-- 双引号
            """ """-- 三引号
        -- str
            s = str("字符串")
    3、字符串的常见方法:
        

        |-- capitalize()        # 让字符串首字母大写(规范化每段的第一句话)
        |-- center(width,[fillchar])    # 设置字符串安装长度居中,fillchar默认是空格,可以自定义
        |-- ljust            # 左对齐,fillchar默认是空格,可以自定义
        |-- rjust            # 右对齐,fillchar默认是空格,可以自定义
        |-- count()            # 统计字符或者字符串出现的次数
        |-- endswith()            # 判断字符串是否以xxx结尾
        |-- startswith()        # 判断字符串是否以xxx开头

        |-- index            # 查找字符或者字符串在字符串中第一次出现的位置,
                            如果字符或者字符串不存在,则抛出异常
        |-- rindex            # 查找字符或者字符串在字符串中最后一次出现的位置
        |-- find            # 查找字符或者字符串在字符串中第一次出现的位置,
                            如果字符或者字符串不存在,则返回-1
        |-- rfind            # 查找字符或者字符串在字符串中最后一次出现的位置
        
        |-- encode(charset)        # encode python3提供python用来将字符串转换为字节的一个方法
            如果字节想转换为字符串呢?
            |-- decode(charset)    # 将字节转换为字符串

        |-- format            # 用来格式化字符串的
        |-- islower            # 判断是否都是小写字母
        |-- isupper            # 判断是否都是大写字母
        |-- istitle            # 判断字符串是否是标题
        |-- isspace
        |-- isdigit            # 判断是不是数字
        |-- isalnum            # 判断是否都由有效符号
        |-- isalpha            # 判断是否都由字母组成

        |-- title            # 将字符串转换为标题格式
        |-- lower            # 将字符串转换为小写字母
        |-- upper            # 将字符串转换为大写字母
            [   'ljust', '',, 'replace',   'rjust',, '', 
                    '', '',  '',]
        |-- join(iterable)        # 按照特定的符号,将一个可迭代对象拼接成字符串
        |-- split("符号")        # 按照特定的符号,将字符串切割,返回一个列表    
        |-- strip            # 清除字符串两侧的空格
        |-- lstrip            # 清除左侧空格
        |-- rstrip            # 清除右侧空格
        |-- replace("原字符串", "新值")    # 替换对应的字符串
        

切割一个字符串?

切片:
    python提供大家用来切割可迭代对象(容器)
    
    |-- iterable[start:]        # 从start位置开始切割,切到末尾
    |-- iterable[start:end]        # 从start位置开始切割,切到end位置为止,注意end并不包含 [)区间
    |-- iterable[start:end:step]    # 从start位置截取,到end位置结束,step为步长,步长默认是1
    
    注意:使用切片进行数据分割是时候,第三个参数是步长
        |-- 如果步长为正,则从左到右切
        |-- 如果步长为负,则从右向左切,但是下标还是从左而右数的
            注意:同时python也提供负索引(从右向左数,注意:最后一个元素是-1,
                倒数第二个是-2,以此类推

函数:

    过程   功能  行为  动作
    实现了某一功能或者某些功能指令的集合
    函数就是一个功能就是一个过程

 作用:

使用函数可以加强代码的复用性,提高程序编写的效率

调用:

函数创建成功后使用的过程

语法:

      def 函数名([参数列表]):

              “文档字符串”

              函数体/若干语句

函数分类:

参数列表

圆括号内是形式参数列表,有多个参数则使用逗号隔开
    形式参数不需要声明类型,也不需要指定函数返回值类型
    无参数,也必须保留空括号
    实参列表必须与形参列表一一对应
Return返回值

如果函数体中包含return语句,则结束函数执行并返回值
    如果函数体中不包含return语句,则返回None值

定义者来分类
        系统
            python官方定义好的,内置到cpython解释器内部的
         第三方
            (公司、组织、个人)
        自定义的

全局变量(local 本地变量):
    在python中,定义在py文件的变量,叫做全局变量
    特点:在代码运行时,变量始终有效(不是手动回收)

局部变量:
    定义在函数中的变量叫做局部变量,当函数被垃圾机制回收,该变量
    也会被回收掉,
    局部变量的作用域也只有在函数内有效

在函数外面不能访问到函数内部定义变量(局部变量)
反过来说,在函数内部可以访问本地变量(全局变量)

函数使用全局变量的注意点:
    如果一定要在函数中操作全局变量,使用global关键字来申明

函数的调用过程:
    函数调用本质就是压栈
    调用完成后会进行弹栈

            
注意:在若数据类型语言中,万物皆对象,函数也是对象

匿名函数
    没有名称的函数,称为匿名函数
    function 函数([参数列表]) {
        // 代码块
        xxx
        xxx
        return 返回值;
    }
    
    函数([参数列表])

    匿名函数
    function ([参数列表]) {
        // 代码块
        xxx;xxx;
        return 返回值;
    }

    def 函数名称(参数列表):
        # 函数体

    
    python在早期不支持早期不支持匿名函数的
    lambda表达式

    python中lambda的怎么书写:
        lambda [参数列表]: 代码        # 如果需要返回,则不需要写返回值

    在python中,lambda代指一个没有名称的函数(匿名函数)

    一般lambda,也就是匿名函数,一般表示简单的函数(一行或者两行)

    匿名函数的优点:简化代码
    缺点:降低代码的可读性,增加了代码维护成本


偏函数
    在python中,我们有时候需要调用某个函数,如果想讲该函数的中的某个参数设置一个固定值
    那么久可以使用偏函数的东东
    functools 系统内置模块

    import functools
    from functools import partial
    
    new_int = partial(int, base=8)

    partial(函数名称, 参数=固定的值 ... )

    简化操作


全局函数
    round
    abs
     max
     min
     input
      print
      type
       str
       tuple
            list
            set
            dict
            bin
            ord
            oct
            hex
            ascii

python的常见内置模块
    |-- os、os.path
    |-- sys
    |-- random
    |-- math
    |-- base64
    |-- hashlib
    |-- hmac
    |-- time
    |-- datetime
    ……

1、什么是模块?
    定义的xx.py文件就是模块

2、模块的分类
    通过模块的创建者
    |-- 系统内置模块
        |-- uuid、os、math、random
        python官方提供的cpython解释器提供的模块
    |-- 第三方模块
        |-- 程序员、组织、公司
        第三方模块模块需要使用的,首先需要安装模块
            |-- 在线安装(简单方便,前提条件是必须有网)
                pip install module_name
            |-- 离线安装包安装
                1、先下载离线安装包(xxx.zip)
                2、解压安装包
                3、安装中肯定 setup.py
                4、cmd:python install setup.py    
    |-- 自定义模块
        xxx.py


3、模块的导入问题
    使用import关键字导入
    import 模块名称
    import 模块名称 as alias(别名)    # 使用as做别名
    import xx.xx
    import xx.xx as alias
    from 包 import 模块名称            # python3强烈推荐这种方法

4、random模块
    该模块主要用来产生随机数(伪随机数)
    |-- randint(m,n)        # 产生随机整数[m, n]
    |-- random()            # 产生一个0~1内的随机数
    |-- choice()            # 在序列(seq)中随机筛选一个元素
    |-- uniform()            # 产生的基于正态分布的随机数


5、math模块
    math主要的作用数学运算
    |-- ceil            # 向上取整
    |-- floor            # 向下取整
    注意:全局函数的中round        # 四舍五入
    |-- e                # 自然常数
    |-- fabs            # 求绝对值,等价于 全局函数abs
    |-- fmod            # 求模的
    |-- isnan()            # 判断某个数值不是数值
    |-- isfinite()            # 判断是否无限
    |-- pi                # 圆周率
    |-- pow()            # 幂次方,等价于 全局函数pow
    |-- sqrt()            # 开平方根

6、os
    系统的文件系统

    |-- chdir(path)            # 修改当前工作目录
    |-- curdir            # os属性,获取当前目录,注意是返回的相对路径
    |-- chmod()            # 修改权限,Linux
    |-- cpu_count()            # 返回cpu的核对应的线程数
    |-- getcwd()            # 获取当前目录,注意是返回的绝对路径 
    |-- getpid()            # 获取当前进程的进程编号
    |-- getppid()            # 获取当前进程的父进程的编程
    |-- kill()            # 通过进程编号杀死进程
    |-- os.linesep            # 对应系统的换行符
    |-- listdir()            # 返回对应目录下的文件及文件夹
    |-- makedirs()            # 创建目录,支持多层创建
    |-- mkdir()            # 创建目录,只支持一层创建
    |-- open()            # 创建文件,等价于全局open
    |-- pathsep            # 获取环境变量的分隔符 window ;  linux :
    |-- sep                # 路径的分隔符  window \\  linux /
    |-- remove(path)        # 删除文件
    |-- removedirs()        # 删除目录,支持多层删除,递归删除
    |-- system            # 执行终端命令

7、os.path

  |-- abspath(相对路径)        # 返回路径对应的绝对路径 dirname +  basename = abspath
    |-- altsep            # 查看python中的各种符号
    |-- basename            # 文件名称
    |-- dirname            # 文件所在的目录    
    |-- curdir            # 当前目录
    |-- exists            # 判断文件或者目录是否存在
    |-- getctime            # 创建时间
    |-- getmtime            # 修改时间
    |-- getsize            # 获取文件的大小,单位是字节
    |-- isdir            # 判断path是不是目录
    |-- isfile            # 判断path是不是文件
    |-- isabs            # 判断是不是绝对路径
    |-- islink            # 判断是不是链接
    |-- ismount            # 判断是不是挂载文件
    |-- join(p1, p2)        # 拼接路径
    |-- sep                # 路径分割符
    |-- split            # 分割路径    abspath = dirname +  basename
    |-- realpath            # 返回真实路径

8.sys模块
    |-- api_version            # python的内部版本号
    |-- argv()            # 接收脚本参数的,注意第一个参数是脚本名称
    |-- copyright            # 输出cpython的版权信息
    |-- sys.exit()            # 退出系统
    |-- getdefaultencoding()    # 获取默认编码,默认是utf-8
    |-- getfilesystemencoding()    # 获取文件系统默认编码,默认是utf-8
    |-- getrecursionlimit()        # 获取python对于递归的限制层数
    |-- setrecursionlimit(num)    # 重新设置递归的限制层数
    |-- getrefcount(对象)        # 获取对象的引用计数,垃圾回收机制中
    |-- getwindowsversion        # 获取窗口的版本信息
    |-- version()            # 获取版本信息

python的垃圾回收原理:
    引用计数为主,以标记清除和分代收集为辅

你可能感兴趣的:(字符串及函数)