碰見有趣的問題必須記錄下來,當時的想法思路也要記下來測試
如下兩行代碼打印出來的結果會是什麼spa
print('2 * 3 = %d' % (2 * 3)) print('2 * 3 = %d' % 2 * 3)
對於第一行代碼,學過字符串格式化後,很容易就能看出來,打印結果爲:code
那麼第二行呢,想了好一下子實在是想不出來這行代碼打印出來的結果是什麼blog
因而就打印了一下結果,感受挺有趣的,第二行代碼的打印結果是:字符串
乍一看,這什麼玩意兒,根本沒有頭緒,爲何打印出來的結果會是這樣class
思惟定勢,受到了等號的影響,當時想的是2 * 3是等於2(字符串格式化)的呀,等於22是什麼鬼,並且爲何會有三個等號基礎
看到三個等號的時候,想着多是因爲後邊 * 3 的問題,可是當時一直沒想到能夠用其餘形式的代碼來驗證im
通過高人指點,他說:‘2 * 3’ * 3 print 一下這個看看,堅決果斷的就執行了一下,結果立馬瞭然img
print('2 * 3' * 3)
這行代碼的打印結果是:di
看到這裏,想必有點代碼基礎的人都能看明白了
後面接 * 3 就是 print語句要打印3次字符串
因爲字符串是數字,又有等號,數字又簡單,很容易就能本身算出接過來,容易受到思惟定勢的影響,一直在想爲何會是這個結果
其實,若是是大點的數字,一會兒算不出來的那種,可能就會很容易知道這個語句的執行狀況
print('15612 * 1546 = %d' % 15612 * 1546)
例如執行上述代碼,執行結果爲:
看到這麼一大串,很容易就會想到,那個 * 1546 是否是就是打印了 1546 次,而後再想到簡單的測試代碼
print('Hello world' * 3)
這個結果就很容易能弄明白這個語句形式的奧妙了