【python基础】字符串str

字符串str

  1. 字符串:Python基本数据类型:是一个==不可变序列==

  2. 由一对单引号' '或一对双引号" "或由一对三单引号''' '''或三双引号""" """来表示

  3. 字符串的操作不改变原有字符串

1、字符串的操作符

操作符描述
+x+y,连接两个字符串xy
*x*nn*x,复制n次字符串x
inx in s,如果xs的字串,返回True,否则返回False
str1 = 'lijingyu'
str2 = "abcdefg"
print(str1 + str2)  # lijingyuabcdefg
print(str1 * 2)  # lijingyulijingyu
print('li' in str1)  # True
print('xi' in str1)  # False

2、字符串处理函数

函数描述
len(x)返回字符串x的长度,也可返回其它组合数据类型元素的个数
str(x)返回任意类型x所对应的字符串形式
print(len(str1))  # 8
print(len('abc' * 3))  # 8

print(str(12.3), type(str(12.3)))  # 12.3 <class 'str'>
print(str(12))  # 12
print(str(True), type(str(True)))  # True <class 'str'>

3、字符串处理方法

方法描述
s.lower()字符串s全部转为小写
s.upper()字符串s全部转为大写
s.count(sub)返回字串sub出现的次数
s.strip(chars)从字符串s中去掉其左侧和右侧chars中出现的字符
str1 = 'ddAdB,CD ef,ghaabcd'
print(str1.lower())  # ddadb,cd ef,ghaabcd
print(str1.upper())  # DDADB,CD EF,GHAABCD
print(str1.count('a'))  # 2
print(str1.strip('d'))  # AdB,CD ef,ghaabc

4、字符串的查询

方法名称作用
index()查找字串substr第一次出现的位置,如果查找的字串不存在,抛ValueError异常
rindex()查找字串substr最后一次出现的位置,如果查找的字串不存在,抛ValueError异常
find()查找字串substr第一次出现的位置,如果查找的字串不存在,返回-1
rfind()查找字串substr最后一次出现的位置,如果查找的字串不存在,返回-1
str1 = 'ddAdB,CD ef,ghaabcd'

print(str1.index('dd'))  # 0
# print(str1.index('ddd'))  # substring not found

print(str1.rindex('d'))  # 18
# print(str1.rindex('ddd'))  # substring not found

print(str1.find('dd'))  # 0
print(str1.find('ddd'))  # -1

print(str1.rfind('d'))  # 18
print(str1.rfind('ddd'))  # -1

5、字符串的拆分

方法作用
split()返回字符串中的单词列表,使用sep作为分隔符字符串。sep用来分割字符串的分隔符。None(默认值)表示根据任何空格进行分割,并从结果中丢弃空字符串。maxsplit最大分割次数。-1(默认值)表示无限制。
rsplit()返回字符串中的单词列表,使用sep作为分隔符字符串。sep用来分割字符串的分隔符。None(默认值)表示根据任何空格进行分割,并从结果中丢弃空字符串。maxsplit最大分割次数。-1(默认值)表示无限制。劈叉从绳子的末端开始,一直到前面。
s = 'hello#wor ld#pyth on'
print(s.split())  # ['hello#wor', 'ld#pyth', 'on']
print(s.rsplit())  # ['hello#wor', 'ld#pyth', 'on']

print(s.split(sep='#'))  # ['hello', 'wor ld', 'pyth on']
print(s.rsplit(sep='#'))  # ['hello', 'wor ld', 'pyth on']

print(s.split(sep='#', maxsplit=1))  # ['hello', 'wor ld#pyth on']
print(s.rsplit(sep='#', maxsplit=1))  # ['hello#wor ld', 'pyth on']

6、字符串的替换与合并

方法作用
replace()返回一个副本,其中所有出现的子字符串old都被new替换。count替换的最大次数。-1(默认值)表示替换所有匹配项。如果给出了可选参数count,则只出现第一个count更换。
join()连接任意数量的字符串。调用其方法的字符串被插入到每个给定字符串之间。结果以新字符串的形式返回。例如: '.'.join(['ab', 'pq', 'rs']) -> 'ab.pq.rs'
s = 'hello#wor ld#pyth on'
print(s.replace('#', '@'))  # hello@wor ld@pyth on
print(s.replace('#', '@', 1))  # hello@wor ld#pyth on

s1 = 'hi'
print(s1.join('abc'))  # ahibhic

7、 字符串的切片

对字符串中某个子串或区间的检索称为切片。

语法如下:字符串或字符串变量[N:M]

切片获取字符串NM(不包含M)的子字符串,其中,NM为字符串的索引序号,可以混合使用正向递增序号和反向递减序号。切片要求NM 都在字符串的索引区间,如果N大于M,则返回空字符串。如果N缺失,则默认将N设为0;如果M缺失,则默认表示到字符串结尾。

# [起始值:终止值:步长]  包含起始值,不包含终止值,步长默认值为1
print(str9[0:3])  # 正下标的切片
print(str9[-5:-2])  # 负下标的切片
print(str9[:3])  # 起始值不写,表示从头开始取值
print(str9[3:])  # 终止值不写,表示从起始值开始,后面全取
print(str9[:])  # 起始值和终止值都不写,全取

print(str9[::2])  # 步长为n时,表示每n位取一次值

# 步长为负数时,从右向左取值
# 步长为负数代表着从右向左取值,所以起始值大于终止值才能取到值
# 起始值与终止值的正负不影响方向,步长的正负影响方向

print(str9[::-1])
print(str9[2::-1])  # 取cba的值

8、格式化字符串

  1. %作为占位符
  2. {}作为占位符’'.format()
  3. f ‘我叫%s,今年%d岁了’ %s 占了一个字符串 %d 占了一个整数
name = '张三'
age = 20
print('我叫%s,今年%d岁了' % (name, age))  # % 作为占位符
print('我的名字是{0},我今年{1}岁了'.format(name, age))  # {} 作为占位符
print(f'我叫{name},今年{age}岁')

# 表示宽度 %10d
print('%10d' % 99)

# 表示小数点位数 %.nf  精度 :.n
print('%.3f' % 3.78234685)  # 三位小数
print('{:.3}'.format(3.34638567))  # 三位有效数字
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木子曰京习习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值