Python字符串

字符串的常用操作

查询操作
  • index(),查找子串第一次出现的位置,未找到抛出ValueError
  • rindex(),查找子串最后一次出现的位置,未找到抛出ValueError
  • find(),查找子串第一次出现的位置,未找到返回-1
  • rfind(),查找子串最后一次出现的位置,未找到返回-1
a='hellohello'
print(a.index('l'))
print(a.rindex('l'))
print(a.find('l'))
print(a.rfind('l'))

2
8
2
8

a='hellohello'
print(a.index('k'))

File “C:/Users/DELL/PycharmProjects/马Python/CSDN/格式化.py”, line 38, in
print(a.index(‘k’))
ValueError: substring not found

a='hellohello'
#print(a.index('k'))
print(a.find('k'))

-1

大小写转换操作
  • upper()全部转为大写
  • lower()全部转为小写
  • title()每个单词首字母大写
  • swapcase()大写转小写,小写转大写
  • capitalize()第一个字符大写,其余都小写
a='hello,Python'
print(a.upper())
print(a.lower())
print(a.title())
print(a.swapcase())
print(a.capitalize())

HELLO,PYTHON
hello,python
Hello,Python
HELLO,pYTHON
Hello,python

内容对齐操作
  • center(),居中对齐,第一个参数指定宽度,第二个参数指定填充符(默认是空格),如果设置宽度小于实际宽度则返回原字符串
  • rjust(),右对齐,第一个参数指定宽度,第二个参数指定填充符(默认是空格),如果设置宽度小于实际宽度则返回原字符串
  • ljust(),左对齐,第一个参数指定宽度,第二个参数指定填充符(默认是空格),如果设置宽度小于实际宽度则返回原字符串
  • zfill(),右对齐,左边用0填充,只接受一个参数,如果设置宽度小于实际宽度则返回原字符串
a='python'
print(a.center(10,'*'))
print(a.center(10))
print(a.rjust(10,'*'))
print(a.ljust(10,'*'))
print(a.zfill(10))
print('-2022'.zfill(10))

python
python
python
python

0000python
-000002022

劈分操作
  • split(),从字符串左边开始劈分,sep指定劈分符,默认劈分符是空格,maxsplit指定劈分次数,返回值为列表
  • rsplit(),从右边开始劈分
a='hello java python'
print(a.split())
b='hello,java,python'
print(b.split(','))
print(b.split(sep=',',maxsplit=1))
print(b.rsplit(','))
print(b.rsplit(sep=',',maxsplit=1))

[‘hello’, ‘java’, ‘python’]

[‘hello’, ‘java’, ‘python’]
[‘hello’, ‘java,python’]
[‘hello’, ‘java’, ‘python’]
[‘hello,java’, ‘python’]

判断操作
  • isidentifier()
    判断指定的字符串是不是合法的标识符
  • isspace()
    判断指定的字符串是否全部由空白字符组成(回车、换行,水平制表符)
  • isalpha()
    判断指定的字符串是否全部由字母组成
  • isdecimal()
    判断指定字符串是否全部由十进制的数字组成
  • isnumeric()
    判断指定的字符串是否全部由数字组成
  • isalnum ()
    判断指定字符串是否全部由字母和数字组成
a='hello%'
print('1',a.isidentifier())
b='hello'
print('2',b.isidentifier())

c=''
print('3',c.isspace())

d='hello'
e='中文'
print('4',d.isalpha())
print('5',e.isalpha())#isalpha会把汉字判断为字母,这是固定用法

f='12345'
print('6',f.isdecimal())
g='12345一二三'
print('7',g.isdecimal())
print('8',g.isnumeric())

h='123abc'
print('9',h.isalnum())

1 False
2 True
3 False
4 True
5 True
6 True
7 False
8 True
9 True

替换与合并操作
  • 字符串的替换
    replace() 第1个参数指定被替换的子串,第2个参数指定替换子串的字符串,该方法返回替换后得到字符串替换的字符串,替换前的字符串不发生变化,调用该方法时可以通过第3个参数指定最大替换次数
  • 字符串的合并
    join()
    将列表或元组中的字符串合并成一个字符串
a='hello,python'
print(a.replace('python','java'))
aa='hello,python,python,python'
print(aa.replace('python','java',2))

print('*'.join(a))

s=['hello','world']
print('|'.join(s))
ss=('hello','world')
print('*'.join(ss))

hello,java
hello,java,java,python
hello*,python
hello|world
hello*world



字符串的比较操作

  • is比较的是地址,==比较的是内容
  • 是对字符串当中的字符依次比较
a='apple'
b='banana'
print(a==b)
print(a>b)
print(a<b)
#先取a中的第一个字符'a'与b中的第一个字符'b'作比较,比较的是'a'与'b'的ASCII码值
print(ord('a'))
print(ord('b'))
#相反的,也可获得97,98对应的字符
print(chr(97))
print(chr(98))

False
False
True
97
98
a
b


字符串的切片操作

  • [start:stop:step]
  • start默认为0,stop默认为末尾,step默认为1
  • step为负值时逆序输出
a='hello,python'
print(a[0:5:1])
print(a[::])
print(a[::-1])

hello
hello,python
nohtyp,olleh


格式化字符串

  1. %占位符
    • % s—>字符串
    • %d/%i—>整数
    • %f—>浮点数
  2. {}占位符
  3. f
name='张三'
age=19
print('1.','我的名字是%s,今年%d岁' % (name,age))
print('2.','我的名字是{0},今年{1}岁'.format(name,age))
print('3.',f'我的名字是{name},今年{age}岁')
  1. 我的名字是张三,今年19岁
  2. 我的名字是张三,今年19岁
  3. 我的名字是张三,今年19岁
  • 宽度及精度
print('%10f' % 3.1415926)
print('%.2f' % 3.1415926)
print('%10.2f' % 3.1415926)
#{}作占位符
print('{0:.2}'.format(3.1415926))#表示2位数
print('{0:.2f}'.format(3.1415926))#表示2位小数

3.141593
3.14
3.14
3.1
3.14


字符串的编码解码

  • 编码:将字符串转为二进制数(bytes)
  • 解码:将bytes类型数据转为二进制类型
#编码
s='不知天上宫阙,今夕是何年'
print(s.encode(encoding='utf-8'))#一个中文占3个字节
print(s.encode(encoding='gbk'))#一个中文占2个字节

#解码
b=s.encode(encoding='utf-8')
print(b.decode(encoding='utf-8'))

b’\xe4\xb8\x8d\xe7\x9f\xa5\xe5\xa4\xa9\xe4\xb8\x8a\xe5\xae\xab\xe9\x98\x99,\xe4\xbb\x8a\xe5\xa4\x95\xe6\x98\xaf\xe4\xbd\x95\xe5\xb9\xb4’
b’\xb2\xbb\xd6\xaa\xcc\xec\xc9\xcf\xb9\xac\xe3\xda,\xbd\xf1\xcf\xa6\xca\xc7\xba\xce\xc4\xea’
不知天上宫阙,今夕是何年

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值