Python

Python 知识量:10 - 41 - 150

6.1 基础知识><

字符串索引- 6.1.1 -

在编程中,字符串无处不在,是非常重要的数据结构。Python有许多方法可以对字符串进行操作,首先要了解的就是访问字符串中的每个字符。

通常使用字符串索引来访问每个字符。Python中使用方括号“[]”来标识索引值,像下面这样访问字符:

>>> s='pnotes'
>>> s[0]
'p'
>>> s[1]
'n'
>>> s[2]
'o'
>>> s[3]
't'
>>> s[4]
'e'
>>> s[5]
's'

需要注意的是,字符串索引值总是从0开始计数,Java等其他多数主流编程语言也都是如此。因此,对于拥有n个字符的字符串来说,s[0]是字符串s的第一个字符,s[n-1]是其最后一个字符。可以将字符串索引理解为一把尺子,索引值就像刻度一样,表示当前字符与第一个字符的距离。

如果引用的索引值超出了字符串长度就会出现错误,例如:

>>> s='pnotes'
>>> s[6]
Traceback (most recent call last):
  File "<pyshell#7>", line 1, in <module>
    s[6]
IndexError: string index out of range

负数索引- 6.1.2 -

如果访问字符串s最后一个字符除了使用s[n-1]这种形式外,还可以使用更加便捷的负数索引方式,也就是从右到左查找字符串,如下所示:

>>> s='pnotes'
>>> s[-1]
's'
>>> s[-2]
'e'
>>> s[-3]
't'
>>> s[-4]
'o'
>>> s[-5]
'n'
>>> s[-6]
'p'

如果索引值超出字符串长度同样会出错。字符串的索引与负数索引对应关系如下图所示:

字符串s.png

循环访问字符- 6.1.3 -

通常使用for循环语句遍历字符串的每个字符,下面是一个示例:

#s.py
def sp(s):
    for w in s:
        print(w)

运行结果为:

>>> 
======================== RESTART: D:/PythonTestFile/s.py =======================
>>> sp('PNOTES')
P
N
O
T
E
S

在每轮for循环中,都会首先将w设置为字符串的下一个字符,利用索引进行的字符串访问由for语句自动完成。

字符的本质含义- 6.1.4 -

字符串由字符组成,而字符实际上对应的是字符编码。Python的字符编码遵循Unicode标准,该标准涵盖了全球各种语言的符号和字母。

要处理Python中的字符,可以使用ord()函数和chr()函数。

  • ord()函数用于将获取的字符表示成字符编码。

  • chr()函数用于根据字符编码表示对应的字符,功能与ord()函数正好相反。

#s.py
def useOrd(s):
    for w in s:
        print(ord(w))
def useChr(n):
        print(chr(n))

运行结果为:

>>> 
======================== RESTART: D:/PythonTestFile/s.py =======================
>>> useOrd('PNOTES')
80
78
79
84
69
83
>>> useChr(80)
P
>>> useChr(83)
S

转义字符- 6.1.5 -

并不是所有的字符都是可见的,例如换行、回车、制表符等等。虽然它们的效果可见,但对编程语言来说,它们不能被直接使用或打印出来。Python通过转义字符来表示这些特殊的字符,如下表所示:

表示方法
含义
\\
反斜杠
\'
单引号
\"双引号
\n换行符
\r回车
\t水平制表符

要表示特殊字符,需要在其前面加一个反斜杠。需要注意的是:转义字符作为单个字符,前面的第一个反斜杠不计入字符串长度。示例如下:

>>> print('I have a \'BIG\' house!')
I have a 'BIG' house!
>>> s='\\'
>>> print(len(s))
1