我就不吐槽python3學習起來有多煩了,好多好多資源都是基於2的,3都出現這麼多年了,怎麼2還這麼多啊!對於初學者而言,每測試一個例子,就得去google各種2與3的區別,然後默默地改代碼,做測試,實在是非常影響學習效率。
就說說我看的官方的文檔吧,我開啟python tutorial,3.3.2版的,和我本地python一個版本,我隨便開啟了一個頁面,測試了一個例子,卻發現各種差別。
誰能告訴我這是為什麼啊???
官方文檔是這樣寫的:
在4.4 break, continue這一節當中,有一個例子:
>>> for n in range(2, 10):... for x in range(2, n):... if n % x == 0:... print(n, 'equals', x, '*', n//x)... break... else:... # loop fell through without finding a factor... print(n, 'is a prime number')
指南上的輸出是這樣的:
2 is a prime number3 is a prime number4 equals 2 * 25 is a prime number6 equals 2 * 37 is a prime number8 equals 2 * 49 equals 3 * 3
看起來很正常的樣子對伐啦?
我在本地IDLE寫了一下,一樣的代碼,這樣寫的:
for n in range(2,10):for x in range(2,n):if n%x == 0:print(n, 'equals', x, '*', n//x)breakelse:print(n, 'is a prime number')
運行結果卻是:
3 is a prime number
4 equals 2 * 2
5 is a prime number
5 is a prime number
5 is a prime number
6 equals 2 * 3
7 is a prime number
7 is a prime number
7 is a prime number
7 is a prime number
7 is a prime number
8 equals 2 * 4
9 is a prime number
9 equals 3 * 3
一個問題是2不見了這個我能理解,因為n=2的時候range(2,n)應該是空的,因為range左閉右開,不知道指南裡面是怎麼出現2的。
還有個問題是break似乎無用啊。