[Python] 字符串类型及其操作

字符串类型的表示

字符串是字符的序列表示,可以由一对单引号(‘)、双引号(“)或三引号(”’)构成。

其中,单引号和双引号都可以表示单行字符串,两者作用相同。使用单引号时,双引号可以作为字符串的一部分;使用双引号时,单引号可以作为字符串的一部分。三引号可以表示单行或者多行字符串。

3 种表示方式如下:
单引号字符串:‘单引号表示,可以使用"双引号"作为字符串的一部分’
双引号字符串:“双引号表示,可以使用’单引号’作为字符串的一部分”
三引号字符串:“'三引号表示可以使用"双引号”
‘单引号’
也可以换行
"’

打印字符串的 Python 程序运行结果如下,注意其中的引号部分:

print('单引号表示可以使用"双引号"作为字符串的一部分')

单引号表示可以使用"双引号"作为字符串的一部分

print("双引号表示可以使用'单引号'作为字符串的一部分")

双引号表示可以使用’单引号’作为字符串的一部分

print('''三引号中可以使用"双引号"
'单引号'
也可以换行''')

三引号中可以使用"双引号"
‘单引号’
也可以换行

input() 函数将用户输入的内容当作一个字符串类型,这是获得用户输入的常用方式。print() 函数可以直接打印字符串,这是输出字符串的常用方式。如下例子展示了如何用变量 name 来存储用户的名字,再输出这个变量的内容:

name = input("请输入名字:")
print(name)

请输入名字:Python 语言
Python 语言

字符串包括两种序号体系:正向递增序号和反向递减序号。如果字符串长度为 L,正向递增需要以最左侧字符序号为 0,向右依次递增,最右侧字符序号为 L-1; 反向递减序号以最右侧字符序号为 -1,向左依次递减,最左侧字符序号为 -L。这两种索引字符的方法可以在一个表示中使用。

Python 字符串也提供区间访问方式,采用 [N: M] 格式,表示字符串中从 NM (不包含M) 的子字符串,其中,NM 为字符串的索引序号,可以混合使用正向递增序号和反向递减序号。如果表示中 M 或者 N 索引缺失,则表示字符串把开始或结束索引值设为默认值。

字符串以 Unicode 编码存储,因此,字符串的英文字符和中文字符都算作 1 个字符。

实例:

name = "Python语言程序设计"
print(name[0])

print(name[0],name[7],name[-1])

print(name[2:-4])

print(name[:6])

print(name[6:])

print(name[:])

运算结果:

name = "Python语言程序设计"
print(name[0])

P

print(name[0],name[7],name[-1])

P 言 计

print(name[2:-4])

thon语言

print(name[:6])

Python

print(name[6:])

语言程序设计

print(name[:])

Python语言程序设计

反斜杠字符(\)是一个特殊字符,在字符串中表示转义,即该字符与后面相邻的一个字符共同组成了新的含义。例如,\n 表示换行,\\ 表示反斜杠,\’ 表示单引号,\" 表示双引号,\t 表示制表符(Tab)等。例如:

print("Python\n语言\t程序\t设计")

Python
语言 程序 设计

基本的字符串操作符

Python 提供了5个字符串的基本操作符

操作符 描述
x + y 连接两个字符串x与y
x * n 或 n * X 复制n次字符串x
XinS 如果x是s的子串,返回True,否则返回False
str[i] 索引,返回第i个字符
str[N: M] 切片,返回索引第N到第M的子串,其中不包含M
name = "Python 语言" + "程序设计" + "基础"

print(name)
print("Python 语言" in name)
print("Y" in "Python 语言")

Python 语言程序设计基础
True
False

print("GOAL! " * 3)

GOAL! GOAL! GOAL!

拓展:特殊的格式化控制字符

字符串中可以增加特殊的格式化控制字符,用来输出特殊效果。特殊的格式化控制字符使用反斜杠 (\) 开头,常用控制字符如下:

控制字符 效果
\a 蜂鸣,响铃
\b 回退,向后退一格。
\f 换页。
\n 换行,光标移动到下行首行。
\r 回车,光标移动到本行首行。
\t 水平制表。
\v 垂直制表。
\0 NULL,什么都不做。

需要注意的是,IDLE 开发环境不支持部分特珠控制字符,比如 \b\r 等,使用这些控制符的程序需要编写代码保存为 py 文件,然后在命令行下执行。

内置的字符串处理函数

Python 解释器提供了一些内置函数。其中,有6个函数与字符串处理相关。

len(x) 返回字符串 x 的长度,Python3Unicode 字符为计数基础,因此,字符串中英文字符和中文字符都是 1 个长度单位。

length = len("Python语言程序设计")
print(length)

12

函数 描述
len(x) 返回字符串 x 的长度,也可返回其他组合数据类型元素个数
str(x) 返回任意类型 x 所对应的字符串形式
chr(x) 返回 Unicode 编码 x 对应的单字符
ord(x) 返回单字符表示的 Unicode 编码
hex(x) 返回整数 x 对应十六进制数的小写形式字符串
oct(x) 返回整数 x 对应八进制数的小写形式字符串

每个字符在计算机中可以表示为一一个数字,称为编码。字符串则以编码序列方式存储在计算机中。目前,计算机系统使用的一个重要编码是 ASCII 编码,该编码用数字 0~127 表示计算机键盘上的常见字符以及一些被称为控制代码的特殊值。例如,大写字母 A~Z65~90 表示,小写字母a~z97~122 表示。

ASCII 编码针对英语字符设计,它没有覆盖其他语言存在的更广泛字符,因此,现代计算机系统正逐步支持一个更大的编码标准 Unicode, 它支持几乎所有书写语言的字符。Python 字符串中每个字符都使用 Unicode 编码表示。

chr(x)ord(x) 函数用于在单字符和 Unicode 编码值之间进行转换。chr(x) 函数返回 Unicode 编码对应的字符,其中,Unicode 编码 x 的取值范围是 01 114 111 (即十六进制数 0x10FFFF)。ord(x) 函数返回单字符 x 对应的 Unicode 编码。例如:

print("1 + 1 = 2 " + chr(10004))

1 + 1 = 2 ✔

print("巨蟹座符号♋的 Unicode 值是:" + str(ord("♋")))

巨蟹座符号♋的 Unicode 值是:9803

hex(x)oct(x) 函数分别返回整数 x 对应十六进制和八进制值的字符串形式,字符串以小写形式表示。例如:

print(hex(255))

0xff

print(oct(-255))

-0o377

内置的字符串处理方法

Python 解释器内部,所有数据类型都采用面向对象方式实现,封装为一个类。字符串也是一个类, 它具有字符串处理函数。在面向对象中,这类函数被称为“方法”。字符串类型共包含 43 个内置方法。鉴于部分内置方法并不常用,这里仅介绍其中 16 个常用方法。

方法 描述
str.lower() 返回字符串 str 的副本,全部字符小写
str.upper() 返回字符串 str 的副本,全部字符大写
str.islower() str 所有字符都是小写时,返回 True,否则返回 False
str.isprintable() str 所有字符都是可打印的,返回 True,否则返回 False
str.isnumeric() str 所有字符都是数字时,返回 Tue否则返回 False
str.isspace() str 所有字符都是空格,返回 True,否则返回 False
stt. endswith(suffix[,start[,end]]) str[start: end]suffix 结尾返回 True,否则返回 False
str.startswith(prefix[, start[, end]]) str[start: end]prefix 开始返回 True,否则返回 False
str.split(sep=None, maxsplit=-1) 返回一个列表,由 str 根据 sep 被分隔的部分构成
str.count(sub[,start[,end]]) 返回 str[start: end]sub 子串出现的次数
str.replace(old, new[, count]) 返回字符串 str 的副本,所有 old 子串被替换为 new,如果 count 给出,则前 countold 出现被替换
str.center(width[, fillchar]) 字符串居中函数,详见函数定义
str.strip([chars]) 返回字符串 str 的副本,在其左侧和右侧去掉 chars 中列出的字符
str.zfill(width) 返回字符串 str 的副本,长度为 width,不足部分在左侧添 0
str. format( ) 返回字符串 str 的一种排版格式
str.join(iterable) 返回一个新字符串,由组合数据类型 iterable 变量的每个元素组成,元素间用 str 分隔

str.split(sep=None, maxsplit=-1) 方法返回一个列表, 列表是一种存储多个数据的数据类型(后面的内容),其中,分隔 str 的标识符是 sep ,默认分隔符为空格。maxsplit 参数为最大分割次数,默认 maxsplit 参数可以不给出。

str.center(width[, fillchar]) 方法返回长度为 width 的字符串,其中,str 处于新字符串中心位置,两侧新增字符采用 fillchar 填充,当 width 小于字符串长度时,返回 str

str.zfill(width) 方法返回长度为 width 的字符串,如果字符串长度不足 width,在左侧添加字符 “0”,但如果 str 最左侧是字符 “+” 或者 “-”,则从第二个字符左侧添加 “0”,当 width 小于字符串长度时,返回 str。该方法主要用于格式化数字形字符串中。

print("Python is an excellent language.".split())

[‘Python’, ‘is’, ‘an’, ‘excellent’, ‘language.’]

print("PYTHON".center(40,'*'))

PYTHON

print("123".zfill(40))

0000000000000000000000000000000000000123

print("-123".zfill(40))

-000000000000000000000000000000000000123

这次的分享就到这里了,继续加油哦^^

猜你喜欢

转载自blog.csdn.net/weixin_62511863/article/details/124389215