Python学习笔记(3)

目录

二十四、字符串

字符串驻留机制

查询操作

大小写转换方法

内容对齐操作的方法

字符串分割方法

字符串判断方法

字符串的替代与合并

字符串比较操作

字符串的切片操作

格式化字符串

字符串的编码和解码

二十五、函数

定义

作用

创建方式

参数传递

函数的返回值

函数的参数定义

变量的作用域

递归函数

斐波那契数列

二十六、Python的异常处理机制

try...except...结构

try...except...else结构

try...except...else...finally结构

traceback模块的使用


二十四、字符串

是一个不可变的字符序列

字符串驻留机制

仅保留一份相同且不可变字符串的方法,不同的值被存放在字符串的驻留池中,Python的驻留机制对相同的字符串只保留一份拷贝,后续创建相同字符串时,不会开辟新空间,而是把该字符串的地址赋给新创建的变量

驻留机制的几种情况(交互模式)

字符串的长度为0或1时

符合标识符的字符串

字符串只在编译时进行驻留,而非运行时

[-5.256]之间的整数数字

sys中的intern方法强制2个字符串指向同一个对象,如:a=sys.intern(b)

建议拼接的时候用join()方法,因为他是先计算出所有字符中的长度,然后再拷贝,只new一次对象,效率要比“+”高

查询操作

  1. index()

查找子串substr第一次出现的位置,如果查找的子串不存在时,则抛出ValueError

  1. rindex()

查找子串substr最后一次出现的位置,如果查找的子串不存在时,则抛出ValueError

  1. find()

查找子串substr第一次出现的位置,如果查找的子串不存在时,则返回-1

  1. rfind()

查找子串substr最后一次出现的位置,如果查找的子串不存在时,则返回-1

大小写转换方法

  1. upper() 都转成大写字母

  2. lower() 都转成小写字母

  3. swapcase() 大写字母转成小写字母,小写字母转成大写字母

  4. capitalize() 把第一个字符转换为大写,把其余字符转换为小写

  5. title() 把每个单词的第一个字符转换为大写,把每个单词的剩余字符转换为小写

内容对齐操作的方法

如果不明确填充的字符则默认为空格

center() 居中对齐

ljust() 左对齐

rjust() 右对齐

zfill() 右对齐,左边用0填充,

字符串分割方法

不指定默认分割空格

  1. split()

从左边开始分割

  1. rsplit

从右边开始分割

字符串判断方法

  1. isidentifier() 判断指定的字符串是不是合法的标识符

  2. isspace() 判断指定的字符串是否全部由空白字符组成(回车、换行,水平制表符)

  3. isalpha() 判断指定的字符串是否全部由字母组成

  4. isdecimal() 判断指定的字符串是否全部由十进制的数字组成

  5. isnumeric() 判断指定的字符串是否全部由数字组成

  6. isalnum() 判断指定的字符串是否全部由字母和数字组成

字符串的替代与合并

替换

replace() 第1个参数指定被替换的子串,第2个参数指定替换子串的字符串,该方法返回替换后得到的字符串,替换前的字符串不发生变化,调用该方法可以通过第3个参数指定最大替换次数。

合并

join() 将列表或元组中的字符串合并成一个字符串

字符串比较操作

>,>=,<,<=,==,!=

比较原理:两个以上的字符进行比较时,比较的是其ordinal value(原始值),调用内置函数ord可以得到指定字符的ordinal value。与内置函数ord对应的是内置函数chr,调用内置函数chr时指定ordinal value可以得到其对应的字符。

字符串的切片操作

[start:end;step]

格式化字符串

  1. %做占位符

  2. {}做占位符

字符串的编码和解码

二十五、函数

定义

执行特定的任务和完成特定功能的一段代码

作用

复用代码

隐藏实现细节

提高可维护性

提高可读性便于调试

创建方式

def 函数名([输入参数]):

函数体

[return xxx]

参数传递

形参:形式参数,位置在函数的定义处

实参:实际参数,位置在函数的调用处

形参与实参的名称可以不一致

位置传参

根据形参对应的位置进行实参传递

关键字传参

根据形参名称进行实参传递

在函数调用过程中

如果是不可变对象,在函数体的修改中不会影响实参的值

如果是可变对象,在函数体的修改中会影响实参的值

函数的返回值

函数在定义时,是否需要返回值,视情况而定

  1. 如果函数没有返回值【函数执行完毕后,不需要给调用处提供数据】return可以省略不写

  2. 函数的返回值,如果是一个,则直接返回类型

  3. 函数的返回值,如果是多个,返回的结果为元组

函数的参数定义

函数定义时,给形参设置默认值,只有与默认值不符的时候才需要传递实参

个数可变的位置参数(一次只能定义一个)

定义函数时,无法事先确定传递的位置实参的个数时,使用可变的位置参数

使用*定义个数可变的位置形参

结果为一个元组

个数可变的关键字参数(一次只能定义一个)

定义函数时,无法事先确定传递的关键字实参的个数时,使用可变的关键字参数

使用**定义个数可变的关键字形参

结果为一个字典

注:当同时定义个数可变的位置参数和关键字参数时,位置参数要定义在关键字参数前面

def fun(a,b,*,c,d) #从*之后的参数,在函数调用时,只能采用关键字传递

变量的作用域

局部变量

在函数内定义并使用的变量,只在函数内部有效,局部变量使用global声明,这个变量就会变成全局变量

全局变量

函数体外定义的变量,可作用于函数内外

递归函数

定义

如果在一个函数的函数体内调用了该函数本身,这个函数就称为递归函数

递归的组成部分

递归调用与递归终止条件

递归的调用过程

每递归调用一次函数,都会在栈内存分配一个栈帧

每执行完一次函数,都会释放相应的空间

递归的优缺点

优点: 思路和代码简单

缺点:占用内存多,效率低下

斐波那契数列

每一项等于前两项之和

如:1,1,2,3,5,8......

因此我们递归的时候只要调用第n-1和第n-2项并相加即可

若想输出前n位的数字

二十六、Python的异常处理机制

try...except...结构

try:

except xxx:

多个except结构

捕获异常的顺序按照子类后父类的顺序,为了避免遗漏可能出现的异常,可以在最后增加BaseException

try...except...else结构

try...except...else...finally结构

无论是否出现异常都会执行finally

traceback模块的使用

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

翎~翊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值