什么是字符串
字符串是由'
和"
包裹起来的任意文本,按照其他语言的习惯推荐使用"
。单引号可以在文本本身包括双引号的时候使用,例如:
print('吉多.范罗苏姆外号“龟叔”')
字符串切片
字符串作为序列类型,可以截取序列中任意长度的子串,当然索引也是从0开始。语法: 序列[开始:结束:步长]
s = "Hello World!"
s[0] #H
s[0:4:2] #第1位开始,第5位结束,步长为2,Hlo
s[6:] #截取并包含第7位及后所有,World
s[:4] #截取第5位但不包含及前所有,Hell
s[-1] #最后一个,!
s[-2:] #倒数第二个及以后,d!
s[:] #所有字符Hello World!
s[::-1] #步长为-1表示倒序取值,!dlroW olleH
字符串索引需要注意的是:
- 索引值从
0
计数 - 步长为正值的时候,向右边切
- 步长为负值的时候,向左边切(实现逆序)
[0:5]
并不包含索引5的字符
字符串方法
字符串同列表一样具有很多方法,并且功能更加多样,在python控制台输入str.
tab键可以查看支持的所有类型。
按照不同的功能划分主要包括:
1.判断类型
判断类型的标志是包含is
,结果返回True/False
,例如
'a'.islower() #True
''.isspace() #判断空白,Fasle
'\n\r\t'.isspace() #True
'123'.isdecimal() #判断纯数字,不包括小数
'12.3'.isdigit() #支持unicode编码的特殊数字,例如\u00b2的平方
'\u00b2'.isdigit()
'九百九十九'.isnumeric() #支持中文数字,范围更广
# 从isnumeric到isdecimal要求更严格,在编程时推荐使用isdecimal确保代码的严谨性
2.大小写转换
upper
:转换大写字母
lowwer
:转换小写字母
capitalize
:首字母大写
3.查找替换
find
:查找子串位置,若存在则返回索引位置,不存在返回-1
index
:查找子串位置,若存在则返回索引位置,不存在则报错
replace
:用新字符串替换旧字符串,原字符串不会改变
4.去除空白
strip
去除两端的空白,默认包括所有空白字符(\n,\t,\r
和空格)
rstrip
去除右侧的空白
lstrip
去除左侧的空白
5.拆分/连接
split
: 按照分隔符切成列表
join
: 指定连接符连接列表
注意的是join
的使用习惯与其他方法不太一样,是将列表作为参数,而不是连接符
6.文本对齐
center
:文本居中
ljust
:左对齐
rjust
:右对齐
poem = ['静夜思','李白',' 床前明月光','疑是地上霜',' 举头望明月','低头思故乡 ']
for line in poem:
print('|%s|' % line)
# 使用center居中
for line in poem:
print('|%s|' % line.center(10)) #居中并指定10个字符宽度
# 虽然居中了,但是由于前后有空白字符,并不好看,此时可以结合strip输出
for line in poem:
print('|%s|' % line.strip().center(10,' ')) #居中并指定10个字符宽度