您的位置:首页 > 编程语言 > Python开发

Exercise 8: Printing ,Printing

2014-03-02 23:34 218 查看
原文链接:http://learnpythonthehardway.org/book/ex8.html

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."
)


你可以看到如下结果:

E:\>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、注意到输出的最后一行中一部分用了单引号一部分又用了双引号。你认为为什么会输出这样的结果呢?

学生遇见的常见问题:

我应该用%s 还是 %r来格式化?
答:你应该用%s来格式化,只有当你需要获取关于调试信息的一些东西的时候你可以用%r。%r 会给你显示原始状态的变量,也通常被称作为变量”再现“。

为什么你在 one 两边加了双引号,在True 和 False两边不加呢?
答:那是因为在Python中把True 和 False 作为代表对和错的关键字。如果你在它们两边加上了双引号,那么它们就会被转换成字符串而失去其本来的意义。你将在Exericise 27中学到更多关于它们的知识。

我试着放一些中文(或者其他非ASCII编码的字符)字符在字符串中,但是 %r 打印出来一些奇怪的符号。
答:你可以使用 %s 代替 %r去输出。

为什么我使用了双引号的字符串用 %r 输出来有时候是带单引号呢?
答:Python在输出字符串的过程中会尽可能选择高效的方式,不会完全重复你写的字符串。因为 %r这样输出对于用来检查和调试已经足够了,所以都以一模一样的输出也显得不是非常必要。

为什么这些在Python 3中无效?
答:不要使用Python  3,最好使用Python 2.7 ,尽管 Python 2.6 可能用起来更好。

我可以使用IDEL来运行这些吗?
答,不可以,你应该学习如何使用命令行。如果你想学习怎样编程的话学习使用命令行是学习编程最基础的东西也是一个很好的开始。IDLE可能在你学到后面的时候并不适用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Python print string