一、补充上文
python全栈开发《31.format形式也是支持格式符号的》
number = int('123ab',16)
print(number)
运行结果: 74667
就是把'123ab'这个字符串以16进制转成数字(16是int这个函数的参数,代表字符串转成数字的规则),再通过int函数把这个16进制的数字转换成10进制的数字。然后print打印出来结果。
二、什么是转义字符
平时操作电脑,用word输入文字的时候,如果要换行或者要后退的时候,都可以通过键盘上指定的按键来帮助我们完成操作。
但是对于开发的时候,书写一个字符串,希望字符串进行换行等操作的时候,这些按键并不能帮助我们完成这些操作。
除非使用三引号的字符串。但是绝大多数的工作中并不使用这个字符串。
所以为了解决这个问题,python自己创造了一些特殊的字符。
通过使用这些特殊的字符,来指定一些特殊的功能。比如回车、换行、后退等操作。
1)将特定的字符转换成键盘可操作的其它含义的功能,就是转义字符。
python中的转义字符类似于格式化的格式符一样,都有自己的标准格式。
2)通过
\
+字符,就是特殊字符的语法格式。
三、python中的转义字符们
\n:换行的转义字符。一般用于末尾,本身可以用在字符串的任何位置。它放在哪里,字符串就会从哪里进行换行。
如果它放在末尾的话,当我们使用字符串的内置函数strip的时候,也会对\n符号有效。
\t:学名是横向制表符。通俗的说,就是一个间隔符。如果说普通的空格是占一个长度的位置,\t就是占用多个空格长度的符号。
\v:是纵向制表符。平时使用的频率是比较低的。通过print打印的时候,会输出一个男性符号。
\a:响铃符号。当输入\a,电脑真的会发出响声。
\b:是退格符。将光标前移,覆盖(删除前一个)。
\r:回车(回车就是换行),一般用\n代替。
\f:代表翻页的意思。直接输入\f之后,字符串中会出现一个女性的符号。
\'
:输入这个之后,即便字符串用单引号来包裹,内部也可以使用单引号来包裹内置的字符串。
\\
:如果斜杠在字符串中不表示特殊符号使用,只需要使用\\
,这个时候就可以成功得输出一个单斜杠了。
1.没办法不通过特殊字符来让一个字符串进行换行:
#coding:utf-8info = ('my name is'' xiaobian')
print(info)
如何让在is之后的位置进行换行呢?
如果不使用换行符,直接回车,这个时候pycharm自动在整个字符串的左右打出(),它是可以帮助多行字符串拼接在一起的方法。
运行结果:
/Users/llq/PycharmProjects/pythonlearn/pythonlearn/.venv/bin/python /Users/llq/PycharmProjects/pythonlearn/pythonlearn1/format3.py
my name is xiaobian进程已结束,退出代码为 0
2.使用三引号的形式,的确是换行了:
#coding:utf-8info = ('''my name is'' xiaobian''')
print(info)
运行结果:
/Users/llq/PycharmProjects/pythonlearn/pythonlearn/.venv/bin/python /Users/llq/PycharmProjects/pythonlearn/pythonlearn1/format3.py
my name is'' xiaobian进程已结束,退出代码为 0
在平时的工作中不会使用这种三引号的方式。
那么必须使用特殊符号来帮助我们来完成这个任务。
1 )通过\n来实现:
#coding:utf-8info = ('my name \nis xiaobian')
print(info)
运行结果:
/Users/llq/PycharmProjects/pythonlearn/pythonlearn/.venv/bin/python /Users/llq/PycharmProjects/pythonlearn/pythonlearn1/format3.py
my name
is xiaobian进程已结束,退出代码为 0
1.1)如果在xiaobian后面打一个\n:
#coding:utf-8info = ('my name \nis xiaobian\n')
print(info)
运行结果:
/Users/llq/PycharmProjects/pythonlearn/pythonlearn/.venv/bin/python /Users/llq/PycharmProjects/pythonlearn/pythonlearn1/format3.py
my name
is xiaobian进程已结束,退出代码为 0
那么xiaobian之后肯定也会换行。
1.2)通过格式化的形式配合特殊字符:
#coding:utf-8info = ('my name \nis %s\n' % 'xiaobian')
print(info)
运行结果:
/Users/llq/PycharmProjects/pythonlearn/pythonlearn/.venv/bin/python /Users/llq/PycharmProjects/pythonlearn/pythonlearn1/format3.py
my name
is xiaobian进程已结束,退出代码为 0
2)\t的用法:
info_2 = 'my name \tis xiaobian'
print(info_2)
运行结果:is和name之间有很多个空格。
my name is xiaobian
如果想要\t成为多个空格的效果,\t前面需要有一个空格。
2.1)去掉\t前面的空格,\t左右都没有空格了。这个时候\t就变成一个普通的空格:
info_2 = 'my name\tis xiaobian'
print(info_2)
运行结果:
my name is xiaobian
2.3)或者可以跟\n进行配合:
info_2 = 'my name \n\tis xiaobian'
print(info_2)
运行结果:
my name is xiaobian进程已结束,退出代码为 0
这样就可以另起一行和有多个间隔符(这里指的是空格)的存在了。
3)\v的用法:
在代码中打印,没有任何效果:
info_v = 'my name \vis xiaobian'
print(info_v)
运行结果:
my name is xiaobian
使用terminal终端:
在另外一些解释器下,\v可能就展示男性的符号了。不同的环境,得到的效果是不一样的。
4)\a的用法:
在代码中打印,没有任何效果:
info_a = 'my name \ais xiaobian'
print(info_a)
运行结果:
my name is xiaobian
使用terminal终端:
听到“咚”一声的响声。不同的电脑,听到的声音效果不一样。
这就说明很多的转义字符,在python脚本里并不能很好得体现出效果。只能在调试模式下才能展示出来。所以在平时的工作中,有一些转义字符就使用不上了。
5)\b的用法:
info_b = 'my name is xiaobian\b'
print(info_b)
运行结果:
my name is xiaobia
通过\b,xiaobian的最后一个字符n被抹去了。它就如同删除符号一样。
6)\r的用法:
info_b = 'my name is xiaobian\b'
print(info_b)info_r = 'my name is xiaobian\r'
print(1,info_r,info_b)
运行结果:
my name is xiaobiamy name is xiaobia
\r不仅仅是一个换行,它还会把整行的字符串整个抹去。只要在\r前面的字符信息,都会被删除,然后换行。
7)\f的用法:
依然打印不出什么效果:
info_f = 'my name is xiaobian\f'
print('f',info_f)
运行结果:
f my name is xiaobian
使用terminal终端:
依然没有效果,只是底下多了一行空行。所以在不同的解释器下,像某些特殊的符号,它的效果是不一样的。
8)\'
的用法:
print('my name is \'xiaobian\'')
运行结果:
my name is 'xiaobian'
9)\"
的用法:
print("my name is \"xiaobian\"")
运行结果:
my name is "xiaobian"
10)\\的用法:
print('my name is \\ xiaobian')
运行结果:
my name is \ xiaobian
使用的是\\
,展示的是\,说明右边的这个\已经不再是一个特殊的字符了,而是一个普通的\。