玩转python字符串

382 阅读5分钟

这是我参与更文挑战的第 4 天,活动详情查看: 更文挑战

回顾复习

python字符串,是我们最常用的数据类型,本期就来学习,我们日常工作一些常见使用方法。

字符串的本质是:字符序列。python的字符串是不可变的,无法对原字符串做任何修改。

python不支持单字符类型,单字符也是作为一个字符串使用的。

python3默认编码是Unicode,可以表示世界上任何书面语言的字符。Python3的字符默认是16为Unicode编码,ASCII码是Unicode编码子集。

1.字符编码

python3默认编码是Unicode,可以表示世界上任何书面语言的字符。

Python3的字符默认是16为Unicode编码,ASCII码是Unicode编码子集。


#定义一个单字符

Name = "B"

#使用ord(),查看字符的Unicode编码

print(ord(Name))  #Unicode 码为66


#使用chr().把十进制数字转换成对应的字符

print(chr(66))   #字符为'B'

2.字符串长度

# 定义一个空字符

Name = " "

# 使用len()函数

print(len(Name)) #打开印空字符的长度为0

# 定义一个字符串

MyName = "JUEJING"

# 使用len()函数

print(len(MyName)) #打开印空字符的长度为7

image.png

3.转义字符

我们可以使用"+特殊字符",实现某些难以用字符表示的效果。比如,换行等

常见的转义字符如下:

image.png

#定义一个字符串

Word = "ILikeJUEJING"

# 添加换行符 \n

Word2 = "I\nLike\nJUEJING"

print(Word)

print(Word2)

image.png

4.切割字符串

4.1 使用 [头下标:尾下标]

python的字串列表有2种取值顺序:

从左到右索引默认0开始的,最大范围是字符串长度少1

从右到左索引默认-1开始的,最大范围是字符串开头

image.png

截屏2021-06-04 22.53.27.png

Word = "JUEJING"

# 从左到右索引
print(Word)
print(Word[0])  # J
print(Word[1:5])  # UEJI
print(Word[1:])   # UEJING

image.png

Word = "JUEJING"

# 从右到左索引
print(Word[-7:]) # 与Word一样
print(Word[-6:-4])  #UE
print(Word[-6:-1:2]) #从U开始到G,取间隔2个到字母
print(Word[::-1])  #逆序输出

结果展示:

截屏2021-06-04 22.30.09.png

4.2 使用split()函数

python内置的split()的函数,可以基于指定分隔符将字符串分隔对多个子字符串(存储在列表中)

如果不指定分隔符,则默认为使用空白字符(换行符/空格/制表符)

#定义一个字符串

Word = "I Like JUEJING Like"

#使用split()函数进行分割

print(Word.split()) #默认空格

print(Word.split("Li"))  #指定分隔

image.png

5.拼接字符串

5.1 使用 + 来拼接

操作技巧:

  • 可以使用 + 将多个字符串拼接起来。 (1)如果+ 两边都是字符串,则拼接

(2)如果+两边都是数字,则加法运算

(3)如果+两边类型不同,则抛出异常


# 定义3个字符串

w1 = "I"
n1  = 2
n2  = 3
w2 = "Like"


# 进行拼接操作

print(w1+w2)  # 两边都是字符串,则进行拼接

print(n1+n2) # 两边都是数字,则进行加法运算

print(w1+n1) # 会报错

image.png

  • 可以将多个字面字符串直接放到一起实现拼接。
# 定义3个字符串

w1 = "I"
w2 = "Like"
w3 = "JUEJING"

# 使用加号讲他们拼接起来

w4 = w1+w2+w3

print(w4) #打印w4 "ILikeJUEJING"

内存形式变化情况如下:

image.png

5.2 使用join()函数

python内置函数join()函数,可以将一系列子字符串连接起来

# 定义对象

a = ['I','Like','JUEJING']

#使用join()函数连接起来

print(" ".join(a))

image.png

拼接字符串重点:

  • 对性能不要求:“+”和join()函数都可以使用

  • 对性能有要求的话:建议使用join() 原因:使用字符串拼接符“+”,会生成新的字符串对象;使用join()函数,在拼接字符串之前会计算所有字符串的长度,然后逐一拷贝,仅新建一次对象

6.字符串比较

首先,我们了解一下python的字符串驻留机制

字符串驻留: 仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串驻留池中

Python 支持字符串驻留机制,对于符合标识符规则的字符串(仅包括下划线(_),字母和数字)会启用字符串驻留机制。

截屏2021-06-04 23.09.35.png

字符串比较和同一性

我们可以直接使用 == ,!= 对字符串进行比较,是否含有相同的字符

我们使用is和not is,判断两个对象是否为同一个对象,是id(obj1)和id(odj2)s是相等

7.字符串常用方法

7.1 常用的查找方法:

w = "JUEJING"

方法说明
len(w)字符串长度
w.startswith("JU")以指定字符串开通
w.endswith("NG")字符串长度
w.find("JU")第一次出现指定字符串的位置
w.rfind("J")最后一次出现指定字符串的位置
w.count("J")指定字符串出现的次数
w.isalnum()所有字符石字母或数字
7.2 去首尾信息

我们可以通过strip()去除字符串首尾指定信息。

通过lstrip()去除字符串左边的指定信息

通过rstrip()去除字符串右边边的指定信息

截屏2021-06-04 23.27.22.png

7.3 格式排版

我们可以使用center(),ljust(),rjust()三个函数用于对字符串实现排版

截屏2021-06-04 23.33.20.png

7.4 其他方法
  1. isalnum() 是否为字母或者数字
  2. isalpha() 检查字符串是否由字母组成(含汉字)
  3. isdigit() 检查字符串是否由数字组成
  4. isspace() 检查是否为空白符
  5. isupper() 检查是否为大写字母
  6. islower() 检查是否为小写字母

截屏2021-06-04 23.33.20.png