Python基础之字符串操作

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']
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页