Python字符串大总结

这篇博客详细介绍了Python字符串的使用,包括常见转义字符、字符串切片、字符串方法、字符串函数、字符串格式化以及如何将列表转为字符串。重点讨论了split方法、join方法以及字符串格式化的多种方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字符串是由字符组成的序列。可以使用一对单引号或一对双引号来创建字符串。

使用 + 可以对字符串之间进行首尾连接,中间没有空格。使用 * 可以复制字符串,让字符串重复若干次。

常见转义字符

转义字符含义
\n换行符
\t横向制表符
\0空值
\’单引号 ’
\"双引号 "
\\\

空白泛指任何非打印字符,如空格、制表符\t、换行符\n。可以在字符串中添加这些空白,如下。

print('languages:\n\tc\n\tpython\n\tjavascript')

输出结果:

languages:
	c
	python
	javascript

字符串切片

字符串可通过方括号 [] 运算符来获取相应索引位置的字符。

Python有两种索引方式:
(1)正序,n 个字符,从 0 开始到 n-1
(2)逆序,n 个字符,从 -1 开始到 -n

切片共有 3 个参数,用冒号分隔开。第一个参数表示切片开始位置(默认为 0 ),第二个参数表示切片截止位置(但不包含该位置,默认为字符串长度),第三个参数表示切片的步长(默认为 1 )。第三个参数步长可以省略。

s = '0123456789'
print(s[::-1])
print(s[-3:-1])
print(s[-3:])
print(s[:-5])
print(s[:-5:-3])  # 逆序截取
print(s[:-5:-1])

输出结果:

9876543210
78
789
01234
96
9876

字符串方法

作用代码
删除末尾的所有空白(不能保存到str中,需要关联到str才行,同下)str.rstrip()
删除开头的所有空白str.lstrip()
删除开头末尾两边的所有空白(不删中间)str.strip()
全部大写str.upper()
全部小写str.lower()
所有单词仅首字母大写str.title()
返回某字符 a 在 str 中出现次数str.count(a)
返回某字符 a 在 str 中的索引值,若 a 不在 str 中则返回 -1str.find(a)
返回某字符 a 在 str 中的索引值,若 a 不在 str 中则报错str.index(a)
以指定字符串 a 作为分隔符,分隔开 s 中所有元素并合并为一个新的字符串,s 可以为字符串或列表等,注意 join 仅接受字符串值!a.join(s)
以指定分割符 a 分割字符串,返回列表类型str.split(a)
检查字符串是否以 a 开头,是则返回true,否则返回false。如果beg和end指定值,则在指定范围内检查str.startswith(a, beg = 0,end = len(str))
如果字符串只包含数字,则返回 Truestr.isdigit()或者str.isnumeric()
如果字符串至少有一个字符,且都是字母,则返回 Truestr.isalpha()
如果字符串至少有一个字符,且都是字母或者数字,则返回 Truestr.isalnum()
'a'.join('bcdfg')
>>>'bacadafag'

'!'.join(['b', 'a', 'p', 'v'])
>>>'b!a!p!v'

one = 'apple pear banana'
one.split(' ')   # 按照空格进行分割
>>>['apple', 'pear', 'banana']

two = 'x,y,z,h'
two.split(',')   #按照逗号进行分割
>>>['x', 'y', 'z', 'h']

name = ['张伯', '张仲','王五', '张叔', '李四']
for i in name:
    if i.startswith('张'):
        print(i, end = ' ')
>>>张伯 张仲 张叔 

注:split 方法经常在处理文本数据时使用!
在以某分隔符分隔输出时,join 方法的一种应用:

ls = ['2', '20', '200', '2000', '20000']
print(",".join(ls))
>>>2,20,200,2000,20000

但是要注意上面这个列表 ls 的各个值必须为字符串,如果为数字会出错,例如:

ls = [2,20,200,2000,20000]
print(",".join(ls))
>>>TypeError          Traceback (most recent call last)
<ipython-input-39-4220d7098a83> in <module>
      1 ls = [2,20,200,2000,20000]
----> 2 print(",".join(ls))

TypeError: sequence item 0: expected str instance, int found

字符串函数

函数功能
ord(str)将字符转换为对应的ASCII值
chr(str)将ASCII值转换为对应的字符
len(str)返回字符串长度
max(str)返回字符串中最大的字符
min(str)返回字符串中最小的字符

常用的ASCII值和控制字符转换:

print('ASCII值为179对应的字符为:',chr(179))
print('ASCII值为178对应的字符为:',chr(178))
print('ASCII值为65对应的字符为:',chr(65))
print('ASCII值为97对应的字符为:',chr(97))
>>>ASCII值为179对应的字符为: ³
ASCII值为178对应的字符为: ²
ASCII值为65对应的字符为: A
ASCII值为97对应的字符为: a


len(chr(179))
>>>1

字符串格式化

通用格式:
{ <参数序号> : <格式控制标记> } . format( <逗号分隔的参数> )

其中参数序号表示要对“逗号分隔的参数”中相应位置的参数进行格式化。

格式控制标记的先后顺序为:
1.填充字符,例如*、@、#等
2.对齐方式,<左对齐、>右对齐、^居中对齐
3.宽度,当前槽的设定输出字符宽度
4.千位分隔符(也就是英文逗号,)
5.精度(格式为" .精度 ",小数点开头),对于浮点数,精度表示小数部分输出的有效位数,例如“.2”表示保留两位小数;对于字符串,精度表示输出的最大长度。
6.整数类型/浮点数类型

其中,整数类型有:b二进制,c字符形式(Unicode编码形式),d十进制,o八进制,x小写十六进制,X大写十六进制。

浮点数类型有:e科学计数法(小e形式),E科学计数法(大E形式),f通常形式的小数,%百分数形式

n = 12345
print("{:@>30,}".format(n))

输出结果:

@@@@@@@@@@@@@@@@@@@@@@@@12,345

字符串格式化还有一种简写的格式:
f " { 需要格式化的参数 : 格式控制标记 }"

n = 12345
print(f"{n:@>30,}")

输出结果:

@@@@@@@@@@@@@@@@@@@@@@@@12,345

(两种方式格式化结果都是一样的)

列表转为字符串

方法一:使用 .join() 方法

lis = ['a','b','c','d','e']
s = ''.join(lis)
s2 = ','.join(lis)
print(s)
print(s2)
print(type(s))
print(type(s2))
>>>abcde
a,b,c,d,e
<class 'str'>
<class 'str'>

方法二:结合使用map函数
join()方法仅接受字符串值,因此在将python列表转换为字符串之前,我们使用map()来将这些int值转换为字符串。

lis2 = ['a','b','c','d','e',1, 2, 3]
s3 = ''.join(map(str,lis))
print(s3)
>>>abcde123

方法三:创建空字符串,使用 循环 和 str()

lis2 = ['a','b','c','d','e',1, 2, 3]
new = ''
for i in lis2:
    new += str(i)
print(new)
>>>abcde123
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值