《笨办法学 python3》系列练习计划——10. 那是什么?转义字符
程序员文章站
2022-07-01 17:18:58
...
第 9 题 《9. 打印,打印,打印》 的练习里面有些奇怪的东西 """
三引号和 \n
转义字符。三引号上次有说过了,本题则主要练习转义字符。
转义字符
python 中有一些字符、字符组合有特殊的意义,比如说反斜杠和字母 n 组合: \n
。你也许猜出来了它的特殊意义是表示换行。因为这些字符需要表达的已经不在是原来的意义,所有人们称其为“转义字符”。
又例如我们想在一段字符串中同时使用单引号和双引号就可以为引号前加上反斜杠,把“定义字符串”的意义转义为“字符中的标点符号”这个意义(这是一个把特殊意义转义为字符的例子,而 \n
是把 n 的字符转义为特殊意义。不过站在 python 的角度把引号变为字符才更特殊。)
# 失败的例子
print("python 使用双引号 " 或单引号 ' 来定义一段字符串")
可以看到语法出错了
# 正确的例子,把双引号变为字符意义
print("python 使用双引号 \" 或单引号 ' 来定义一段字符串")
题目
练习使用转义字符
加分练习
- 搜索还有哪些转义字符。
- 使用
'''
(三单引号)取代三个双引号会怎样? - 将转义字符和格式化字符放在一起使用,创建一个更复杂的格式。
- 使用
%r
搭配单引号和双引号转义字符打印一些字符串出来。将%r
和%s
比较一**意观察,%r
打印的是脚本中键入的内容,而%s
是平时应该看到的内容。
我的答案
10.0 基础练习
tabby_cat = "\tI'm tabbed in."
persian_cat = "I'm split\non a line."
backslash_cat = "I'm \\ a \\ cat."
# 单引号和双引号是一样的。
fat_cat = ("""
I'll do a list:
\t* Cat food
\t* Fishies
\t* Catnip\n\t* Grass
""")
print(tabby_cat)
print(persian_cat)
print(backslash_cat)
print(fat_cat)
这个练习中,答案中的文字间隔才最重要。
10.1 python转义字符
转义字符 | 含义 |
---|---|
\n |
ASCII 换行符 |
\\ |
反斜杠( \ ) |
\' 和 \"
|
表示引号( ' 和 " ) |
\ (在行末) |
不换行 |
\t |
ASCII 横向制表符 |
\v |
ASCII 纵向制表符 |
\a |
ASCII 响铃 |
\b |
ASCII 退格(将后面的字符前移) |
\e |
|
\000 |
空(但不是空格) |
\r |
ASCII 回车(效果类似 \b 但是看起是光标退掉整行内容,移动到了本行开头位置后输出后面的内容) |
\f |
换页(据说在有些终端会清空屏幕) |
\ooo |
八进字符,ooo代表的字符的值,例如:\044是美元符$
|
\xhh |
十六进制字符,hh代表的字符的值,例如:\x44是大写D
|
# 转义字符演示
# r''是原始字符串,和 %r 有点像——保持原始数据不会转义字符
print(r"\n 【换行】演示:", "\n第一行\n第二行")
print("-" * 20)
print(r"\\ 【反斜杠】演示:", "\n一个反斜杠:\\")
print("-" * 20)
print(r"\' 和 \" 【引号】演示:", "\n英文双引号:\", 英文单引号:\'")
print("-" * 20)
print(r"行末\ 【不换行】演示:", "\n我不想\
换行")
print("-" * 20)
print(r"\t 【制表符】演示:", "\n\t横向制表符")
print("-" * 20)
print(r"\v 【纵向制表符】演示:", "\n\v纵向制表符")
print("-" * 20)
print(r"\a 【响铃】演示:", "\n打开音响哦\a")
print("-" * 20)
print(r"\b 【退格】演示:", "\n退格键\b(后面要有东西才行)")
print("-" * 20)
print(r"\000 【空】演示:", "\n--\000--", ' ' == '\000') # 和空格不相等 False
print("-" * 20)
print(r"\r 【回车】演示:", "\naaa\r6666\r2333")
print("-" * 20)
print(r"\f 【翻页】演示:", "\n翻页\f翻页后")
print("-" * 20)
print(r"\ooo 【八进字符】演示:", "\n\044")
print("-" * 20)
print(r"\xhh 【十六进字符】演示:", "\n\x44")
10.3 转义字符 + 格式化字符
print("简单换个行%s" % "\n")
print("这次不换行%s" % "\\n")
返回目录
感谢 @敲敲敲可爱 同学的回复,发现了关于 转义字符
\r
意义说明的处的歧义 。
上一篇: TCP协议
下一篇: Python爬虫框架Scrapy学习笔记