# 練習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)
- 下一步