Python基础——字符串
Posted 薛定谔的猫ovo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础——字符串相关的知识,希望对你有一定的参考价值。
文章目录
前言
字符串对于学过编程的同学来说已经不陌生了,这里主要讲解一下Python中的字符串。接触过C语言的同学应该知道,在C语言中,字符串和字符是两个不同的概念,C语言中用单引号表示字符,双引号表示字符串,但在Python中,并没有字符这个东西,所谓字符就是长度为1的字符串。
对于列表和元组上的分片操作,也可以应用在字符串上。并且,字符串和元组一样,只要定义下来就不能被修改,但是可以通过拼接旧字符串的各个部分得到新的字符串,这种方式并不是真正意义上的改变原始字符串,原来的字符串还在,只是将变量指向了新的字符串,旧的字符串一旦失去了变量的引用,就会被Python的垃圾回收机制释放掉。
此外,像比较操作符、逻辑操作符、成员关系操作符等的操作跟列表和元组是一样的,这里就不再赘述了。
字符串的内置方法
字符串的内置方法非常多,总结在以下的表格中。
方法 | 含义 |
---|---|
capitalize() | 把字符串的第一个字符改为大写 |
casefold() | 把整个字符串的所有字符改为小写 |
center(width) | 将字符串居中,并使空格填充至长度width的新字符串 |
count( sub [,start [,end] ] ) | 返回sub在字符串里面出现的次数,start和end参数表示范围,可选 |
encode(encoding=‘utf-8’, errors=‘strict’) | 以encoding指定的编码格式对字符串进行编码 |
endswith( sub [,start [,end] ] ) | 检查字符串是否以sub子字符串结束,如果是返回True,否则返回False。start和end参数表示范围,可选 |
expandtabs( [tabsize=8] ) | 把字符串中的tab符号(\\t)转换为空格,如不指定参数,默认的空格数是tabsize=8 |
find( sub [,start [,end] ] ) | 检测sub是否包含在字符串中,如果有则返回索引值,否则返回-1,start和end参数表示范围,可选 |
rfind( sub [,start [,end] ] ) | 类似于find方法,不过是从右边开始查找 |
index( sub [,start [,end] ] ) | 跟find方法一样,不过如果sub不在string中会产生一个异常 |
rindex( sub [,start [,end] ] ) | 类似于index()方法,不过是从右边开始查找 |
isalnum() | 如果字符串至少有一个字符并且所有字符都是字母或数字则返回True,否则返回False |
isalpha() | 如果字符串至少有一个字符并且所有字符都是字母则返回True,否则返回False |
isdecimal() | 如果字符串只包含十进制数字则返回True,否则返回False |
isdigit() | 如果字符串只包含数字则返回True,否则返回False |
islower() | 如果字符串中至少包含一个区分大小写的字符,并且这些字符都是小写,则返回True,否则返回False |
isupper() | 如果字符串中至少包含一个区分大小写的字符,并且这些字符都是大写,则返回True,否则返回False |
isnumeric() | 如果字符串中只包含数字字符,则返回True,否则返回False |
isspace() | 如果字符串中只包含空格,则返回True,否则返回False |
istitle() | 如果字符串都是标题化(所有单词都是以大写开始,其余字母均小写),则返回True,否则返回False |
join(sub) | 以字符串作为分隔符,插入到sub中所有的字符之间 |
ljust(width) | 返回一个左对齐的字符串,并使用空格填充至长度为width的新字符串 |
rjust(width) | 返回一个右对齐字符串,并使用空格填充至长度为width的新字符串 |
lower() | 转换字符串中的所有大写字符为小写 |
upper() | 转换字符串中的所有小写字符为大写 |
swapcase() | 翻转字符串中的大小写 |
lstrip() | 去掉字符串左边的所有空格 |
rstrip() | 删除字符串末尾的空格 |
strip( [chars] ) | 删除字符串前面和后面的所有的空格,chars参数可以定制删除的字符,可选 |
partition(sub) | 找到子字符串sub,把字符串分成一个三元组(pre_sub,sub,fol_sub),如果字符串中不包含sub则返回(‘原字符串’, ’ ', ’ ') |
rpartition(sub) | 类似于partition()方法,不过是从右边开始查找 |
replace(old, new [,count] ) | 把字符串中的old子字符串替换成new子字符串,如果count指定,则替换不超过count次 |
split(step=None, maxsplit=-1) | 不带参数默认是以空格为分隔符切片字符串,如果maxsplit参数有设置,则仅分割maxsplit个子字符串,返回切片后的子字符串拼接的列表 |
splitlines( [keepends] ) | 按照 ‘\\n’ 分隔,返回一个包含各行作为元素的列表,如果keepends参数指定,则返回前keepends行 |
startswith( prefix [,start [,end] ] ) | 检查字符串是否以prefix开头,是则返回True,否则返回False。start和end参数可以指定范围检查, 可选 |
title() | 返回标题化(所有的单词都是以大写开始,其余字母均为小写)的字符串 |
translate(table) | 根据table的规则(可以由str.maketrans(‘a’, ‘b’)定制)转换字符串中的字符 |
zfill(width) | 返回长度为width的字符串,原字符串右对齐,前面用0填充 |
下面介绍几种常用方法。
一、casefold()方法
作用是将字符串的所有字符变为小写。
二、count (sub[, start[, end] ] )方法
作用是查找sub子字符串出现的次数,可选参数start和end表示查找的范围。
三、find (sub[, start[, end] ] )方法和index (sub[, start[, end] ] )
作用是查找sub子字符串在该字符串中的位置,若找到了则返回第一个字符的索引值,如果找不到,find()方法返回-1,而index()方法会抛出异常。
四、join(sub)方法
作用是以字符串作为分隔符,插入到sub字符串中所有的字符之间。
此外,程序员喜欢用join()连接字符串:
五、replace(old, new[, count] )方法
作用是替换指定的字符串。
六、split(sep=None, maxsplit=-1)方法
作用与join()正好相反,用于拆分字符串。
格式化
什么是字符串的格式化?为什么要对字符串格式化呢?
格式化字符串,就是按照统一的规格去输出一个字符串。 如果规格不统一,就很可能造成误会,例如十六进制的10和十进制的10完全是不同的概念。字符串格式化,正是帮助我们纠正并规范这类问题而存在的。
格式化方法:format()方法
format()方法接受位置参数和关键字参数,二者均传递到一个叫做replacement字段。这个replacement字段在字符串内由大括号()表示。举个例子:
字符串中的0、1和2和位置有关,依次被format()的三个参数替换,那么format()中的三个参数就叫作位置参数。再来看一个例子:
可以看到,位置参数1跟平常有些不同,后面多了个冒号。在替换域中,冒号表示格式化符号的开始。“ .2 ” 的意思是四舍五入到保留两位小数点,而 f 的意思是浮点数,所以按照格式化符号的要求打印出了3.14。
那么什么是关键字参数呢?举个例子。
其中,a、b和c就相当于三个标签,format()将参数中等值的字符串替换进去,这就是关键字参数。
当然,也可以将位置参数和关键字参数综合在一起使用,但必须要注意的是,位置参数必须在关键字参数之前,否则就会报错:
如果要把大括号打印出来呢?这跟字符串转义字符相似(要打印转义字符\\,只需要用转义字符转义本身\\),只需要用多一层大括号包起来即可:
注意到位置参数“Print”没有被输出,这是因为 0的特殊功能被外层的大括号剥夺,因此没有字段可以输出,但这并不会产生错误。
格式化操作符%
% 在运算中是求余数的操作符,但在字符串中,它表示的是格式化操作符。
首先列出Python中的格式化符号及含义。
符号 | 含义 |
---|---|
%c | 格式化字符及其ASCII码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化浮点数字,可指定小数点后的精度 |
%e | 用科学计数法格式化浮点数 |
%E | 作用同%e,用科学计数法格式化浮点数 |
%g | 根据值的大小决定使用%f或%e |
%G | 作用同%g,根据值的大小决定使用%f或%E |
举几个例子:
此外,Python还提供了格式化操作符的辅助指令:
符号 | 含义 |
---|---|
m.n | m是显示的最小总宽度,n是小数点后的位数 |
- | 结果左对齐 |
+ | 在正数前面显示加号(+) |
# | 在八进制数前面显示‘0o’,在十六进制数前面显示 ‘0x’ 或 ‘0X’ |
0 | 显示的数字前面填充‘0’代替空格 |
同样举几个例子供大家参考:
Python的转义字符及含义
最后,来总结一下经常使用的部分转义字符。
符号 | 说明 |
---|---|
\\’ | 单引号 |
\\" | 双引号 |
\\a | 发出系统响铃声 |
\\b | 退格符 |
\\n | 换行符 |
\\t | 横向制表符(TAB) |
\\v | 纵向制表符 |
\\r | 回车符 |
\\f | 换页符 |
\\o | 八进制数代表的字符 |
\\x | 十六进制数代表的字符 |
\\0 | 表示一个空字符 |
\\ | 反斜杠 |
以上是关于Python基础——字符串的主要内容,如果未能解决你的问题,请参考以下文章