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.nm是显示的最小总宽度,n是小数点后的位数
-结果左对齐
+在正数前面显示加号(+)
#在八进制数前面显示‘0o’,在十六进制数前面显示 ‘0x’ 或 ‘0X’
0显示的数字前面填充‘0’代替空格

同样举几个例子供大家参考:



Python的转义字符及含义

最后,来总结一下经常使用的部分转义字符。

符号说明
\\’单引号
\\"双引号
\\a发出系统响铃声
\\b退格符
\\n换行符
\\t横向制表符(TAB)
\\v纵向制表符
\\r回车符
\\f换页符
\\o八进制数代表的字符
\\x十六进制数代表的字符
\\0表示一个空字符
\\反斜杠

以上是关于Python基础——字符串的主要内容,如果未能解决你的问题,请参考以下文章

JavaScrpt算术运算符

python基础知识总结

Python基础数据类型初始

Python基础

python基础

python 基础学习 几种常用数据类型