python数据类型之字符串str常用方法

字符串-str
下标index和切片
# 下标和切片
# 索引 (下标)
"""    
    所谓“下标”,就是编号,就好比超市中的存储柜的编号,通过这个编号就能找到相应的存储空间
    列表与元组支持下标索引好理解,字符串实际上就是字符的数组,所以也支持下标索引。
    如果想取出部分字符,那么可以通过下标的方法.
     p  y  t  h  o  n 
     0  1  2  3  4  5   正向取值,下标第一位为0
    -6 -5 -4 -3 -2 -1   倒序取值,下标第一位为-1
    
    s = "Never stop learning!"
    说明: “位置”指的是字符所处的位置(比如位置1,指的是第一个字符“N”),
          “索引”指的是字符的索引值(比如索引0,代表的是第一个字符“N”)
           开始位置,是指字符串起始,即下标为0开始。
           末尾,是指字符串最后。
"""
s = "Never stop learning!"
indexes = s[0]
print(indexes)   # 输出为:N

# 切片
"""
    切片是指对字符串截取其中一部分的操作。字符串、列表、元组都支持切片操作。
    切片格式:字符串[起始索引:结束索引:步长]
    注意:选取的区间属于“左闭右开型”,即从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身)。
"""
print(s[:3])  # 下标从0开始,结束下标为2,默认步长为1   取下标为0,1,2的字符 取头不取尾
print(s[:])  # 下标从0开始,一直到字符串最后。步长为1
print(s[2:])  # 下标从2开始,一直到最后。
print(s[::2])  # 下标从0开始,步长为2,下标+2,取下标为0,2,4,6,8...的字符
print(s[1::2])  # 下标从1开始,步长为2,下标+2,取下标为1,3,5,7,9...的字符
# 如果步长是正数,正向取。如果步长是负数,倒序取。
print(s[::])  # 全取
print(s[::-1])  # 倒序 - 反转

"""
输出结果
Nev
Never stop learning!
ver stop learning!
Nvrso erig
ee tplann!
Never stop learning!
!gninrael pots reveN
"""
split() 分隔符切片
# 语法:str.split(str="", num=string.count(str)).
# split():拆分字符串。通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list),如果参数 num 有指定值,则分隔 num+1 个子字符串
# os.path.split():按照路径将文件名和路径分割开
split_str = "Google#Runoob#Taobao#Facebook"
print(split_str.split("#"))      # 以#为分隔符,分隔所有
print(split_str.split('#', 2))  # 以#为分隔符,分隔成三个
"""
输出结果:
['Google', 'Runoob', 'Taobao', 'Facebook']
['Google', 'Runoob', 'Taobao#Facebook']
"""
s = '<script src="https://g.csdnimg.cn/common/csdn-toolbar/csdn-toolbar.js" type="text/javascript"></script>'
print(eval(s.split("=")[1].split(" ")[0]))
# 输出结果:
# https://g.csdnimg.cn/common/csdn-toolbar/csdn-toolbar.js
join()/+ 拼接
# join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
#  + 将指定字符串拼接成新的字符串
str1 = "123"
str2 = "abc"
print(str1.join(str2))
print(str1+str2)
"""
输出结果:
a123b123c
123abc
"""
seq4 = {"hello": 1, "girls": 2, "welcome": 3, "to": 4, "China": 5}
print(" ".join(seq4))
# hello girls welcome to China
strip() 删除
# strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。
# 注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
str = "123abcrunoob32"
print(str.strip('12'))  # 删除头尾字符序列为 1和2的所有字符

str = "00000003210Runoob01230000000";
print(str.strip('0'))  # 去除首尾字符 0
print(str.lstrip("0"))  #只去头
print(str.rstrip("0"))  #只去尾部

str2 = "   Runoob b     "  # 去除首尾空格
print(str2.strip())

"""
输出结果:
3abcrunoob3
3210Runoob0123
3210Runoob01230000000
00000003210Runoob0123
Runoob b
"""
find() 查找
# find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。
# 语法 :str.find(str, beg=0, end=len(string))
info = 'abca'
print(info.find('a'))    # 从下标0开始,查找在字符串里第一个出现的子串,返回结果:0
print(info.find('a', 1))  # 从下标1开始,查找在字符串里第一个出现的子串,返回结果:3
print(info.find('3'))    # 查找不到返回-1
replace() 替换
# replace()方法把字符串中的old(旧字符串) 替换成new(新字符串),如果指定第三个参数max,则替换不超过max次。
# 语法:str.replace(old, new, [max])
str1 = 'is is is is'
print(str1.replace("is", "was"))	#将所有is转换为was
print(str1.replace("is", "was", 2))  #将前2个is转换为was
"""
输出结果:
was was was was
was was is is
"""
endswith()/startwith()
#  startswith() 方法用于检查字符串是否是以指定子字符串开头
#  endswith()方法用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False。可选参数"start"与"end"为检索字符串的开始与结束位置。
# 语法:str.endswith(suffix, start, end)
s = "Never stop learning!"
print(s.startswith("Ne"))   # True  检索以Ne开头
print(s.startswith("Ne", 1))    # False 从下标1开始检索Ne
print(s.startswith("ev", 1, 5))    # True  从下标1(ever )开始检索ev
print(s.endswith("!"))  # True  检索以!结尾
print(s.endswith("!", 0, 10))   # False 检索前10位字符(Never stop)以!结尾
lower()/upper() 大小写转换
s = "Never stop learning!"
print(s.lower())    # 将所有大写字母转换成小写
print(s.upper())    # 将所有小写字母转换成大写
"""
输出结果:
never stop learning!
NEVER STOP LEARNING!
"""
len() 长度
# len() 方法返回对象(字符、列表、元组等)长度或项目个数。
print(len(s))	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值