python練習:打印,打印

練習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 g

oodnight.'

仔細研究一下,並嘗試分析下我是怎樣在一個格式化字符串內部嵌套使用格式化的

附加題

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不利於你使用本書學習編程。


分享到:


相關文章: