1. 程式人生 > >Python 2和3的區別--生成器return

Python 2和3的區別--生成器return

日期: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。

相關推薦

Python 23區別--生成器return

日期:20170926 本目錄記錄的是,我用Python2不能正確執行,而Python3可以的。或者用Python2能正確執行,而Python3不可以的。 如果只是簡單學Python程式設計的,可以直接學Python3,因為Python2貌似不更新了。

Python 2 3區別及相容技巧

目錄 前言 最近 Python 之父 Guido van Rossum(龜爺)終於在 Python 官方郵件組落實了 Python 2.7 的終焉之日(EOL)。 Let’s not play games with semantics. The wa

在同一臺電腦安裝python 2 3,並且怎樣安裝各自的pip模塊

brush 地址 highlight 訪問 獲取 bootstra 電腦 ots ble 安裝python2.7 和 3.6不沖突直接安裝就行 安裝pip 訪問https://pip.pypa.io/en/stable/installing/獲取地址 curl ht

Python 2 Python 3區別

put 運行 標示 odin input raw 強調 pytho 輸入 Python 2 和Python 3 的區別: 1. 直接運行python,其實是調用的python2,輸入python3 ,其實是調用的是python3 2. 在python 2中需要提前標示出ut

Python 2 Python 3 主要區別有哪些(一)

哲學 因此 cti print語句 程序調試 ssi print 很多 efault Guido(Python之父,仁慈的獨裁者)在設計 Python3 的過程中,受一篇文章 “Python warts” 的影響,決定不向後兼容,否則無法修復大多數缺陷。---摘錄自《流暢的

python的基礎23區別,以及forwhile的循環

python基礎;2和3的區別 ;字符編碼;if;whil;for循環 ; 第三方庫 字典 1、python2\python3的區別:python2\python3的區別:一、代碼重復,python2代碼重復功能復用,夾雜其他語言的部分,不規範python3進行整合,簡潔優美編譯型:一次性

Python 2 Python 3區別

int pri 括號 xrange utf 生成器 utf-8 python 2 區別 Python 2:默認ASCII編碼 Python 3:默認UTF-8編碼 Python 2:輸出(加)括號 print ‘abc’,print a,print(‘‘abc),pr

Python 2 Python 3 主要區別有哪些(一)?

Guido(Python之父,仁慈的獨裁者)在設計 Python3 的過程中,受一篇文章 “Python warts” 的影響,決定不向後相容,否則無法修復大多數缺陷。---摘錄自《流暢的Python》 你可能從來沒有聽說過學 Java 的糾結是學 JDK6 還是 JDK7,也沒聽說學

Python 2Python 3區別

Python 社群,有這麼個怪問題:“學 Python 到底是學2還是學3?”這個問題就像月經一樣每隔斷時間就出現在你面前,也成了很多初學者的選擇困惑,這個問題的“始作俑者”當然是 Python 它爹,大家眾說紛紜,有說 Python2 是主流,大公司都在用,你應該學 2 。也有說 Python3

python 2 python 3的繼承

深度 spa init def cnblogs clas 廣度優先 sel utf-8 python 2 和 python 3 代碼均為: 1 #_*_coding:utf-8_*_ 2 #__author__ = "csy" 3 4 class A: 5

python23區別,怎麽樣做到輕松切換23

除了 之間 空格 Go 遍歷 error 努力 spa 捕獲異常 以下是菜鳥教程列舉的。這些零散的改變需要註意。 下面這些東西可能平時的程序根本沒用到,或者稍加註意就可以了。但2和3最主要的區別是,掌握編碼。 編碼在所有程序中無處不在,處理不好,要麽亂碼,要麽編碼

python 2Python3的常見區別及修改辦法

常見報錯如下: SyntaxError: Missing parentheses in call to 'print'. Did you mean print(x)?   NameError: name 'collections' is not defined   M

Python 3.7.2 3.6.8 版本正式釋出

   Python 3.7.2 和 3.6.8 現已正式釋出。 3.7.2 是 Python 3.7 的下一個維護版本,也是 Python 的最新功能版本。3.6.8 則是 Python 3.6 的下一個和最後一個 bug 修復版本。後續官方將提供 Python 3.

Python 2 Python 3 win10 下同時安裝 筆記

https://www.cnblogs.com/---JoyceLiuHome/articles/7852871.html     特別說明,本文是在Windows64位系統下進行的,32位系統請下載相應版本的安裝包,安裝方法類似。   使用python開發,環境有Py

PythonPython 2.* Python 3.* 的一些差別收集

Python 2 name Python 3 name urllib2.urlopen() urllib.request.urlopen()  urllib2.install_opener() urllib.request.install_opener()  urlli

比較Python 2 Python 3 在對list進行迴圈的執行效率

本文對Python 2 和 Python 3 對集合-list進行迴圈時的執行效率進行比較 首先我定義了一個for_test函式,然後利用ipython的魔法函式 %timeit進行執行速度的測試

pickle 在python 2python 3中相容性問題

以下的演示均在python 3環境下進行。 我們以一個簡單的檔案開啟和檔案讀為例說明,pickle讀檔案時可能存在的編碼問題: import gzip import pickle # 使用with結構避免手動的檔案關閉操作 with gzip.

Anaconda創建python(2.7/3.6)的虛擬環境後需要添加ipykernel

notebook install CP python pre 解決 回顧 ID 啟動不了 今天在工作的過程中遇到這樣一個問題:安裝完Anaconda利用conda創建了虛擬環境,但是啟動jupyter notebook之後卻找不到虛擬環境中的python kernel。後來

python isinstanceissubclass區別

分享圖片 alt sta () ima 分享 .com ins 技術 一、issubclass 判斷兩個類是否是同個類,或者有繼承關系。只能判斷類不能判斷實例 class A: pass class B(A): pass print(issubclass(

匯編實驗23

明顯 push a 內存地址 bsp 利用 需要 匯編指令 代碼 修改 很久沒更了,忙+懶。。。難受。 實驗2 (1)首先寫如下的匯編指令: 下面要求寫出各個寄存器的值,這裏直接在圖中表示,不在給出。 這裏可以看到ss是2200且sp開始為0100因為開始修改了它