文章目录
- 1.类型转换
- 2.索引与切片
- 3.字符串方法
- capitalize()
- upper(), lower()
- swapcase()
- title()
- center(width, fillchar)
- expandtabs(tabsize=8)
- startswith / endswith(suffix, beg=0, end=len(string))
- find(str, beg=0 end=len(string))
- rfind()
- index()
- lstrip(str) / rstrip(str) / strip(str)
- count(str, beg= 0,end=len(string))
- split(str="", num=string.count(str))
- replace(old, new , cnt)
- 4.公共方法
1.类型转换
int 与 str 互相转换
Python 中整数型int
的变量可以转换成字符串类型str
,而全数字组成的字符串也可以转化为整数型。
i = 123
s = str(i)
print(s,type(s)) #输出结果:123 <class 'str'>
num = int(s)
print(num,type(num)) #输出结果:123 <class 'int'>
str 转化为 bool
非空字符串的bool
值都为True
,空字符串为False
s = ''
if not s:
print('您输入的为空')
2.索引与切片
索引分为 正向索引 和 反向索引。 反向索引中 s[-1]
表示字符串中的最后一个元素,s[-2]
表示倒数第二个元素,以此类推。
切片的格式为s[a:b:c]
,a
表示头部 ,b
表示尾部 ,c
表示步长。切片顾头不顾尾,截止到b-1
的位置。 步长表示两个元素之间的距离,当步长为负数时逆序切片。
代码实例:
s = 'ABCSESRF'
print(s[0]) # A
print(s[2]) # C
print(s[-1]) # F
print(s[-2]) # R
print(s[0:4]) # ABCS
print(s[0:-1]) # ABCSESR
print(s[:]) # ABCSESRF
print(s[0:]) # ABCSESRF
print(s[0:0]) # 没有任何输出
s = 'ABCSESRF'
print(s[0:5:2]) # ACE
print(s[4:0:-1]) # ESCB
print(s[3::-1]) # SCBA
print(s[3::-2]) # SB
print(s[-1::-1]) # FRSESCBA
print(s[::-1]) # FRSESCBA
print(s[0:-1:-1]) #没有任何输出
3.字符串方法
capitalize()
将字符串的首字母大写
s = 'life is short.'
s1 = s.capitalize()
print(s1) # Life is short.
upper(), lower()
upper()
: 将字符串中所有小写字符转换为大写
lower()
: 将字符串中所有大写字符转换为小写
s = 'Life Is Short.'
s1 = s.upper()
s2 = s.lower()
print(s1,s2) # LIFE IS SHORT. life is short.
swapcase()
大小写翻转
s = 'Life Is Short.'
s1 = s.swapcase()
print(s1) # lIFE iS sHORT.
title()
返回 “标题化” 字符串,每个被特殊字符或者数字隔离开的单词首字母大写。
s = 'life-is short.'
s1 = s.title()
print(s1) # Life-Is Short.
ss = 'fade,crazy*w4rri0r_songsong node_3'
ss1 = ss.title()
print(ss1) # Fade,Crazy*W4Rri0R_Songsong Node_3
center(width, fillchar)
将字符串居中,并用制定字符填充,默认为空格。两端需要填充的位置为奇数个时,多余的一个填在前面。
s = 'life-is short.'
s1 = s.center(21,'~')
print(s1) # ~~~~life-is short.~~~
s1 = s.center(5,'~')
print(s1) # life-is short.
expandtabs(tabsize=8)
将字符串中的 tab\t
符号转化为空格,默认值为8
s = 'life-\tis short.'
s1 = s.expandtabs(10)
print(s1) # life- is short.
startswith / endswith(suffix, beg=0, end=len(string))
检查字符串是否以 suffix 为开头或结尾,可在指定区间内查找,返回 bool 值。
s = 'life-is short.'
s1 = s.endswith('.')
s2 = s.endswith('fe', 0, 4)
s3 = s.endswith('fe', 0, 3)
s4 = s.startswith('life-')
s5 = s.startswith('fe', 2)
print(s1, s2, s3, s4, s5)
# True True False True True
find(str, beg=0 end=len(string))
检查 str 是否包含在字符串中,可在指定区间内查找。若存在则返回 str 第一次出现的首字符的索引,否则返回-1。
s = 'life-is short.'
s1 = s.find('e-')
s2 = s.find('Li')
print(s1, s2)
# 3 -1
rfind()
类似于 find() ,不过是从右边开始查找
index()
与 find() 方法一样,但是当 str 不存在的时候会抛出一个异常
lstrip(str) / rstrip(str) / strip(str)
lstrip() 在字符串开头删去指定字符串str中的所有字符,rstrip() 从末尾删除,strip() 左右两端同时删除。默认值为空格。
s = ' ** life-is short.** '
s1 = s.strip('* .')
print(s1) # life-is short
s2 = s.lstrip(' *')
print(s2) # life-is short.**
s3 = s.rstrip(' *')
print(s3) # ** life-is short.
count(str, beg= 0,end=len(string))
统计字符串中的指定区间内的 str 个数
s = 'life-is short.life'
cnt1 = s.count('li')
cnt2 = s.count('li', 0, 5)
print(cnt1, cnt2) # 2 1
split(str="", num=string.count(str))
以 str 为分隔符截取字符串,返回一个 list 。如果 num 有指定值,则仅截取 num+1 个子字符串。分隔符默认为空格。
s = 'life is short'
s1 = s.split()
print(s1) # ['life', 'is', 'short']
ss = 'lifeaisashort'
ss1 = ss.split('a', 1)
print(ss1) # ['life', 'isashort']
replace(old, new , cnt)
将字符串中的 old 子串替换为指定的子串 new。cnt 为替换次数,默认为全部替换。
s = '人生苦短,我用python; 人生不易,我用python'
s1 = s.replace('人生', '狗命', 1)
print(s1)
# 狗命苦短,我用python; 人生不易,我用python
4.公共方法
len(str)
计算str的长度
s = 'life is short'
length = len(s)
print(length) # 13
sorted()
可以对全数字的字符串排序,并返回一个 list 。
sorted(iterable, key=None, reverse=False)
排序规则,reverse = True
降序 , reverse = False
升序(默认)。
s = '231459876'
s1 = sorted(s)
s2 = sorted(s, reverse=True)
print(s1)
#['1', '2', '3', '4', '5', '6', '7', '8', '9']
print(s2)
#['9', '8', '7', '6', '5', '4', '3', '2', '1']