日期:20170926

本目錄記錄的是,我用Python2不能正確執行,而Python3可以的。或者用Python2能正確執行,而Python3不可以的。

如果只是簡單學Python程式設計的,可以直接學Python3,因為Python2貌似不更新了。
如果想深入學習Python或者以Python的工作的,那有很大機率會遇到Python 2的程式碼,所以有必要知道Python 2和3的不同點。

當然,如果要用Python程式設計,最好選擇Python3,因為這是趨勢。如果你編Python2,卻在另一臺機的Python環境出錯(現在大多是裝Python3),那就尷尬了,對不?

Python3生成器支援return

程式碼,

#!/usr/bin/python3

def MyGenerator():
        yield 1
        yield 2
        yield 3
        return "done"

Num=MyGenerator()
print(next(Num))
print(next(Num))
print(next(Num))

執行,

[penx@ali01 python2]$ ./example_generator.py 
1
2
3
[penx@ali01 python2]$ 

結果,
正常執行。

Python2不可以

程式碼,
程式碼和上面的一樣,只是開頭用了Python2

執行,

[penx@ali01 python2]$ ./example_generator.py 
  File "./example_generator.py", line 7
    return "done"
SyntaxError: 'return' with argument inside generator
[penx@ali01 python2]$ 

結果,
報錯,

SyntaxError: ‘return’ with argument inside generator

說是在生成器不能有return

小結

Python3定義生成器時可用return。

.