原始字符串
print(r'\n \t')
\n \t
续行符
name = "woshi" \
"abc"
print(name)
name = ("woshi"
"abc"
)
print(name)
woshiabc
三引号
可直接跨行书写
用于注释文档
字符串拼接
str1 + str2
str1 str2
占位符:“woshi%s, %d”%(“123”, 123)
print('sz\t' * 5)
sz sz sz sz sz
字符串切片
name[下标]
取最后一个位置:name[-1]
起始位置:0
结束位置:字符串长度
步长:1
步长> 0 从左到右
步长< 0 从右到左
反转字符串[::-1]
name = 'abcdefg'
print(name[0: 3])
print(name[::])
print(name[0:len(name):1])
print(name[len(name):0:-1])
print(name[::-1])
abc
abcdefg
abcdefg
gfedcb
gfedcba
字符串常用函数
内建函数可直接使用
对象方法:对象.方法(参数)
查找结算
len
find
查找子串索引位置
find(sub, start=0, end=len(str))
sub: 需要检索的字符串
start:起始位置
end:结束位置
返回值:找到为指定索引,找不到-1
rfind
从右向左查找
index
同find 找不到返回异常
ValueError: substring not found
rindex
count
计算某个子字符串的出现个数
count(sub, start=0, end=len(str))
转换
replace
使用给定的新字符串替换原字符串中的旧字符串
replace(old, new[, count])
old: 需要被替换的
new:替换后的
count:替换的个数,省略替换全部
name = 'wo shi sz'
print(name.replace('s', 'z', 1))
print(name)
wo zhi sz
wo shi sz
capitalize
将字符串首字母变为大写
name = 'wo shi sz'
print(name.capitalize())
print(name)
Wo shi sz
wo shi sz
title
将字符串每个单词的首字母变为大写,只要不是单词
name = 'wo shi sz'
print(name.title())
print(name)
Wo Shi Sz
wo shi sz
lower
lower()
将字符串每个字符都变为小写
upper
将字符串每个字符都变为大写
填充压缩
ljust
根据指定字符(1个),将原字符串填充够指定长度
l:指定原字符串靠左
ljust(width,fillchar)
width: 指定字符串长度
fillchar:填充的字符
name = 'abcd'
print(name.ljust(6,'x'))
print(name)
abcdxx
abcd
rjust
原字符串靠右
center
原字符串居中
lstrip
移除所有原字符串指定字符(默认为空白字符)
l表示仅从左侧开始移除
lstrip(chars)
chars: 需要移除的字符集
name = ' ab cd '
print('|' + name.lstrip() + '|')
print('|' + name + '|')
|ab cd |
| ab cd |
rstrip
仅从右侧开始移除
分割拼接
split
将一个大的字符串分割成几个子字符串
split(sep, maxsplit)
sep: 分隔符
maxsplit: 最大分割次数,可省略
info = 'sz-18-180-0558-12345679'
result = info.split('-', 3)
print(result)
[‘sz’, ‘18’, ‘180’, ‘0558-12345679’]
partition
根据指定的分隔符,返回(分隔符左侧内容,分隔符,分隔符右侧内容)
partition(sep)
sep: 分隔符
返回tuple
info = 'sz-18-180-0558-12345679'
result = info.partition('-')
print(result)
(‘sz’, ‘-’, ‘18-180-0558-12345679’)
rpartition
从右侧开始找
splitlines
按照换行符(\r, \n),将字符串拆成多个元素,保存到列表
splitlines(keepends)
keepends: 是否保留换行符 bool类型
info = 'wo \n shi \r sz'
result = info.splitlines(True)
print(result)
result = info.splitlines()
print(result)
[‘wo \n’, ’ shi \r’, ’ sz’]
['wo ', ’ shi ‘, ’ sz’]
join
根据指定的字符串,将给定的可迭代对象进行拼接,得到拼接后的字符串
join(iterable)
items = ['sz', '18', 'shanghai']
result = ','.join(items)
print(result)
sz,18,shanghai
判定
isalpha
字符串中所有字符都是字符
name = 'sz'
print(name.isalpha())
True
isdigit
字符串中所有字符都是数字
isalnum
字符串中所有字符都是数字或者字符
isspace
字符串中所有字符都是空白符,包括空格,缩进,换行等不可见转义符
startswith
判定一个字符是否以某个前缀开头
startswith(prefix, start=0, end=len(str))
prefix: 需要判定的前缀字符串
start: 判定起始位置
end: 判定结束位置
name = '2018-09-02: xxx.xls'
print(name.startswith('2018-09-02'))
print(name.startswith('18', 2))
print(name.startswith('18', 2, 4 ))
True
True
True
endswith
name = '2018-09-02: xxx.xls'
print(name.endswith('xls'))
True
in
判定一个字符串是否被一个字符串包含
print(‘sz’ in ’ a sz’)
not in
判定一个字符串是否不被一个字符串包含
print(‘sz’ not in ’ a sz’)