3. 字符串
字符串是什么
字符串是一个个字符(实际还是字符串)组成的不可变的有序序列。 字符串是字面常量。 Python3开始字符串默认为Unicode。
字符串如何定义
单引号
双引号
三引号
R(r)字符串
字符串的访问
就像元组和列表一样,Python中字符串也可以通过索引访问。但是由于Python中没有字符类型,索引出来还是字符串(但只有一个字符)。
字符串可以遍历,可以迭代。
字符串的查询与判断
index
后面跟着一个字符,返回一个值对应的索引。也可以指定开始与结束的区间。
find
后面跟着一个字符,返回第一个索引值。如果找不到则返回-1。
rfind
同find
count
和列表中的count相同,返回一共一个字符出现了几次。
endswith(suffix start end)
返回一个布尔类型,检查字符串是否由suffix
结尾。
startswith (suffix start end)
返回一个布尔类型,检查字符串是否由suffix
开头。
is系列判断:
is名称
含义
isalnum
字母与数字
isalpha
字母
isdecimal
数字
isdigit
数字
isidentifier
字母数字下划线(非数字开头)
islower
小写字母
isupper
大写字母
isspace
空白字符
istitle
以大写开始,其余字母均为小写
字符串的变更
字符串不可变,所有操作都是返回新的字符串
字符串的连接
字符串的join连接
如果在一个字符串后面加上.join
,参数再加上一个可以迭代的对象,那么会发生什么呢?让我们来尝试一下。
返回
字符串的join功能是将可迭代对象用前面的字符串拼接起来,返回新的字符串。 但是:可迭代对象里面必须也全部是字符串,否则会引发错误。
字符串的 + 连接
字符串之间是支持+
进行操作的。加号表示连接两个字符串并返回新的字符串。
返回
字符串的重复
*
可以使用*
重复字符串内容,返回新的字符串。
返回
字符串的分割:
split系列:
split
语法:str.split(str="", maxsplit=-1)·
其中str
表示分隔符,默认为空字符(也就是空格,\r,\n,\t)。maxsplit
表示分割次数,-1表示全字符串。
分割结束之后返回一个被分割的内容的列表
rsplit
同split
,不过是从右面开始的
splitlines
按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表。 后面可以跟一个布尔型True,表示保留换行符。否则默认为False不保留。
partition系列
partition
按照指定的分隔符分割成两半,返回这两端和分隔符的元组。
类似于split("分隔符",1)
rpartition
同partition
,不过是从右侧开始分割
字符串的覆盖
replace(old, new, count)
:把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数count,则替换不超过 count 次,最终返回一个新的字符串。
字符串的删除
strip
类似其他语言中的trim,会从两端删除空白字符。如果指定了字符集,那么就删除两端所有属于这个字符集的字符。直到遇见第一个非字符集的字符。
如果要单独处理左边或者右边,可以用lstrip
和rstrip
。
处理结束以后会返回一个新的字符串。
字符串的字母处理
upper
全部大写 lower
全部小写 swapcase
大小写转换 title
首字母大写 capitalize
首单词大写
字符串格式化
利用字符串的功能排版
center(宽度,填充字符) 居中打印
zfill(打印宽度)居右打印,填充0
ljust (宽度,填充字符)左对齐
rjust (宽度,填充字符)右对齐
printf-style 格式化
类似C语言中的printf。
示例
格式化符号:
符号
描述
%c
格式化字符及其ASCII码
%s
格式化字符串
%d
格式化整数
%u
格式化无符号整型
%o
格式化无符号八进制数
%x
格式化无符号十六进制数
%X
格式化无符号十六进制数(大写)
%f
格式化浮点数字,可指定小数点后的精度
%e
用科学计数法格式化浮点数
%E
作用同%e,用科学计数法格式化浮点数
%g
%f和%e的简写
%G
%f 和 %E 的简写
%p
用十六进制数格式化变量的地址
format
Python建议使用
格式
"{}{xxx}".format(args,*kwargs) 花括号表示占位符,按照位置匹配。 如果{n},则表示取后面索引为n的元素的值
返回值
新的字符串
示例
位置参数
访问元素
对象属性访问
f字符串(Python3.6+)
刚刚新添加的一个功能。
Last updated
Was this helpful?