目录
cmath 模块的函数跟 math 模块函数基本一致,区别是 cmath 模块运算的是复数,math 模块运算的是数学运算。
要使用 math 或 cmath 函数必须先导入:import math
Python 的字符串内建函数
序号 | 方法及描述 |
---|---|
1 | capitalize() ——str.capitalize() |
2 | 返回一个指定的宽度 width(总长度) 居中的字符串,fillchar 为填充的字符,默认为空格。
|
3 | 返回 str 在 string 里面出现的次数,如果 start 或者 end 指定范围内 str 出现的次数 |
4 | bytes.decode(encoding="utf-8", errors="strict")——str_utf8 = str.encode("UTF-8") /str_utf8.decode('UTF-8','strict') Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回,返回解码后的字符串。。 |
5 | 以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace' |
6 | endswith(obj, beg=0, end=len(string)) Str.endswith(suffix, 0, 19) 检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False. |
7 | expandtabs(tabsize=8) str.expandtabs(tabsize=8) 注:双引号中的字符不需要转义字符,单引号需要) 把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 。 |
8 | find(str, beg=0 end=len(string)) str1.find(str2, 5) 检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1 |
9 | 跟find()方法一样,只不过如果str不在字符串中会报一个异常. |
10 | isalnum() str.isalnum() 如果字符串至少有一个字符并且所有字符都是字母或数字(没有点或者空格之类的)则返 回 True,否则返回 False |
11 | 如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False |
12 | 如果字符串只包含数字则返回 True 否则返回 False.. |
13 | 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False |
14 | 如果字符串中只包含数字字符,则返回 True,否则返回 False |
15 | 如果字符串中只包含空白,则返回 True,否则返回 False. |
16 | 如果字符串是标题化的(字符串中所有的单词拼写首字母是否为大写,且其他字母为小写)则返回 True,否则返回 False |
17 | 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False |
18 | join(seq)
|
19 | 返回字符串长度 |
20 | ljust(width, fillchar]) str.ljust(50, '*') 返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。 |
21 | 转换字符串中所有大写字符为小写. |
22 | 截掉字符串左边的空格或指定字符。 |
23 | 创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。 |
24 | 返回字符串 str 中最大的字母。 |
25 | 返回字符串 str 中最小的字母。 |
26 | replace(old, new , max) str.replace("is", "was", 3) 把 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次。 |
27 | 类似于 find()函数,不过是从右边开始查找. |
28 | 类似于 index(),不过是从右边开始. |
29 | 返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串 |
30 | 删除字符串字符串末尾的空格. 可选参数chars是一个字符串,用来指定要删除的字符集合,如果省略或为None则chars参数默认为删除空格。注意:chars参数不是前缀或后缀字,相反,它包含的字符的所有组合都会被删除。 |
31 | split(str="", num=string.count(str)) str.split('i',1) num=string.count(str)) 以 str 为分隔符截取字符串,如果 num 有指定值,指定分割次数 |
32 | 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False(默认),不包含换行符,如果为 True,则保留换行符。 |
33 | 检查字符串是否是以指定子字符串 substr 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。 |
34 | 在字符串上执行 lstrip()和 rstrip() |
35 | 将字符串中大写转换为小写,小写转换为大写 |
36 | 返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle()) |
37 | 根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 deletechars 参数中 |
38 | 转换字符串中的小写字母为大写 |
39 | 返回长度为 width 的字符串,原字符串右对齐,前面填充0 |
40 | 检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。 |
Python列表函数&方法
Python包含以下函数:
序号 | 函数 |
---|---|
1 | len(list) 列表元素个数 |
2 | max(list) 返回列表元素最大值 |
3 | min(list) 返回列表元素最小值 |
4 | list(seq) |
5 cmp(list1, list2):比较两个列表的元素
Python包含以下方法:
序号 | 方法 |
---|---|
1 | list.append(obj) 在列表末尾添加新的对象 |
2 | list.count(obj) 统计某个元素在列表中出现的次数 |
3 | list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) |
4 | list.index(obj) 从列表中找出某个值第一个匹配项的索引位置 |
5 | list.insert(index, obj) 将对象插入列表 |
6 | list.pop([index=-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 |
7 | list.remove(obj) 移除列表中某个值的第一个匹配项 |
8 | list.reverse() 反向列表中元素 该方法没有返回值,但是会对列表的元素进行反向排序。 |
9 | list.sort(cmp=None, key=None, reverse=False) 对原列表进行排序,
|
10 | list.clear() 清空列表 |
11 | list.copy() 复制列表 |
obj in list 判断
删除del list[2]、删除del list
其它方法
>>> list3 = list() # 列表构造函数创建空列表
>>> list3
[]
>>> list4 = list(list2) #已有列表生成新列表
>>> list4
['Tom', 'Jerry', 'Lucy', 'Peter']
>>> list5 = [x for x in list2] # 列表生成式
>>> list5
['Tom', 'Jerry', 'Lucy', 'Peter']
这些操作的时间复杂度是多少?
增append(O(1))
插insert(O(n))
改 li[index] =obj (O(1))
移 remove (O(n))
查 in list (O(n))
字符串的格式化
在几乎所有的编程语言中,字符串的格式化都是非常重要的基本知识。Python中实现字符串格式化有以下几种方式:
- 字符串拼接(不推荐使用)
- 符串本身所支持的方法调用:str.format(*args, **kwargs)
- 字符串的内置操作符:%
通过字符串拼接实现式化
>>> a = 2
>>> b = 3
>>> str(a) + ' + ' + str(b) + ' = ' + str(a+b)
'2 + 3 = 5'
此处通过字符串的拼接来输出一定格式的字符串,这会在内存中产生多个字符串对象,且操作复杂,容易出错。
使用str.fromat()进行字符串格式化
该方法用于执行字符串格式化操作。调用此方法的字符串可以包含由大括号字面文本或由大括号{}分割的替换字段。每个替换字段保存位置参数的数字索引或关键字参数的名称。该方法将返回一个字符串副本,其中每个替换字段都替换为相应参数的字符串值。
>>> a = 2
>>> b = 3
>>> '{0} + {1} = {2}'.format(a, b, a+b) # 使用位置参数
'2 + 3 = 5'
>>> '{a} + {b} = {c}'.format(a=a, b=b, c=a+b) # 使用关键字参数
'2 + 3 = 5'
>>> '{a} + {b} = {c}'.format({'a': a, 'b': b, 'c': a+b}) # 不能使用字典
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'a'
str.format()不支持接收元组(tuple)、字典(dict)等数据类型作为参数,这是非常不方便的。
使用字符串内置操作符(%)进行字符串格式化
%操作符是字符串对象唯一的内置操作,也称为字符串格式化或插值运算符。该接口提供了一种更强大、灵活和可扩展的方法来格式化文本。格式字符串中的% 转换规范将会被替换为0个或多个元素的值,效果类似于在C语言中使用sprintf()。
如果格式字符串需要单个参数,那么替换值可以是单个非元组对象;否则,替换值必须是具有由格式化字符串指定的条目数量的元组,或者是单个映射对象(例如,字典)。
>>> 'The sum of 2 + 3 is: %d' % 5 # 格式化字符串只需要1个参数,替换值可以是的那个非元组字符
'The sum of 2 + 3 is: 5'
>>>
>>> a = 2
>>> b = 3
>>> '%d + %d = %d' % (a, b, a+b) # 格式化字符串需要n(n > 1)个参数,替换值需要是具有n个元素的元组
'2 + 3 = 5'
>>> '%(a)d + %(b)d = %(c)d' % {'a': a, 'b': b, 'c': a+b} # 格式化字符串需要n(n > 1)个参数,替换也可以是具有n个元素的映射对象
'2 + 3 = 5'
>>>
上面示例中,格式字符串中的 %d, %(a)d称为“转换说明标识符”。这个标识符可以由2个或多个部分组成,且各部分必须按照指定的顺序排列:
- '%'字符:表示“转换说明标识符”的开始;
- 映射键名称(Mapping key): 可选部分,由小括号包含的字符串序列组成,如:(name);
- 转换标识(Conversion flags):可选部分,这个会影响一些转换类型的结果;如:'0'表示用数字字符0进行填充,'-'表示左对齐(用空白字符进行右填充)
- 最小字段宽度(Minimum field width): 可选部分,指定转换结果的最小宽度
- 精度(Precision): 可选部分,通过".精度值"的方式来指定小数点后保留几位小数
- 长度修饰符(Length modifier): 可选部分
- 转换类型(Conversion type): 用于指定数据类型;常用的转换类型有 'd'或'i'表示有符号十进制整数,'f'或'F'表示浮点数,'s'表示字符串, '%'表示其本身
(1) %f 进行浮点数的格式化
print("I have %f dollars "%18.96) #%f可以接收浮点数,默认保留小数点后6位
print("I have %.2f dollas "%18.96 )# 在格式化符后加上.2保留小数点后2位
print("I have %.3f dollas "%18.96 )# 在格式化符后加上.3保留小数点后3位
(2)%.2f%% 将百分比打印出来
print("I hold %.2f of the share "%18.96 )
print("I hold %.2f %% of the share "%18.96 ) #在格式化符号之后加上%%即可打印百分号
输出
I hold 18.96 of the share
I hold 18.96 % of the share
(3) %的其他用法
print("I am %(name)s ,age %(age)d"%{"name":"nicholas","age":18})
#name代表了后面的要传入字典的值,括号里的age代表了后面的要传入字典的值
print("I have %(num)f dollars " %{ "num":18.96})
print("I have %(num).2f dollars " %{ "num":18.96})
#num代表了后面的要传入字典的值
(4)百分号语法
%[(name)][flags][width][.precision]typecode
(name) 可选,用于选择指定的key
flags 可选,可供选择的值有:
+ 右对齐;正数前加正好,负数前加负号;
- 左对齐;正数前无符号,负数前加负号;
空格 右对齐;正数前加空格,负数前加负号;
0 右对齐;正数前无符号,负数前加负号;
用0填充空白处
width 可选,占有宽度
.precision 可选,小数点后保留的位数
typecode 必选
s,获取传入对象的__str__方法的返回值,并将其格式化到指定位置
d,将整数、浮点数转换成 十 进制表示,并将其格式化到指定位置
f,将整数、浮点数转换成浮点数表示,并将其格式化到指定位置(默认保留小数点后6位)
%,当字符串中存在格式化标志时,需要用 %%表示一个百分号