# 练习8.打印, 打印
现在,我们学习一个字符串怎样使用更复杂的格式化字符。下面的代码看起来很复杂,但是如果你能将代码分段,并给每一行加上注释,你一样可以弄明白代码的意思。
~~~
formatter = "%r %r %r %r"
print formatter % (1, 2, 3, 4)
print formatter % ("one", "two", "three", "four")
print formatter % (True, False, False, True)
print formatter % (formatter, formatter, formatter, formatter)
print formatter % (
"I had this thing.",
"That you could type up right.",
"But it didn't sing.",
"So I said goodnight."
)
~~~
## 你看到结果
~~~
$ python ex8.py
1 2 3 4
'one' 'two' 'three' 'four'
True False False True
'%r %r %r %r' '%r %r %r %r' '%r %r %r %r' '%r %r %r %r'
'I had this thing.' 'That you could type up right.' "But it didn't sing." 'So I said goodnight.'
~~~
仔细研究一下,并尝试分析下我是怎样在一个格式化字符串内部嵌套使用格式化的
## 附加题
> 1.自己检查结果,记下你犯过的错误,并且在下个练习中尽量不犯同样的错误。2.注意最后一行程序中既有单引号又有双引号,你觉得它是如何工作的?
## 常见问题
### Q:我可以用`%s`或者`%r`来格式化字符串吗?
> 可以用`%s`,但是尽量在做调试的时候使用`%r`。%r显示的是变量“原始”的数据值,%r在打印的时候能够重现它代表的对象。
### Q:为什么给`one`使用引号,而不给`True`和`False`使用?
> Python识别 `True`和`False`表示真假的概念。如果你给它们加上引号,它们就变成了字符串,而不能用来判别真假了。在后面的习题27里,你会学到这些布尔值是如何运行的。
### Q: 我尝试在字符串中输入一些中文(或者其它非ASCII字符),但是`%r`打印出一些奇怪的符号。
> 换成`%s`试试,就能正常打印啦。
### Q:为什么有时候我写的是双引号,而`%r`打印输出的是单引号?
> Python可以用最有效的方式打印输出字符串,而不是直接复制你写的代码。你说的情况是很正常的,因为`%r`常用来调试或检查,因此没必要将它输出的很漂亮。
### Q:这些代码在Python3中为什么没有执行?
> 不要用Python3.用python2.7会好一些,最好用Python2.6。
### Q:我可以用IDE来执行程序吗?
> 不行,你现在需要学习使用命令行模式。这是你开始学习编程最好的方法,对你学习编程是很重要的。IDE不利于你使用本书学习编程。
- 序言
- 前言
- 简介
- 0:安装和准备
- 1:第一个程序
- 2:注释和“#”井号
- 3:数字和数学计算
- 4:变量和命名
- 5:更多的变量和打印
- 6:字符串和文本
- 7:更多的打印(输出)
- 8:打印, 打印
- 9:打印, 打印, 打印
- 10:那是什么?
- 11:提问
- 12:提示别人
- 13:参数, 解包, 变量
- 14:提示和传递
- 15:读文件
- 16:读写文件
- 17:更多文件操作
- 18:命名, 变量, 代码, 函数
- 19:函数和变量
- 20:函数和文件
- 21:函数的返回值
- 22:到目前为止你学到了什么?
- 23:阅读代码
- 24:更多的练习
- 25:更多更多的练习
- 26:恭喜你,可以进行一次考试了
- 27:记住逻辑
- 28:布尔表达式
- 29:IF 语句
- 30:Else 和 If
- 31:做出决定
- 32:循环和列表
- 33:while循环
- 34:访问列表元素
- 35:分支和函数
- 36:设计和调试
- 37:复习符号
- 38:列表操作
- 39:字典,可爱的字典
- 40:模块, 类和对象
- 41:学会说面向对象
- 42:对象、类、以及从属关系
- 43:基本的面向对象的分析和设计
- 44:继承Vs.包含
- 45:你来制作一个游戏
- 46:项目骨架
- 47:自动化测试
- 48:更复杂的用户输入
- 49:写代码语句
- 50:你的第一个网站
- 51:从浏览器获取输入
- 52:开始你的web游戏
- 来自老程序员的建议
- 下一步
- 附录A:命令行教程
- 简介
- 安装和准备
- 路径, 文件夹, 名录 (pwd)
- 如果你迷路了
- 创建一个路径 (mkdir)
- 改变当前路径 (cd)
- 列出当前路径 (ls)
- 删除路径 (rmdir)
- 目录切换(pushd, popd)
- 生成一个空文件(Touch, New-Item)
- 复制文件 (cp)
- 移动文件 (mv)
- 查看文件 (less, MORE)
- 输出文件 (cat)
- 删除文件 (rm)
- 退出命令行 (exit)
- 下一步