Python:内置数据结构 -->字符串

一、字符串常用的方法

1、str.upper() : 把英文小写,全部变成大写,中文不发生改变

a = "abc"  #小写英文,全部转换成大写
print(a.upper())
>>> ABC

b = "中国,Abc"  #只针对小写英文起效果
print(b.upper())
>>> 中国,ABC

2、str.lower() : 把英文大写,全部变成小写,中文不发生改变

d = "ABC"  #大写的英文,全部转换成小写
print(d.lower())
>>>abc

e = "中国,Abc"  #针对大写,英文起作用
print(e.lower()) 
>>>中国,abc

3、str.swapcase() : 交互大小写

s1 = "AbCd"
print(s1.swapcase())  #aBcD

4、str.startwith() :判断已什么开头,正确返回:Ture,错误返回:False

f = "中国,Abc"   #判断是不是,已"中"开头,
print(f.startswith("中"))
>>>True

"""def startswith(self, prefix, start=None, end=None)
             prefix:字符串开头
             start:开始位置
             end:结束位置
"""
g = "中国,Abc"  #从下标为2开始,下标为4的结束(",A"),已"中"开头
print(d.startswith("中",2,4))
>>>False

h = "中国,Abc"  #从下标为2开始,下标为4的结束(",A"),已"中"开头
print(d.startswith(",",2,4))
>>>Ture

5、str.startwith() :判断已什么结尾,正确返回:Ture,错误返回:False

f1 = "中国,Abc"   #判断是不是,已"中"结尾,
print(f1.endswith("c"))
>>>True

"""def endswith(self, prefix, start=None, end=None)
             prefix:字符串结尾
             start:开始位置
             end:结束位置
"""
g1 = "中国,Abc"  #从下标为2开始,下标为4的结束(",A"),已","结尾
print(g1.endswith(",",2,4))
>>>False

h1 = "中国,Abc"  #从下标为2开始,下标为4的结束(",A"),已"中"结尾
print(h1.endswith("A",2,4))
>>>Ture

6、str.count() :统计字符出现的次数

i = "abc,aic,中,果,国,果"  #中文,英文,标点,都可以统计
print(i.count(","))
>>>4

7、str.strip() :脱去字符串头尾两端的空格和换行符以及制表符

#去除空格,换行符\n,制表符\t
a = "  python  \t  \n  "
print(a.strip())
>>>python
#指定内容脱敏,a.strip("ar"),a和r,单个字符,在字符串头部,末尾去脱,在ar组合在头部,末尾脱
 a = "araadnabfarrrrrrrrrrrrrrrrr"
 print(a.strip("ar"))
 >>> dnabf

8、str.split() 分割:以空格和换行符以及制表符进行分割****split(sep=None, maxsplit=-1) -> list of strings

  • 将字符串按照分隔符分割成若干字符串,并返回列表
#字符串分割后的最终结果是,列表
 a  = "a \t \n a  ir kal "
 print(a.split())
 >>> ['a', 'a', 'ir', 'kal']


#通过指定方式进行分割
a = "adef2sefaecs"
a1 = a.split("e",maxsplit=2)
print(a1)
>>> ['ad', 'f2s', 'faecs']

9、str.rsplit() 分割:从右向左; rsplit(sep=None, maxsplit=-1) -> list of strings

  • 从右向左
  • sep 指定分割字符串,缺省的情况下空白字符串作为分隔符
  • maxsplit 指定分割的次数,-1 表示遍历整个字符串
s1 = "I'm \ta super student."
print(s1.rsplit(' ',maxsplit=2))  #["I'm ", 'a super student.']
print(s1.rsplit("s"))
print(s1.rsplit("\t",maxsplit=2))

10、str.splitlines() 按照行分割splitlines([keepends]) -> list of strings

  • 按照行来切分字符串
  • keepends 指的是是否保留行分隔符
  • 行分隔符包括\n、\r\n、\r等
print('ab c\n\nde fg\rkl\r\n'.splitlines())  #['ab c', '', 'de fg', 'kl']
print('ab c\n\nde fg\rkl\r\n'.splitlines(True)) #['ab c\n', '\n', 'de fg\r', 'kl\r\n']
s1 = '''I'm a super student.
You're a super teacher.'''
print(s1)
print(s1.splitlines())  #["I'm a super student.", "You're a super teacher."]
print(s1.splitlines(True)) #["I'm a super student.\n", "You're a super teacher."]

11、str. partition() 分割:partition(sep) -> (head, sep, tail)

  • 从左至右,遇到分隔符就把字符串分割成两部分,返回头、分隔符、尾三部分的三元组;如果
    没有找到分隔符,就返回头、2个空元素的三元组
  • sep 分割字符串,必须指定
s1 = "I'm a super student."
print(s1.partition('s'))  #("I'm a ", 's', 'uper student.')
print(s1.partition('stu')) #("I'm a super ", 'stu', 'dent.')
print(s1.partition('abc')) #("I'm a super student.", '', '')

12、str. rpartition() 分割:partition(sep) -> (head, sep, tail)

  • 从右至左,遇到分隔符就把字符串分割成两部分,返回头、分隔符、尾三部分的三元组;如果
    没有找到分隔符,就返回2个空元素和尾的三元组

13、str.replace() 替换

s = "我爱吃肉夹馍,米线"
s1 = s.replace("米线","米皮")
print(s1)
>>> 我爱吃肉夹馍,米皮

#指定替换次数
s = "我爱吃肉夹馍,米线,米线,米线"
s1 = s.replace("米线","凉皮",2)
print(s1)
>>> 我爱吃肉夹馍,凉皮,凉皮,米线

14、str.capitalize() 首字母大写

#首字母大写
>>> name = "python java"
>>> name1 = name.capitalize()
>>> print(name1)
Python java

15、str.title() 每个单词首字母大写

#每个单词,首字母大写,可以是空格,","来分割
name = "python,java"
name1 = name.title()
print(name1)
>>>Python,Java

16、str.swapcase() 大小写反转

#大小写范庄
s = "abSWasA"
s1 = s.swapcase()
print(s1)
>>>ABswASa

17、str.center() 居中

a = "python"
print(a.center(20,"\\"))
>>> \\\\\\\python\\\\\\\

18、str.finder() \ str.index() 查找从左向右查找,之查找一个

#查找不存在,的返回-1
a = "aasdsas"
print(a.find("a"))
>>> 0

#查找不存在,直接报错
a = "aasdsas"
print(a.index("q"))
>>> Traceback (most recent call last):
>>>File "<stdin>", line 1, in <module>
>>>ValueError: substring not found

19、str.join() 拼接 “string”.join(iterable) -> str

  • 将可迭代对象连接起来,使用string作为分隔符
  • 可迭代对象本身元素都是字符串
  • 返回一个新字符串
a = "abc"
print("~".join(a))
>>>a~b~c
lst = ['1','2','3']
print("\"".join(lst)) # 分隔符是双引号  1"2"3
print(" ".join(lst))  #1 2 3
print("\n".join(lst))  # 1   2   3
 

错误示例:TypeError: sequence item 1: expected str instance, list found

lst = ['1',['a','b'],'3']
print(" ".join(lst))

20、is 系列:判断内存地址是否相同

a = "ade中,123"  #返回的是True,False
print(s.isalnum()) # 判断是不是字母,数字,中文
print(s.isalpha())  # 判断是不是字母,中文
print(s.isdigit())  # 判断字符串是不是全都是阿拉伯数字  ②也会判定为True
print(s.isdecimal())  # 判断是否是十进制  12.3为False

21、字符串排版
str.titile() :标题的每个单词都大写 title() -> str

s1 = "abc def gkl"
print(s1.title())  #Abc Def Gkl

str.capitalize(): 首个单词大写 capitalize() -> str

s1 = "abc def gkl"
print(s1.capitalize())  #Abc def gkl

str.center():width 打印宽度;fillchar 填充的字符
center(width[, fillchar]) -> str

s1 = "abc"
print(s1.center(10,"9"))  #999abc9999

str.zfill(): width 打印宽度,居右,左边用0填充
zfill(width) -> str

s1 = "abc"
print(s1.zfill(10))  #0000000abc

ljust(width[, fillchar]) -> str 左对齐

s1 = "abc"
print(s1.ljust(10,"8"))  #abc8888888

rjust(width[, fillchar]) -> str 右对齐

s1 = "abc"
print(s1.rjust(10,"8"))  #8888888abc

22、字符串判断 is系列
isalnum() -> bool 是否是字母和数字组成
isalpha() 是否是字母
isdecimal() 是否只包含十进制数字
isdigit() 是否全部数字(0~9)
sidentifier() 是不是字母和下划线开头,其他都是字母、数字、下划线
islower() 是否都是小写
isupper() 是否全部大写
isspace() 是否只包含空白字符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值