運行該腳本將運行正如預期的及在Python 2.6通過文檔測試沒有任何錯誤:腳本不會在Python3.0
def num_even_digits(n):
"""
>>> num_even_digits(123456)
3
>>> num_even_digits(2468)
4
>>> num_even_digits(1357)
0
>>> num_even_digits(2)
1
>>> num_even_digits(20)
2
"""
count = 0
while n:
digit=n%10
if digit%2==0:
count+=1
n/=10
else:
n/=10
return count
if __name__ == '__main__':
import doctest
doctest.testmod()
在Python3.0這是輸出:
**********************************************************************
File "/home/calder/My Documents/Programming/Python Scripts/ch06.py", line 3, in
__main__.num_even_digits`
Failed example:
num_even_digits(123456)
Expected:
3
Got:
1
**********************************************************************
File "/home/calder/My Documents/Programming/Python Scripts/ch06.py", line 5, in
__main__.num_even_digits
Failed example:
num_even_digits(2468)
Expected:
4
Got:
1
**********************************************************************
1 items had failures:
2 of 5 in __main__.num_even_digits
***Test Failed*** 2 failures.
我曾嘗試運行Python腳本「2to3」,但不需要更改它說。有誰知道爲什麼腳本不能在Python 3中運行?
如何: 高清num_even_digits(N): 回報LEN(過濾器(拉姆達X:(INT(X)%2)== 0,STR (n))) 作爲一個更好的實現? – MarkR 2010-08-22 21:56:39
夥計,空間有什麼問題?你幾乎可以利用每一個機會擺脫他們的腳本。 – 2010-08-22 22:46:37