转义字符,就是通过改变字符原本的含义,达到在字符串中插入某些特殊字符或实现某些特殊功能的作用。
【部分特殊字符】
【部分特殊功能】
转义字符由2部分组成:
1.\
反斜杠
2.具有转义功能的首字母
【反斜杠的输入】
【具有转义功能的字符】
【备注】图片来源于风变编程。
\'
表示输入引号在print( )输出函数语法讲解中,我们说过如果输出的内容里含有单引号'
,则print( )函数括号内必须使用双引号或三引号。
# 输出内容Let's 里有单引号,print()函数里还用单引号,程序就会报错
print('Let's go home!')
【终端输出】
print('Let's go home!')
^
SyntaxError: invalid syntax
运行程序后提示invalid syntax
即无效语法。
invalid[ɪnˈvælɪd]:无效的,不成立的。
syntax [ˈsɪntæks]:语句、语法。
# 输出的内容Let's里有单引号可以使用双引号输出
print("Let's go home!")
【终端输出】
Let's go home!
# 输出的内容Let's里有单引号可以使用三引号输出
print('''Let's go home!''')
【终端输出】
Let's go home!
三引号是三个单引号,不可以输入一个单引号加一个双引号。
除了使用双引号、三引号我们也可以利用转义字符\'
实现单引号的输入。
【代码示例】
print('Let\'s go home!')
【终端输出】
Let's go home!
通过一个反斜杠+单引号就可以实现在字符串中直接输入一个单引号。
n是newline的首字母。
newline[n’ju:laɪn]:新行。
【代码示例】
print("张三李四")
【终端输出】
张三李四
上述代码中没有\n
,因此输出的张三李四
在同一行。
print("张三\n李四")
【终端输出】
张三
李四
在张三
后加一个\n
,意思是\n
后面的内容另起一行。
因此李四在第二行。
print("张三\n李四\n王五")
【终端输出】
张三
李四
王五
\n
的作用就是开始新的一行。
print("张三")
print("李四")
【终端输出】
张三
李四
print(value, …, sep=' ', end='\n', file=sys.stdout, flush=False)
一个完整的print()函数其实有5个参数:
print(520)
【终端输出】
520
520就是要输出的值。
print(2020,8,14)
【终端输出】
2020 8 14
这里一次性输出了3个值。
代码中2020
与8
之间用英文逗号分隔,8
与14
之间用英文逗号分隔。
输出的结果中2020
与8
之间有一个空格,8
与14
之间有一个空格。
【不设置sep参数,则默认空格】
print(2020,8,14)
【终端输出】
2020 8 14
没有设置sep参数,因此输出的三个值之间默认以空格分隔。
【设置sep参数为英文冒号】
print(2020,8,14,sep = ":")
【终端输出】
2020:8:14
设置sep参数为英文冒号,因此输出的三个值之间以英文冒号分隔。
【设置sep参数为英文感叹号】
print(2020,8,14,sep = "!")
【终端输出】
2020!8!14
设置sep参数为英文感叹号,因此输出的三个值之间以英文感叹号分隔。
【温馨提示】分隔符前后必须有引号,否则程序报错。
【错误示例】
print(2020,8,14,sep = /)
【终端输出】
print(2020,8,14,sep = /)
^
SyntaxError: invalid syntax
sep = /
中的/
前后没有引号,程序报错!
invalid syntax:无效语法。
invalid [ɪnˈvælɪd]:无效的。
syntax [ˈsɪntæks]:语法。
\n
结尾,即输出后会重新起一行。【默认换行】
print("张三")
print("李四")
【终端输出】
张三
李四
这是我们最常用的,用print连续实现多个输出。
第二个输出李四
之所以会在第二行,是因为每个print函数都默认以end='\n'
结尾,即以换行结尾。
【修改end参数】
print("张三",end="R")
print("李四",end="!")
【终端输出】
张三R李四!
这里我修改了第一个print函数的end
参数为R
,因此第二个输出李四
不会在第二行,而是紧跟在R
之后;
修改了第二个print函数的end
参数为!
,因此第二个输出李四
后会紧跟一个!
。
print("张三","\n")
print("李四")
【终端输出】
张三
李四
这里我又添加了一个\n
,观察输出结果,张三
和李四
之间多了一个空行。
\n
的作用是新起一行,类似回车的作用。
第一个print函数默认有end='\n'
,已经有一个换行了,在多加一个'\n'
,就有2个换行,因此张三
和李四
之间多出了一个空行。
print("张三\n")
print("李四")
【终端输出】
张三
李四
观察上述代码,这里的张三
是字符串类型,
"\n"
放在引号里,也是字符串类型,
字符串之间可以进行拼接,
因此也可以不写中间的引号,把字符串张三
和\n
直接放在一个引号里。
print("张三\b李四\b王五")
【终端输出】
张李王五
\b表示往前退一格,即删除前一个字符。
运行上述代码,程序删除了字符三
和四
。
b是backspace的首字母。
backspace [ˈbakspeɪs]:退格键。
运行下面的代码,观察输出结果,想一想李四
和王五
前为什么会有一个空格?
print("张三",'\n','李四','\n','王五')
【终端输出】
张三
李四
王五
上述代码中的'\n'
实现了换行的功能。
但我们没有设置print函数的sep参数,因此值与值之间默认会有一个空格作为分隔符。
设置sep参数,取消输出结果李四
和王五
前的空格:
【参考答案】
print("张三",'\n','李四','\n','王五',sep = "")
【终端输出】
张三
李四
王五
答案很简单,我们只需要将sep参数即值之间的间隔设置为空即可。
输入一个sep
,然后输入一个=
等于符号,再输入一对引号即可,注意引号中不能输入空格。