字符串是字符的序列表示,可以由一对单引号(‘)、双引号(“)或三引号(”’)构成。
其中,单引号和双引号都可以表示单行字符串,两者作用相同。使用单引号时,双引号可以作为字符串的一部分;使用双引号时,单引号可以作为字符串的一部分。三引号可以表示单行或者多行字符串。
3 种表示方式如下:
单引号字符串:‘单引号表示,可以使用"双引号"作为字符串的一部分’
双引号字符串:“双引号表示,可以使用’单引号’作为字符串的一部分”
三引号字符串:“'三引号表示可以使用"双引号”
‘单引号’
也可以换行
"’
打印字符串的 Python 程序运行结果如下,注意其中的引号部分:
print('单引号表示可以使用"双引号"作为字符串的一部分')
单引号表示可以使用"双引号"作为字符串的一部分
print("双引号表示可以使用'单引号'作为字符串的一部分")
双引号表示可以使用’单引号’作为字符串的一部分
print('''三引号中可以使用"双引号"
'单引号'
也可以换行''')
三引号中可以使用"双引号"
‘单引号’
也可以换行
input() 函数将用户输入的内容当作一个字符串类型,这是获得用户输入的常用方式。print() 函数可以直接打印字符串,这是输出字符串的常用方式。如下例子展示了如何用变量 name 来存储用户的名字,再输出这个变量的内容:
name = input("请输入名字:")
print(name)
请输入名字:Python 语言
Python 语言
字符串包括两种序号体系:正向递增序号和反向递减序号。如果字符串长度为 L,正向递增需要以最左侧字符序号为 0,向右依次递增,最右侧字符序号为 L-1; 反向递减序号以最右侧字符序号为 -1,向左依次递减,最左侧字符序号为 -L。这两种索引字符的方法可以在一个表示中使用。
Python 字符串也提供区间访问方式,采用 [N: M] 格式,表示字符串中从 N 到 M (不包含M) 的子字符串,其中,N 和 M 为字符串的索引序号,可以混合使用正向递增序号和反向递减序号。如果表示中 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 的长度,Python3 以 Unicode 字符为计数基础,因此,字符串中英文字符和中文字符都是 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~Z 用 65~90 表示,小写字母a~z 用 97~122 表示。
ASCII 编码针对英语字符设计,它没有覆盖其他语言存在的更广泛字符,因此,现代计算机系统正逐步支持一个更大的编码标准 Unicode, 它支持几乎所有书写语言的字符。Python 字符串中每个字符都使用 Unicode 编码表示。
chr(x) 和 ord(x) 函数用于在单字符和 Unicode 编码值之间进行转换。chr(x) 函数返回 Unicode 编码对应的字符,其中,Unicode 编码 x 的取值范围是 0 到 1 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 给出,则前 count 次 old 出现被替换 |
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
这次的分享就到这里了,继续加油哦^^