最近做题的时候经常会忘记某个数据类型的某些操作方法,所以把基础知识重新捋一遍
手头没有书,照着菜鸟教程捋
因为是重看一遍,所以可能不会很详细,不适用刚学习的人
Python 字符串
1.转义字符--\
\ | 表示换行 |
\\ | 表示一个反斜杠\ |
\' | 表示单引号 |
\" | 表示双引号 |
\a | 响铃(没用过) |
\b | 退格(没用过) |
\e | 转义(没用过) |
\000 | 空(没用过) |
\n | 换行 |
\v | 纵向制表符(没用过) |
\t | 横向制表符(没用过) |
\r | 回车(没用过) |
\f | 换页(没用过) |
\oyy | 八进制数,yy代表的字符,例如:\o12代表换行(没用过) |
\xyy | 十六进制,yy代表的字符,例如:\x0a代表换行(没用过) |
\other | 其他的字符以普通格式输出(没用过) |
这么一看,转移字符我用的还真不多,常用的只有“\”和“\n”
2.关于字符串运算符
现在有两个字符串,a='Hello',b='World'
(1) + 字符串拼接
a+b的结果是-->>'HelloWorld'
(2) * 字符串重复输出
a*2的结果是-->>'HelloHello'
(3) [] 索引,通过下标获取字符串中的某个字符
a[1]的结果是-->>'e'
(4) [:]切片,通过下标截取字符串的某一部分
a[1:4]的结果是-->>'ell'
(5) in 判断某个字符是否在字符串中(相应的还有not in,不写了)
'H' in a的结果是-->>True
'B' in a的结果是-->>False
(6) r或R 原始字符串,使后续字符串按照字面意思使用(没用过这个)
print(r'\n')的结果是-->>\n
print(R'\n')的结果是-->>\n
看起来就是r或者R之后的引号内是什么就输出什么
3.字符串的格式化
刚学习python的时候看的是python~ABC和嵩天老师的课,都没怎么用过%d、%s这样的方式输出,需要控制输出格式的时候我一般用format来控制,所以对这种方法不是很熟悉,这次正好学习一下
%c | 格式化字符及其ASCII码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%u | 格式化无符号整型 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化浮点数,可指定精度 |
%e | 用科学计数法格式化浮点数 |
%E | 和 %e相同 |
%g | %f 和%e的简写(不知道什么意思) |
%G | %f 和%E的简写 |
%p | 用十六进制格式化变量的地址 |
格式化操作符辅助指令:
符号 | 功能 |
---|---|
* | 定义宽度或者小数点精度 |
- | 用做左对齐 |
+ | 在正数前面显示加号( + ) |
<sp> | 在正数前面显示空格 |
# | 在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X') |
0 | 显示的数字前面填充'0'而不是默认的空格 |
% | '%%'输出一个单一的'%' |
(var) | 映射变量(字典参数) |
m.n. | m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话) |
4.字符串的相关函数
str.captalize() | 把str的第一个字符大写 |
str.center(width) | 返回一个原str居中,且用空格填充至长度width的新str |
str.count(string,beg=0,end=len(str)) | 返回string在str中出现的次数,beg和end可选,表示起始终止位置 |
str.decode(encoding='UTF-8',errors='strict') | 以encoding指定的编码格式解码str,如果出错默认报ValueError异常,除非errors指定的是'ignore'或'replace'(没用过这个) |
str.endswith(obj,beg=0,end=len(str)) | 检查str是否以obj结束,返回True或者False,beg和end可选 |
str.expandtabs(tabsize=8) | 把str中的tab转换为空格,tab符号默认为8个空格 |
str.find(string,beg=0,end=len(str)) | 检测string是否在str中,存在则返回索引值,否则返回-1,beg和end可选 |
str.format() | 我最常用的 |
str.index(string,beg=,end=) | 和find()相同,但如果string不存在,会报一个异常 |
str.isalnum() | 判断所有字符都是字母或数字,返回True或False |
str.alpha() | 判断所有字符都是字母,返回True或False |
str.isdecimal() | 判断str只包含十进制数字,返回True或False |
str.isdigit() | 判断str只包含数字,返回True或False |
str.islower()/str.isupper() | 判断str中的字母是否都是小写/大写,返回True或False |
str.isnumeric() | 判断str只包含数字,返回True或False(不知道和isdigit的区别) |
str.isspace() | 判断str只包含空格,返回True或False |
str.istitle() | 判断str是标题化的,返回True或False(还没见过标题化) |
str.join(seq) | 以str为分隔,将seq中的所有元素(的字符串表示)合并为一个新的字符串 (这个比较常用) |
str.ljust(width)/str.rjust(width) | 返回一个字符串左对齐/右对齐,并使用空格填充至长度width的新字符串 |
str.lower()/str.upper() | 将str所有字符小写/大写(若为数字或符号,则不变) |
str.lstrip()/str.rstrip() | 截掉str左边/右边的空格 |
str.maketrans(intab,outtab]) | maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。(没见过,也没用过,第一次知道这个方法) |
max(str)/min(str) | 返回str中最大/最小的字母 |
str.partition(string) | 从string出现的第一个位置起,把字符串str分成一个3个元素的元组(str_pre_string,string,str_post_string),如果str中不包含string,则str_pre_string==str(这是啥玩意。。??) |
str.replace(str1,str2,num=str.count(str1)) | 把str中的str1换成str2,如果num指定,则替换不超过num次 |
str.rfind(str,beg=,end=) | 类似于find函数,不过是从右边开始查找 |
str.rindex(str,beg=,end=) | 类似于index函数,从右边开始 |
str.rpartition(string) | 类似于partition函数,从右边开始 |
str.split(string=',num=str.count(string)) | 以string为分隔切片str,如果num有指定值,则仅分隔num个子字符串(常用方法) |
str.splitlines([keepends]) | 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。(没见过没用过) |
str.startswith(obj,beg=,end=) | 检查字符串是否以obj开头,返回True或False |
str.strip([obj]) | 在str上执行lstrip()和rstrip(),就是str的左右删除obj |
str.swapcase() | 翻转str中的大小写 (这个做题的时候应该有点用,还没用过) |
str.title() | 返回标题化的str,即所有单词以大写开始,其余字母为小写 |
str.translate(string,del='') | 根据string给出的表(包含256个字符)转换成str的字符,del参数为需要过滤掉的字符 |
str.zfill(width) | 返回长度为width的字符串,原字符串右对齐,前面填充0 |