0
点赞
收藏
分享

微信扫一扫

字符串1:基础操作

DT_M 2022-05-03 阅读 59

目录

1. 单/双引号:single quotes/double quotes

2. 字符串换行

3. 长字符串:triple quotes

4. 原始字符串:r

5. 转义字符

5.1 编码转义字符

5.2 控制转义字符


若干个字符的集合就是一个字符串(String)。字符串的内容可以包含字母、标点、特殊符号、中文、日文等全世界的所有文字。

​可分为单引号:single quotes、双引号:double quotes、长字符串:triple quotes

1. 单/双引号:single quotes/double quotes

Python 字符串中的双引号和单引号没有任何区别。

当字符串内容中出现引号时,需要进行特殊处理:

  • 如字符串中只出现了单引号或双引号,那么我们可以使用另一种引号包围字符串;
  • 字符串里的引号前添加反斜杠\,对引号进行转义,让 Python 把它作为普通文本处理,可解决字符串同时出现单\双引号情况;
  • 使用原始字符串。
#单引号
print('i love china!')
i love china!

#双引号
print("i love china!")
i love china!

#使用另一种引号
print('I say:"Oh my god!"')
I say:"Oh my god!"
print("I say:'Oh my god!'")
I say:'Oh my god!'

#同时有单双引号,使用转义字符,否则报错
print('"life is short, Let's Learn python')
SyntaxError: unterminated string literal (detected at line 1)

print('\"life is short, Let\'s Learn python\"')
"life is short, Let's Learn python"

2. 字符串换行

Python 对程序的换行、缩进都有严格的语法要求。如字符串需要换行书写,必须在行尾添加反斜杠\,或者使用长字符串。

#换行书写
s = 'a\
... b\
... c'
print(s)
a bc

#换行书写+转义字符换行
s = 'a\n\
... b\n\
... c'
print(s)
a 
b
c

3. 长字符串:triple quotes

长字符串格式如下:

'''ABC'''
"""ABC"""

长字符串,使用三个单引号或者双引号可以对多行内容进行注释,支持直接换行,无需添加反斜杠\;

前后所用必须一致为单引号或双引号;

长字符串中放置单引号或者双引号不会导致解析错误;

长字符串中换行、空格、缩进等空白符都会原样输出,注意首行前有换行,则输出时出现空白行,如下:

s = '''
... abc d!
... 中文12。3'''

print(s)

abc d!
中文12。3

4. 原始字符串:r

字符串中的反斜杠\有着特殊的作用,即转义字符,此时有两种解决方法:

  1. 使用\\替换掉字符串中的\
  1. 字符串最前面使用字母r表示后续字符串是原始字符串,不使用任何转义字符

在原始字符串中,\不会被当作转义字符,所有的内容保持“原汁原味”,如下;

#因转义字符导致字符串输出错误
print("D:\three\two\one\now")    
D:    hree    wo\one
ow

#使用\\替换\
print("D:\\three\\two\\one\\now")
D:\three\two\one\now

#使用原始字符串
print(r"D:\three\two\one\now")
D:\three\two\one\now

如单双引号格式的原始字符串中出现引号,程序同样需要对引号进行转义,否则 Python 无法对字符串的引号精确配对,但此时用于转义的反斜杠会变成字符串内容的一部分,建议此种情况使用:原始字符串+长字符串 r'''abc''',如下:

print(r'I say:\"That\'s http:\\ABC?\"')
I say:\"That\'s http:\\ABC?\"
print(r'''I say:"That's http:\\ABC?"''')
I say:"That's http:\\ABC?"

由于Python 原始字符串中的反斜杠仍然会对引号进行转义,因此原始字符串的结尾处不能是反斜杠,否则字符串结尾处的引号会被转义,导致字符串不能正确结束。有两种方法解决该问题:

  • 使用\\替代\;
  • 单独书写反斜杠。
#使用\\替代\;
print('D:\\three\\two\\one\\now\\')
D:\three\two\one\now\

#单独书写反斜杠
print(r'D:\three\two\one\now''\\')
D:\three\two\one\now\

5. 转义字符

5.1 编码转义字符

Python 中,ASCII 字符除直接使用外,还可以应用它的ASCII编码值表示,参见Ascii码 。这种使用间接编码值来表示字符的方式称为转义字符(Escape Character)。

Python 中转义字符只能使用八进制或者十六进制转义字符表示;

\0 开头表示后跟八进制形式的编码值,\x 开头表示后跟十六进制形式的编码值,\0 和 \x 后最多只能跟两位数字;

ASCII 编码共收录了 128 个字符,所以八进制 \0 并不能表示所有的 ASCII 字符,\x 才可以表示所有 ASCII 字符;

Python 转义字符只对 ASCII 编码(128 个字符)有效,超出范围的行为是不确定的。

#8进制转义字符
print('\061')
1
print('\062')
2

#16进制转义字符
print('\x62')
b
print('\x61')
a

#8进制支持最大转义字符编码值
print('\077')
?

#16进制支持最大转义字符编码值
print('\xff')
ÿ

5.2 控制转义字符

 ASCII 编码,0~31(十进制)范围内的字符为控制字符,无法显示也无法直接从键盘输入,必须用转义字符的形式表示。

为方便记忆和使用,针对常用的控制字符,有如下简写控制字符列表:

转义字符

说明

\n

换行符,将光标位置移到下一行开头。

\r

回车符,将光标位置移到本行开头。

\t

水平制表符,即 Tab ,一般相当于四个空格。

\a

蜂鸣器响铃。当前计算机很多不带蜂鸣器,不一定有效。

\b

退格(Backspace),将光标位置移到前一列。

\\

反斜杠

\'

单引号

\"

双引号

\

续行符,字符串行尾使用,即一行未完,转到下一行继续写。

举报

相关推荐

0 条评论