Python基础语法笔记

文章目录


前言

本文章是为了Python入门笔记,方便后续学习中建议查看相应的知识点


1、变量、运算符与数据类型

1.1 注释

  1. 在Python 中, # 表示注释,作用于整行。
  2. ‘’’ ‘’’ 或者 “”" “”" 表示区间注释,在三引号之间的所有内容被注释

1.2 运算符

算术运算符

操作符 名称
+
-
*
/
// 整除
% 取余
**

比较运算符

操作符 名称
> 大于
>= 大于等于
< 小于
<= 小于等于
== 等于
!= 不等于

逻辑运算符

操作符 名称
and
or
not

位运算符

操作符 名称
~ 按位非
& 按位与
按位或
^ 按位异或
<< 左移
>> 右移
口诀:非是取反,与是一假即假,或是一真即真,异或则有真有假为真,同真同假为假

其他运算符

操作符 名称
is
not is 不是
in
not in 不在

注意:

  1. is, is not 对比的是两个变量的内存地址
  2. ==, != 对比的是两个变量的值

即:

  1. 假如比较的两个变量,指向的都是地址不可变的类型(str等),那么is,is not 和 ==,!= 是完全等价的。
  2. 假如对比的两个变量,指向的是地址可变的类型(list,dict,tuple等),则两者是有区别的。

运算符的优先级

  1. 一元运算符优于二元运算符。如正负号。
  2. 先算术运算,后移位运算,最后位运算。例如 1 << 3 + 2 & 7等价于 (1 << (3 + 2)) & 7
  3. 逻辑运算最后结合

1.3 变量与赋值

  1. 在使用变量之前,需要对其先赋值。
  2. 变量名可以包括字母、数字、下划线、但变量名不能以数字开头。
  3. Python 变量名是大小写敏感的,foo != Foo。

1.4 数据类型与转换

类型信息

类型 名称
int 整型
float 浮点型
bool 布尔型
注意:
确定 bool(X) 的值是 True 还是 False ,就看 X 是不是空,空的话就是 False ,不空的话就是 True 。
  1. 对于数值变量(整型、浮点型、布尔型), 0 , 0.0 都可认为是空的。
  2. 对于容器变量(字符、元组、列表、字典和集合),里面没元素就是空的。

获取类型信息

  1. type(object)
  2. isinstance(object, classinfo)

注:

  1. type() 不会认为子类是一种父类类型,不考虑继承关系。
  2. isinstance() 会认为子类是一种父类类型,考虑继承关系。
    如果要判断两个类型是否相同推荐使用 isinstance() 。

类型转换

  1. 转换为整型 int(x, base=10)
  2. 转换为字符串 str(object=‘’)
  3. 转换为浮点型 float(x)

1.5 print()函数

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
  1. 将对象以字符串表示的方式格式化输出到流文件对象file里。其中所有非关键字参数都按 str() 方式进行转换为字符
    串输出;
  2. 关键字参数 sep 是实现分隔符,比如多个参数输出时想要输出中间的分隔字符;
  3. 关键字参数 end 是输出结束时的字符,默认是换行符 \n ;
  4. 关键字参数 file 是定义流输出的文件,可以是标准的系统输出 sys.stdout ,也可以重定义为别的文件;
  5. 关键字参数 flush 是立即把内容输出到流文件,不作缓存。

2、位运算

2.1 原码、反码和补码

  1. 原码:就是其二进制表示(注意,有一位符号位)。
  2. 反码:正数的反码就是原码,负数的反码是符号位不变,其余位取反(对应正数按位取反)。
  3. 补码:正数的补码就是原码,负数的补码是反码+1。

注意:
符号位:最高位为符号位,0表示正数,1表示负数。在位运算中符号位也参与运算。

2.2 利用位运算实现快速计算

  1. 通过 << , >> 快速计算2的倍数问题,左乘右除
  2. 通过 ^ 快速交换两个整数。
  3. 通过 a & (-a) 快速获取 a 的最后为 1 位置的整数。
00 00 01 01 -> 5
&
11 11 10 11 -> -5
---
00 00 00 01 -> 1


00 00 11 10 -> 14
&
11 11 00 10 -> -14
---
00 00 00 10 -> 2

2.3 利用位运算实现整数集合

一个数的二进制表示可以看作是一个集合(0 表示不在集合中,1 表示在集合中)。
比如集合 {1, 3, 4, 8} ,可以表示成 01 00 01 10 10 而对应的位运算也就可以看作是对集合进行的操作。

元素与集合的操作:

a | (1<<i) -> 把 i 插入到集合中
a & ~(1<<i) -> 把 i 从集合中删除
a & (1<<i) -> 判断 i 是否属于该集合(零不属于,非零属于)

集合之间的操作:

a 补 -> ~a
a 交 b -> a & b
a 并 b -> a | b
a 差 b -> a & (~b)

3、条件语句

3.1 if语句

if expression:
	expr_true_suite
  1. if 语句的 expr_true_suite 代码块只有当条件表达式 expression 结果为真时才执行,否则将继续执行紧跟在该代码块后面的语句。
  2. 单个 if 语句中的 expression 条件表达式可以通过布尔操作符 and , ornot 实现多重条件判断。

3.2 if-else语句

if expression:
	 expr_true_suite
else:
	 expr_false_suite

Python 提供与 if 搭配使用的 else,如果 if 语句的条件表达式结果布尔值为假,那么程序将执行 else 语句后的代码。

3.3 if-elif-else语句

if expression1:
	 expr1_true_suite
elif expression2:
	 expr2_true_suite
	.
	.
elif expressionN:
	 exprN_true_suite
else:
	 expr_false_suite

elif 语句即为 else if,用来检查多个表达式是否为真,并在为真时执行特定代码块中的代码。

3.4 assert关键词

assert 3 > 7
# AssertionError
  1. assert 这个关键词我们称之为“断言”,当这个关键词后边的条件为 False 时,程序自动崩溃并抛出 AssertionError 的异常。
  2. 在进行单元测试时,可以用来在程序中置入检查点,只有条件为 True 才能让程序正常工作。
  3. 注意:
    if 语句支持嵌套,即在一个 if 语句中嵌入另一个 if 语句,从而构成不同层次的选择结构。Python 使用缩进而不是大括号来标记代码块边界,因此要特别注意 else 的悬挂问题。

4、循环语句

4.1 while循环

while 语句最基本的形式包括一个位于顶部的布尔表达式,一个或多个属于 while 代码块的缩进语句。

while 布尔表达式:
	代码块

while 循环的代码块会一直循环执行,直到布尔表达式的值为布尔假。

如果布尔表达式不带有 <、>、==、!=、in、not in 等运算符,仅仅给出数值之类的条件,也是可以的。当 while 后写入一个非零整数时,视为真值,执行循环体;写入 0 时,视为假值,不执行循环体。也可以写入 str、list 或任何序列,长度非零则视为真值,执行循环体;否则视为假值,不执行循环体。

4.2 while-else循环

while 布尔表达式:
	代码块
else:
	代码块

while 循环正常执行完的情况下,执行 else 输出,如果 while 循环中执行了跳出循环的语句,比如 break ,将不执行 else 代码块的内容。

4.3 for循环

for 循环是迭代循环,在Python中相当于一个通用的序列迭代器,可以遍历任何有序序列,如 str、list、tuple 等,也可以遍历任何可迭代对象,如 dict

for 迭代变量 in 可迭代对象:
	代码块

每次循环,迭代变量被设置为可迭代对象的当前元素,提供给代码块使用。

4.4 for-else循环

for 迭代变量 in 可迭代对象:
	代码块
else:
	代码块

for 循环正常执行完的情况下,执行 else 输出,如果 for 循环中执行了跳出循环的语句,比如 break ,将不执行 else 代码块的内容,与 while - else 语句一样。

4.5 range()函数

range([start,] stop[, step=1])
  1. 这个BIF(Built-in functions)有三个参数,其中用中括号括起来的两个表示这两个参数是可选的。
  2. step=1 表示第三个参数的默认值是1。
  3. range 这个BIF的作用是生成一个从 start 参数的值开始到stop 参数的值结束的数字序列,该序列包含 start 的值但不包含 stop 的值。

4.6 enumerate()函数

enumerate(sequence, [start=0])
  1. sequence – 一个序列、迭代器或其他支持迭代对象。
  2. start – 下标起始位置。
  3. 返回 enumerate(枚举) 对象

4.7 break语句

break 语句可以跳出当前所在层的循环。

4.8 continue语句

continue 终止本轮循环并开始下一轮循环。

4.9 pass语句

pass 语句的意思是“不做任何事”,如果你在需要有语句的地方不写任何语句,那么解释器会提示出错,而 pass 语句就是用来解决这些问题的。

pass 是空语句,不做任何操作,只起到占位的作用,其作用是为了保持程序结构的完整性。尽管 pass 语句不做任何操作,但如果暂时不确定要在一个位置放上什么样的代码,可以先放置一个 pass 语句,让代码可以正常运行。

4.10 推导式

  1. 列表推导式
[ expr for value in collection [if condition] ]

例子:

x = [(i, i ** 2) for i in range(6)]
print(x)
# [(0, 0), (1, 1), (2, 4), (3, 9), (4, 16), (5, 25)]
x = [i for i in range(100) if (i % 2) != 0 and (i % 3) == 0]
print(x)
# [3, 9, 15, 21, 27, 33, 39, 45, 51, 57, 63, 69, 75, 81, 87, 93, 99]
  1. 元组推导式
( expr for value in collection [if condition] )

例子:

a = (x for x in range(10))
print(a)
# <generator object <genexpr> at 0x0000025BE511CC48>

print(tuple(a))
# (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
  1. 字典推导式
{
    key_expr: value_expr for value in collection [if condition] }

例子:

b = {
   i: i % 2 == 0 for i in range(10) if i % 3 == 0}
print(b)
# {0: True, 3: False, 6: True, 9: False}
  1. 集合推导式
{
    expr for value in collection [if condition] }

例子:

c = {
   i for i in [1, 2, 3, 4, 5, 5, 6, 4, 3, 2, 1]}
print(c)
# {1, 2, 3, 4, 5, 6}
  1. 其它
d = 'i for i in "I Love Lsgogroup"'
print(d)
# i for i in "I Love Lsgogroup"

e = (i for i in range(10))
print(e)
# <generator object <genexpr> at 0x0000007A0B8D01B0>
print(next(e)) # 0
print(next(e)) # 1
for each in e:
print(each, end=' ')
# 2 3 4 5 6 7 8 9

s = sum([i for i in range(101)])
print(s) # 5050
s = sum((i for i in range(101)))
print(s) # 5050

5、异常处理

异常就是运行期检测到的错误。计算机语言针对可能出现的错误定义了异常类型,某种错误引发对应的异常时,异常处理程序将被启动,从而恢复程序的正常运行。

5.1 Python 标准异常总结

  1. BaseException:所有异常的基类
  2. Exception:常规异常的基类
  3. StandardError:所有的内建标准异常的基类
  4. ArithmeticError:所有数值计算异常的基类
  5. FloatingPointError:浮点计算异常
  6. OverflowError:数值运算超出最大限制
  7. ZeroDivisionError:除数为零
  8. AssertionError:断言语句(assert)失败
  9. AttributeError:尝试访问未知的对象属性
  10. EOFError:没有内建输入,到达EOF标记
  11. EnvironmentError:操作系统异常的基类
  12. IOError:输入/输出操作失败
  13. OSError:操作系统产生的异常(例如打开一个不存在的文件)
  14. WindowsError:系统调用失败
  15. ImportError:导入模块失败的时候
  16. KeyboardInterrupt:用户中断执行
  17. LookupError:无效数据查询的基类
  18. IndexError:索引超出序列的范围
  19. KeyError:字典中查找一个不存在的关键字
  20. MemoryError:内存溢出(可通过删除对象释放内存)
  21. NameError:尝试访问一个不存在的变量
  22. UnboundLocalError:访问未初始化的本地变量
  23. ReferenceError:弱引用试图访问已经垃圾回收了的对象
  24. RuntimeError:一般的运行时异常
  25. NotImplementedError:尚未实现的方法
  26. SyntaxError:语法错误导致的异常
  27. IndentationError:缩进错误导致的异常
  28. TabError:Tab和空格混用
  29. SystemError:一般的解释器系统异常
  30. TypeError:不同类型间的无效操作
  31. ValueError:传入无效的参数
  32. UnicodeError:Unicode相关的异常
  33. UnicodeDecodeError:Unicode解码时的异常
  34. UnicodeEncodeError:Unicode编码错误导致的异常
  35. UnicodeTranslateError:Unicode转换错误导致的异常

异常体系内部有层次关系,Python异常体系中的部分关系如下所示:
Python异常体系中的部分关系

5.2Python标准警告总结

  1. Warning:警告的基类
  2. DeprecationWarning:关于被弃用的特征的警告
  3. FutureWarning:关于构造将来语义会有改变的警告
  4. UserWarning:用户代码生成的警告
  5. PendingDeprecationWarning:关于特性将会被废弃的警告
  6. RuntimeWarning:可疑的运行时行为(runtime behavior)的警告
  7. SyntaxWarning:可疑语法的警告
  8. ImportWarning:用于在导入模块过程中触发的警告
  9. UnicodeWarning:与Unicode相关的警告
  10. BytesWarning:与字节或字节码相关的警告
  11. ResourceWarning:与资源使用相关的警告

5.3 try-except 语句

try:
	检测范围
except Exception[as reason]:
	出现异常后的处理代码

try 语句按照如下方式工作:

  1. 首先,执行 try 子句(在关键字 try 和关键字 except 之间的语句)
  2. 如果没有异常发生,忽略 except 子句, try 子句执行后结束。
  3. 如果在执行 try 子句的过程中发生了异常,那么 try 子句余下的部分将被忽略。如果异常的类型和 except 之后的名称相符,那么对应的 except 子句将被执行。最后执行 try 语句之后的代码。
  4. 如果一个异常没有与任何的 except 匹配,那么这个异常将会传递给上层的 try 中。

一个 try 语句可能包含多个 except 子句,分别来处理不同的特定的异常。最多只有一个分支会被执行。
一个 except 子句可以同时处理多个异常,这些异常将被放在一个括号里成为一个元组。

5.4 try-except-finally语句

try:
	检测范围
except Exception[as reason]:
	出现异常后的处理代码
finally:
	无论如何都会被执行的代码

不管 try 子句里面有没有发生异常, finally 子句都会执行。如果一个异常在 try 子句里被抛出,而又没有任何的 except 把它截住,那么这个异常会在 finally 子句执行后被抛出。

5.5 try-except-else语句

try:
	检测范围
except(Exception1[, Exception2[,...ExceptionN]]]):
	发生以上多个异常中的一个,执行这块代码
else:
	如果没有异常执行这块代码

如果在 try 子句执行时没有发生异常,Python将执行 else 语句后的语句。
例子:

dict1 = {
   'a': 1, 'b': 2, 'v': 22}
try:
	 x = dict1['y']
except LookupError:
	 print('查询错误')
except KeyError:
	 print('键错误')
else:
	print(x)
	
# 查询错误

try-except-else 语句尝试查询不在 dict 中的键值对,从而引发了异常。这一异常准确地说应属于 KeyError ,但由于 KeyErrorLookupError 的子类,且将 LookupError 置于 KeyError 之前,因此程序优先执行该 except 代码块。

所以,使用多个 except 代码块时,必须坚持对其规范排序,要从最具针对性的异常到最通用的异常。

5.6 raise语句

Python 使用 raise 语句抛出一个指定的异常。

try:
	 raise NameError('HiThere')
except NameError:
	print('An exception flew by!')
	
# An exception flew by!

6、列表

简单数据类型

  1. 整型 <class ‘int’>
  2. 浮点型 <class ‘float’>
  3. 布尔型 <class ‘bool’>

容器数据类型

  1. 列表 <class ‘list’>
  2. 元组 <class ‘tuple’>
  3. 字典 <class ‘dict’>
  4. 集合 <class ‘set’>
  5. 字符串 <class ‘str’>

6.1 列表的定义

列表是有序集合,没有固定大小,能够保存任意数量任意类型的 Python 对象,语法为 [元素1, 元素2, …, 元素n]

  1. 关键点是「中括号 []」和「逗号 ,」
  2. 中括号 把所有元素绑在一起
  3. 逗号 将每个元素一一分开

6.2 列表的创建

1. 创建一个普通列表
x = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
print(x, type(x))
# ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'] <class 'list'>

2. 利用 range() 创建列表
x = list(range(1, 11, 2))
print(x, type(x))
# [1, 3, 5, 7, 9] <class 'list'>

3. 利用推导式创建列表
x = [i for i in range(1, 10, 2)]
print(x, type(x))
# [1, 3, 5, 7, 9] <class 'list'>

4. 创建一个混合列表
mix = [1, 'lsgo', 3.14, [1, 2, 3]]
print(mix) 
# [1, 'lsgo', 3.14, [1, 2, 3]]

5. 创建一个空列表
empty = []
print(empty) 
# []

注意:
由于list的元素可以是任何对象,因此列表中所保存的是对象的指针。即使保存一个简单的 [1,2,3] ,也有3个指针和3个整数对象。
如x = [a] * 4 操作中,只是创建4个指向list的引用,所以一旦 a 改变, x 中4个 a 也会随之改变。

6.3 向列表添加元素

  1. list.append(obj) 在列表末尾添加新的对象,只接受一个参数,参数可以是任何数据类型,被追加的元素在 list中保持着原结构类型。
  2. list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。

append()extend() 的区别:

  • 严格来说 append() 是追加,把一个东西整体添加在列表后,而 extend() 是扩展,把一个东西里的所有元素添加在列表后。
  1. list.insert(index, obj) 在编号 index 位置前插入 obj

6.4删除列表中的元素

  1. list.remove(obj) 移除列表中某个值的第一个匹配项
  2. list.pop([index=-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。

remove()pop() 的区别:

  • remove()pop() 都可以删除元素,前者是指定具体要删除的元素,后者是指定一个索引。
  1. del var1[, var2 ……] 删除单个或多个对象。
  • 如果知道要删除的元素在列表中的位置,可使用 del 语句。
  • 如果你要从列表中删除一个元素,且不再以任何方式使用它,就使用 del 语句;如果你要在删除元素后还能继续使用它,就使用方法 pop()

6.5 获取列表中的元素

  1. 通过元素的索引值,从列表获取单个元素,注意,列表索引值是从0开始的。
  2. 通过将索引指定为-1,可让Python返回最后一个列表元素,索引 -2 返回倒数第二个列表元素,以此类推。

切片的通用写法是 start : stop : step

  1. 情况 1 - “start :”
    以 step 为 1 (默认) 从编号 start 往列表尾部切片。
  2. 情况 2 - “: stop”
    以 step 为 1 (默认) 从列表头部往编号 stop 切片。
  3. 情况 3 - “start : stop”
    以 step 为 1 (默认) 从编号 start 往编号 stop 切片。
  4. 情况 4 - “start : stop : step”
    以具体的 step 从编号 start 往编号 stop 切片。注意最后把 step 设为 -1,相当于将列表反向排列。
  5. 情况 5 - " : "
    复制列表中的所有元素(浅拷贝)。

6.6 列表常见操作符

  1. 等号操作符: ==
  2. 连接操作符: +
  3. 重复操作符 :*
  4. 成员关系操作符: in 、 not in

「等号 ==」,只有成员、成员位置都相同时才返回True。
和元组拼接一样, 列表拼接也有两种方式,用「加号 +」和「乘号 *」,前者首尾拼接,后者复制拼接。

注意:
append() , extend() , insert() 可对列表增加元素,它们没有返回值,是直接修改了原数据对象。
连接操作符将两个list相加,需要创建新的 list 对象,从而需要消耗额外的内存,特别是当 list 较大时,尽量不要使用 “+” 来添加list。

6.7 列表的其它方法

  1. list.count(obj) 统计某个元素在列表中出现的次数
  2. list.index(x[, start[, end]]) 从列表中找出某个值第一个匹配项的索引位置
  3. list.reverse() 反向列表中元素
  4. list.sort(key=None, reverse=False) 对原列表进行排序。
    key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象 中的一个元素来进行排序。
    reverse – 排序规则, reverse = True 降序, reverse = False 升序(默认)。
    该方法没有返回值,但是会对列表的对象进行排序。

7、元组

7.1 元组的定义

「元组」定义语法为: (元素1, 元素2, …, 元素n)

  1. 小括号把所有元素绑在一起
  2. 逗号将每个元素一一分开

7.2 元组的创建

  1. Python 的元组与列表类似,不同之处在于tuple被创建后就不能对其进行修改,类似字符串。
  2. 元组使用小括号,列表使用方括号。
  3. 创建元组可以用小括号 (),也可以什么都不用,为了可读性,建议还是用 ()。
  4. 元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用

7.3 更新和删除一个元组

元组有不可更改 (immutable) 的性质,因此不能直接给元组的元素赋值,但是只要元组中的元素可更改 (mutable),那么我
们可以直接更改其元素,注意这跟赋值其元素不同。

7.4 元组相关的操作符

  1. 比较操作符
  2. 逻辑操作符
  3. 连接操作符 +
  4. 重复操作符 *****
  5. 成员关系操作符 in 、 not in

元组拼接 (concatenate) 有两种方式,用「加号 +」和「乘号 *」,前者首尾拼接,后者复制拼接。

7.5 内置方法

元组大小和内容都不可更改,因此只有 count 和 index 两种方法。

7.6 解压元组

  1. 解压(unpack)一维元组(有几个元素左边括号定义几个变量)
t = (1, 10.31, 'python')
(a, b, c) = t
print(a, b, c)
# 1 10.31 python
  1. 解压二维元组(按照元组里的元组结构来定义变量)
t = (1, 10.31, ('OK', 'python'))
(a, b, (c, d)) = t
print(a, b, c, d)
# 1 10.31 OK python
  1. 如果你只想要元组其中几个元素,用通配符「*」,英文叫 wildcard,在计算机语言中代表一个或多个元素。下例就是把多个元素丢给了 rest 变量。
t = 1, 2, 3, 4, 5
a, b, *rest, c = t
print(a, b, c) # 1 2 5
print(rest) # [3, 4]
  1. 如果你根本不在乎 rest 变量,那么就用通配符「*」加上下划线「_」。
a, b, *_ = t
print(a, b) # 1 2

8、字符串

8.1 字符串的定义

  1. Python 中字符串被定义为引号之间的字符集合。
  2. Python 支持使用成对的 单引号 或 双引号。
  3. 如果字符串中需要出现单引号或双引号,可以使用转义符号 ** 对字符串中的符号进行转义。
    Python的常用转义字符
转义字符 描述
\ \ 反斜杠符号
\ ’ 单引号
\ " 双引号
\ n 换行
\ t 横向制表符(TAB)
\ r 回车
  1. 原始字符串只需要在字符串前边加一个英文字母 r 即可。
  2. python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。

8.2 字符串的切片与拼接

  1. 类似于元组具有不可修改性
  2. 从 0 开始 (和 C 一样)
  3. 切片通常写成 start:end 这种形式,包括「 start 索引」对应的元素,不包括「 end 索引」对应的元素。
  4. 索引值可正可负,正索引从 0 开始,从左往右;负索引从 -1 开始,从右往左。使用负数索引时,会从最后一个元素开始计数。最后一个元素的位置编号是 -1。

8.3 字符串的常用内置方法

  1. capitalize() 将字符串的第一个字符转换为大写。
str2 = 'xiaoxie'
print(str2.capitalize()) # Xiaoxie
  1. lower() 转换字符串中所有大写字符为小写。
  2. upper() 转换字符串中的小写字母为大写。
  3. swapcase() 将字符串中大写转换为小写,小写转换为大写。
str2 = "DAXIExiaoxie"
print(str2.lower()) # daxiexiaoxie
print(str2.upper()) # DAXIEXIAOXIE
print(str2.swapcase()) # daxieXIAOXIE
  1. count(str, beg= 0,end=len(string)) 返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数。
str2 = "DAXIExiaoxie"
print(str2.count('xi')) # 2
  1. endswith(suffix, beg=0, end=len(string)) 检查字符串是否以指定子字符串 suffix 结束,如果是,返回True,否则返回 False。如果 begend 指定值,则在指定范围内检查。
  2. startswith(substr, beg=0,end=len(string)) 检查字符串是否以指定子字符串 substr 开头,如果是,返回True,否则返回 False。如果 begend 指定值,则在指定范围内检查。
str2 = "DAXIExiaoxie"
print(str2.endswith('ie')) # True
print(str2.endswith('xi')) # False
print(str2.startswith('Da')) # False
print(str2.startswith('DA')) # True
  1. find(str, beg=0, end=len(string)) 检测 str 是否包含在字符串中,如果指定范围 begend ,则检查是否包含在指定范围内,如果包含,返回开始的索引值,否则返回 -1。
  2. rfind(str, beg=0,end=len(string)) 类似于 find() 函数,不过是从右边开始查找。
str2 = "DAXIExiaoxie"
print(str2.find('xi')) # 5
print(str2.find('ix')) # -1
print(str2.rfind('xi')) # 9
  1. isnumeric() 如果字符串中只包含数字字符,则返回 True,否则返回 False
str3 = '12345'
print(str3.isnumeric()) # True
str3 += 'a'
print(str3.isnumeric()) # False
  1. ljust(width[, fillchar]) 返回一个原字符串左对齐,并使用 fillchar (默认空格)填充至长度 width 的新字符串。
  2. rjust(width[, fillchar]) 返回一个原字符串右对齐,并使用 fillchar (默认空格)填充至长度 width 的新字符串。
str4 = '1101'
print(str4.ljust(8, '0')) # 11010000
print(str4.rjust(8, '0')) # 00001101
  1. lstrip([chars]) 截掉字符串左边的空格或指定字符。
  2. rstrip([chars]) 删除字符串末尾的空格或指定字符。
  3. strip([chars]) 在字符串上执行 lstrip()rstrip()
str5 = ' I Love LsgoGroup '
print(str5.lstrip()) # 'I Love LsgoGroup '
print(str5.lstrip().strip('I')) # ' Love LsgoGroup '
print(str5.rstrip()) # ' I Love LsgoGroup'
print(str5.strip()) # 'I Love LsgoGroup'
print(str5.strip().strip('p')) # 'I Love LsgoGrou'
  1. partition(sub) 找到子字符串sub,把字符串分为一个三元组 (pre_sub,sub,fol_sub) ,如果字符串中不包含sub则返回 (‘原字符串’,‘’,‘’)
  2. rpartition(sub) 类似于 partition() 方法,不过是从右边开始查找。
str5 = ' I Love LsgoGroup '
print(str5.strip().partition('o')) # ('I L', 'o', 've LsgoGroup')
print(str5.strip().partition('m')) # ('I Love LsgoGroup', '', '')
print(str5.strip().rpartition('o')) # ('I Love LsgoGr', 'o', 'up')
  1. replace(old, new [, max]) 把 将字符串中的 old 替换成 new ,如果 max 指定,则替换不超过 max 次。
str5 = ' I Love LsgoGroup '
print(str5.strip().replace('I', 'We')) # We Love LsgoGroup
  1. split(str=“”, num) 不带参数默认是以空格为分隔符切片字符串,如果 num 参数有设置,则仅分隔 num 个子字符串,返回切片后的子字符串拼接的列表。
str5 = ' I Love LsgoGroup '
print(str5.strip().split()) # ['I', 'Love', 'LsgoGroup']
print(str5.strip().split('o')) # ['I L', 've Lsg', 'Gr', 'up']
  1. splitlines([keepends]) 按照行(‘\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为False,不包含换行符,如果为 True,则保留换行符。
str6 = 'I \n Love \n LsgoGroup'
print(str6.splitlines()) # ['I ', ' Love ', ' LsgoGroup']
print(str6.splitlines(True)) # ['I \n', ' Love \n', ' LsgoGroup']
  1. maketrans(intab, outtab) 创建字符映射的转换表,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。
  2. translate(table, deletechars=“”) 根据参数 table 给出的表,转换字符串的字符,要过滤掉的字符放到 deletechars 参数中。

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值