笨方法学Python 习题 10: 那是什么?

来源:互联网 发布:聚宝盆软件官方下载 编辑:程序博客网 时间:2024/04/28 01:39
#!usr/bin/python# -*- coding:utf8 -*-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)while True:for i in ["/","-","|","\\","|"]:print ("%s\r" % i)


运行结果如下:

$ python ex10.pyI'm tabbed in.I'm spliton a line.I'm \ a \ cat.I'll do a list:* Cat food* Fishies* Catnip* Grass$


转义序列

下面列出了 Python 支持的所有转义序列。很多你也许不会用到,不过还是要记住它们的格式和功能。试着在字符串中应用它们,看看它们的功能。

\\ | Backslash () 反斜杠

\' | Single quote (‘) 单引号

\" | Double quote (”) 双引号

\a | ASCII Bell (BEL) 响铃符

\b | ASCII Backspace (BS) 退格符

\f | ASCII Formfeed (FF) 进纸符

\n | ASCII Linefeed (LF) 换行符

\N{name} | Unicode 数据库中的字符名,其中 name 就是它的名字(Unicode only) | \r ASCII | Carriage Return (CR) 回车符

\tASCII | Horizontal Tab (TAB) 水平制表符

\uxxxx | 值为 16 位十六进制值 xxxx 的字符(Unicode only)

\Uxxxxxxxx | 值为 32 位十六进制值 xxxx 的字符(Unicode only)

\v | ASCII Vertical Tab (VT) 垂直制表符

\ooo | 值为八进制值 ooo 的字符

\xhh | 值为十六进制数 hh 的字符


加分习题

①把这些转义字符记录到卡片上,并记住它们的含义。

②使用 ''' (三个单引号)取代三个双引号,看看效果是不是一样的?

将转义序列和格式化字符串组合到一起,创建一种更复杂的格式。

记得 %r 格式化字符串吗?使用 %r 搭配单引号和双引号转义字符打印一些字符串出来。 将 %r 和 %s 比较一下。 注意到了吗?%r 打印出来的是你作为程序员写在脚本里的东西,而 %s 打印的是你作为用户应该看到的东西。


常见问题回答

我还没完全搞明白上一习题,我可以继续吗?

可以,继续向下看,看完一部分后回头看自己以前在笔记本上记下来的不懂的知识点,看是不是已经明白了。有时你可能还需要回到前面的练习中重新复习一遍。

\\ 和别符号相比的有什么特别之处吗?

并无特别,这样只是为了输出一个反斜杠 (\),想想为什么要把它写成两杠。

// 和 /n 怎么不灵?

因为你用了斜杠 / 而不是反斜杠 \,它们是不一样的字符,功能也完全不同。

使用了 %r 后转义序列都不灵了。

因为 %r 打印出的是你写到代码里的原始字符串,其中会包含原始的转义字符。你应该使用 %s,记住这条:``%r`` 用作 debug,``%s`` 用作显示。

加分习题 #3 说是要组合什么的,是什么意思?

我想让你明白的一点是,所有这些习题中教你的东西都可以组合起来帮你解决问题。把你学过的格式化字符串的知识和你新学到的转义字符的只是组合起来,写一些代码。

''' 和 """ 哪个好?

风格问题。现在你就用 ''' 吧,以后碰到再说。有时候用某一种可能会更美观,有时候你要遵循之前的写法从而让整个项目代码风格一致,看具体情况吧。



原创粉丝点击