- 字符串
在 python 中字符串是基本数据类型,是一个不可变的字符序列- 字符串驻留机制
仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串的驻留池中,Python的驻留机制对相同的字符串只保留一份拷贝,后续创建相同字符串时,不会开辟新空间,而是把该字符串的地址赋值给新创建的变量 - 字符串的查询操作的方法
- index()
查找子串 substr 第一次出现的位置,如果查找的子串不存在时,则抛出 ValueError - rindex()
查找子串 substr 最后一次出现的位置,如果查找的子串不存在时,则抛出 ValueError - find()
查找子串 substr 第一次出现的位置,如果查找不存在时,则返回 -1 - rfind()
查找子串 substr 最后一次出现的位置,如果查找的子串不存在时,则返回 -1
- index()
- 字符串的大小写转换操作的方法
- upper()
把字符串中所有字符都转成大写字母 - lower()
把字符串中所有字符串都转成小写字母 - swapcase()
把字符串中所有大写字母转成小写字母,把所有小写字母都转成大写字母 - capitalize()
把第一个字母转换为大写,把其余字符转换为小写 - title()
把每个单词的第一个字符转换为大写,把每个单词的剩余字符串转换为小写
- upper()
- 字符串内容对齐操作的方法
- center()
居中对齐,第1个参数指定宽度。第 2 个参数指定填充符。第 2 个参数是可选的。默认是空格,如果设置宽度小于实际宽度,则返回源字符串 - ljust()
左对齐。第1个参数指定宽度。第 2 个参数指定填充符。第 2 个参数是可选的。默认是空格,如果设置宽度小于实际宽度,则返回源字符串 - rjust()
右对齐。第1个参数指定宽度。第 2 个参数指定填充符。第 2 个参数是可选的。默认是空格,如果设置宽度小于实际宽度,则返回源字符串 - zfill()
右对齐。左边用 0 填充,该方法只接收一个参数,用于指定字符串的宽度,如果设置宽度小于实际宽度,则返回源字符串
- center()
- 字符串的分割操作
- split()
从字符串的左边开始分割,默认的分割符是空格字符串,返回值都是一个列表以通过参数sep来指定分割字符串的是 分隔符通过参数maxsplit 指定分割字符串时的最大分割次数,在经过最大分割次数之后,剩余的子串会单独作为一部分例:lst = a.split( sep='&',maxsplit = 3 ) // 分隔符 & 分割次数 3 - rsplit()
从字符串的右边开始分割,默认的分割符是空格字符串,返回值都是一个列表以通过参数sep来指定分割字符串的是 分隔符通过参数maxsplit 指定分割字符串时的最大分割次数,在经过最大分割次数之后,剩余的子串会单独作为一部分
- split()
- 判断字符串操作的方法
- isidentifier()
判断指定的字符串是不是合法的标识符 - isspace()
判断指定的字符串是否全部由空白字符组成(回车、换行、水平制表符) - isalpha()
判断指定的字符串是否全部由字母组成 - isdecimal()
判断指定字符串是否全部由十进制的数字组成 - isnumeric()
判断指定的字符串是否全部由数字组成 - isalnum()
判断指定的字符串是否全部由字母和数字组成
- isidentifier()
- 字符串操作的其他方法
- replace()
字符串替换第 1 个参数指定被替换的子串,第 2 个参数指定替换子串的字符串,该方法返回替换后得到的字符串,替换前的字符串不发生变化,调用该方法时可以通过指定第 3 个参数来指定最大替换次数s = 'hello, python,python's1 = s.replace( 'python' , 'java',2 ) # 将 s 中的 python 替换成 java 替换 2 次 - join()
将列表或元组中的字符串合并成一个字符串lst = ['hello' , 'python' , 'java']print( '|' , join( lst ) ) # 输出 hello|python|java 其中 | 可以替换成任意值传递t= ('hello' , 'python' , 'java')print( '|' , join( t) ) # 输出 hello|python|java 其中 | 可以替换成任意值传递
- replace()
- 字符串的比较操作
- 运算符
>、>=、<、<=、==、!= - 比较规则
首先比较俩个字符串中的第一个字符,如果相等则继续比较下一个字符,依次比较下去,直到俩个字符串中的字符不相等时,其比较结果就是俩个字符串的比较结果,俩个字符串中的所有后续字符将不再比较 - 比较原理
两个字符进行比较时,比较的是其 ordinal value(原始值),调用内置函数 ord 可以得到指定字符的 ordinal value。与内置函数 ord 对应的是内置函数 chr,调用内置函数 chr 时指定 原始值可以得到其对应的字符
- 运算符
- 格式化字符串
- % 做占位符
print( " name :%s " % (name) ) - {} 做占位符
print( " name :{0} " ,format(name) )print( " name {name}")
- % 做占位符
- 字符串驻留机制
- 函数
函数就是执行特定任务和以完成特定功能的一段代码函数返回多个值时,结果为元组- 函数的创建
def 函数名 ([ 输入参数 ]): 函数体 [return xxx] - 函数的调用
函数名 ([函数参数]) - 函数的参数
- 函数调用的参数传递
位置实参: 根据形参对应的位置进行实参传递关键字实参: 根据形参名称进行实参传递 - 函数定义默认值参数
函数定义时,给形参设置默认值,只有与默认值不符的时候才需要传递实参 - 个数可变的位置参数
定义函数时,可能无法实现确定传递的位置实参的个数时,使用可变的位置参数使用 * 定义个数可变的位置形参结果为一个元组注: 个数可变的位置参数,只能有 1 个例def fun(*args) print(args)fun(1,2,3) # 输出 (1,2,3) 是个元组 - 个数可变的关键字形参
定义函数时,无法实现确定传递的关键字实参的个数时,使用可变的关键字形参使用 ** 定义个数可变的关键字形参结果为一个字典注: 个数可变的关键字参数,只能有 1 个 在一个函数定义过程中,既有个数可变的关键字形参,也有个数可变的位置形参。要求:个数可变的位置形参放在个数可变的关键字形参之前例:def fun(**args) print(args)fun(a = 1,b = 2.c = 3) # 输出 {'a':1,'b':2,'c':3}, 是个字典
- 函数调用的参数传递
- 变量的作用域
程序代码能访问该变量的区域根据变量的有效范围可分为- 局部变量
在函数内定义并使用的变量,只在函数内部有效,局部变量使用global 声明,这个变量就会变成全局变量 - 全局变量
函数体外定义的变量,可作用于函数内外
- 局部变量
- 递归函数
如果在一个函数的函数体内调用了该函数本身额,这个函数就称为递归函数由 递归调用 和递归终止条件组成- 递归的调用过程
每递归调用一次函数,都会在栈内存分配一个栈帧每执行完一次函数,都会释放相应的空间 - 递归的优缺点
缺点: 占用内存多,效率低下优点:思路和代码简单
- 递归的调用过程
- 函数的创建
- Bug
- 异常处理机制
- try ... except ... else 结构
如果 try 块中没有抛出异常,则执行 else 块,如果 try 中抛出异常,则执行 except 块 - try ... except ... else .. finally结构
finally 块无论是否发生异常都会被执行,能常用来释放 try 块中申请的资源 - traceback 模块
使用 traceback 模块打印异常信息traceback .print_exc()
- try ... except ... else 结构
- 异常处理机制
- 类与对象
- 类的创建
class student : pass - 类的组成
- 类属性
- 实例方法
- 静态方法
- 类方法
- 对象的创建
实例名 = 类名 () - 类属性、类方法、静态方法
- 类属性
类中方法外的变量成为类属性,被该类的所有对象所共享 - 类方法
使用 @classmethod修饰的方法,使用类名直接访问的方法 - 静态方法
使用 @staticmethod修饰的方法,使用类名直接访问的方法
- 类属性
- 类的创建
Python基础知识整理二(详细)
最新推荐文章于 2022-09-11 11:18:20 发布