02Python学习str详解

一、str特点

​ str为有序字符集,可以切片,可以索引。但是str一旦创建,就无法修改

二、str内置方法及函数

2.1 str对象.count(子序列,起始位置-可选,结束位置-可选)

字符串去匹配子序列出现的次数

>>> s = "11221212"
>>> v1 = s.count("1")
>>> v2 = s.count("12")
>>> v3 = s.count("2",-3)
>>> v4 = s.count("12",1,-5)
>>> print("v1 = " ,v1)
v1 =  4
>>> print("v2 = " ,v2)
v2 =  3
>>> print("v3 = " ,v3)
v3 =  2
>>> print("v4 = " ,v4)
v4 =  1

2.2 str对象.encode(encoding=‘utf-8’, errors=‘strict’)

​ 该方法返回编码后的字符串,它是一个 bytes 对象

>>> s = "我是谁"
>>> v1 = s.encode()
>>> v2 = s.encode(encoding="gbk",errors="ignore")
>>> print("v1 = " ,v1)
v1 =  b'\xe6\x88\x91\xe6\x98\xaf\xe8\xb0\x81'
>>> print("v2 = " ,v2)
v2 =  b'\xce\xd2\xca\xc7\xcb\xad'

2.3 str对象.endswith() && startswith()

2.3.1 endswith(字符子集,起始位置-可选,结束位置-可选)

查看字符是否以该字符来作为结尾

>>> s = "aabbaabbccddee"
>>> v1 = s.endswith("ee")
>>> v2 = s.endswith("de",-8,-1)
>>> print("v1 = " ,v1)
v1 =  True
>>> print("v2 = " ,v2)
v2 =  True

2.3.2 startswith(prefix, start=None, end=None)

>>> s = "aabbaabbccddee"
>>> v1 = s.startswith("aa")
>>> v2 = s.startswith("ab")
>>> v3 = s.startswith("ab",1,-1)
>>> v1
True
>>> v2
False
>>> v3
True

2.4 str对象.expandtabs(tablesize=8)

  • tabsize – 指定转换字符串中的 tab 符号(’\t’)转为空格的字符数。

该方法返回字符串中的 tab 符号(’\t’)转为空格后生成的新字符串。

>>> s = "12\t3"
>>> v1 = s.expandtabs(tabsize=20)
>>> v1
'12                  3'
>>> len(v1)
21
>>> v2 = s.expandtabs()
>>> v2
'12      3'
>>> len(v2)
9

# 应用
>>> s = "My name is %s \t  My age is %d \t My car is %s"
>>> jack = s % ("Jack", 21,"BMW")
>>> john = s % ("John",22,"BEN-Z")
>>> print(jack.expandtabs(20))
My name is Jack       My age is 21       My car is BMW
>>> print(john.expandtabs(20))
My name is John       My age is 22       My car is BEN-Z

2.5 str对象.find() && rfind()

2.5.1 find(sub, start=None, end=None)

Sub - 指定检索的字符串

Start-开始索引,默认为0

End-结束索引,默认为字符串的长度

返回:如果包含子字符串返回开始的索引值,否则返回-1。

>>> s = "aabb123ss1122"
>>> v1 = s.find("1")
>>> v2 = s.find("ab")
>>> v3 = s.find("a",5,-1)
>>> v1
4
>>> v2
1
>>> v3
-1

2.5.2 rfind(sub, start=None, end=None)

refind()类似于 find()函数,不过是从右边开始查找

>>> s = "11AAAAAAa11AAAAAAAAAA11"
>>> print(s.rfind("11"))
21
>>> print(s.rfind("11",0,7))
0
>>> print(s.rfind("11",3,7))
-1

2.6 str对象.format( *args, **kwargs) && format_map(mapping)

2.6.1 format( *args, **kwargs)

2.6.2 format_map(mapping)

2.7 str对象.index() && rindex()

2.7.1 index(sub, start=None, end=None)

sub - 指定检索的字符串

start - 开始索引,默认为0

end = 结束索引,默认为字符串的长度

返回:如果包含子字符串返回开始的索引值

>>> s = "您好,abc,123,abc,您好"
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值