Learning Python 018 Python2 和 Python3 中 range()函式的使用
- 使用的電腦系統:Windows 10 64位
- 使用的開發整合環境:PyCharm 2016.1.4
- 使用的Python的版本:python 2.7.10 和 python 3.5.0
range()
函式
- Python2中:用來建立一個列表(list)。
- Python3中:用來建立一個可以生成list或者tuple的生成器。
Python2 range()
函式 知識點
Python2 中的range()
函式可以生成一個list。(分配記憶體空間)
a = range(10)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
b = range(4,10)
# [4, 5, 6, 7, 8, 9]
Python2 中的xrange()
函式不是生成一個list,而是生成一個生成器,不分配記憶體。
a = xrange(10)
# xrange(10)
b = list(xrange(10))
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
c = tuple(xrange(10))
# (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
Python3 range()
函式 知識點
a = range(10)
# range(0, 10)
輸出:(打印出來的不是一個列表,而是一個生成器)。
Python3 選擇這樣做的原因:可以節約記憶體空間,詳情請參考這篇部落格:
Python3中的range()
函式的功能和Python2中的xrange()
函式一樣,所以在Python3中沒有xrange()
函式。
要想生成list或者tuple,這樣做:
a = list(range(10))
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
b = list(range(4,10))
# [4, 5, 6, 7, 8, 9]
a = tuple(range(10))
# (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
b = tuple(range(4,10))
# (4, 5, 6, 7, 8, 9)
range()
函式的使用
下面這段程式碼在Python2 和 Python3中得到的執行結果都是一樣的。
for i in range(10):
print(i)
輸出:
0
1
2
3
4
5
6
7
8
9
執行結果是一樣的,但是執行的原理不同:
- Python2:在第一次執行
range(10)
,就生成了一個[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
列表。 - Python3:在每次執行
range(10)
時,生成一個元素i
。
相關推薦
Learning Python 018 Python2 和 Python3 中 range()函式的使用
使用的電腦系統:Windows 10 64位 使用的開發整合環境:PyCharm 2016.1.4 使用的Python的版本:python 2.7.10 和 python 3.5.0 ra
Learning Python 017 — Python2 和 Python3 的記憶體釋放
使用的電腦系統:Windows 10 64位 使用的開發整合環境:PyCharm 2016.1.4 使用的Python的版本:python 2.7.10 和 python 3.5.0 學習Python的記憶體釋放知識點的動機 之前我學過很多Pyt
每日一讀:《關於python2和python3中的range》
sequence list() 生成 但是 如果 eth 索引 奇怪 saving 官網原話是這麽說的:In many ways the object returned by range() behaves as if it is a list, but in fact i
Python 面向物件--Python2和Python3中@abstractmethod的用法
抽象方法: 抽象方法表示基類的一個方法,沒有實現,所以基類不能例項化,子類實現了該抽象方法才能被例項化。 Python的abc提供了@abstractmethod裝飾器實現抽象方法,下面以Python3的abc模組舉例。 @abstractmethod: 見下圖的
Python2和Python3中print的不同點
換行 避免 不換行 現在 lap 信息 內置 引號 輸出字符串 在Python2和Python3中都提供print()方法來打印信息,但兩個版本間的print稍微有差異 主要體現在以下幾個方面: 1.python3中print是一個內置函數,有多個參數,而python2中p
由 Python2 和 Python3 中 socket.inet_aton() 實現不同引發的血案
err 主動 __name__ for print 別人 most ddr whole 這幾天在做一個功能實現的時候,需要把別人用 Python2.6 寫好的腳步轉成 Python3.4 實現,大部分地方轉化都沒啥問題,但是在 socket.inet_aton() 轉化的過
Python2 和 Python3 中默認編碼的差異
org gbk 不一致 sof unicode ignore 第一條 支持中文 win32 最近在使用 Python3.4 做一些腳本實現,發現對於編碼的處理上和 Python2.6 有很大的不同,就此機會把相關知識做個梳理,方便需要的時候查閱。 先說下概念和差異: 腳本
Python2和Python3中的rang()不同之點
用法 nbsp bsp 不同 .cn 有序 生成器 www .com 知道在python中rang()是一個有序的列表,在使用過程發現,Python2和Python3中的rang()不同之點,下面講述不同之點 1,Python2 rang()用法 ->
第一個python程式——python2和python3使用的主要區別
python2 和python3的主要區別: 編碼格式 python2中有兩種字串型別:Unicode字串和非Unicode字串。 Python3中只有一種型別:Unicode字串。 python2編碼格式:ASCII碼 python3編碼格式:unicode碼 2.
python2和python3中的urllib
在Python3中包urllib2歸入了urllib中,所以要匯入urllib.request,並且要把urllib2替換成urllib.request # python2 import urllib2 url = 'http://www.jianshu.com/trending/we
python2和python3中整數相除的區別
今天初次接觸python,學習的是python2,我的編譯器是python3,所以在學除法的時候,自己實驗的結果和教材結果不一致。 所以就查了一下,原來,python3做了優化,整數相除的結果可以為小數,比如10/4的結果就為2.5而不是py
python學習--python2和python3共存時如何優雅地用pip安裝模組?
參考網頁: 1. 同時裝了Python3和Python2,怎麼用pip? 2. How to install pip for Python 3 on Mac OS X? 自己試了一下,發現其實解決方案很簡單。 在python2時,使用語句: pip install xxx
Python2和Python3中urllib庫中urlencode的使用注意事項
前言 在Python中,我們通常使用urllib中的urlencode方法將字典編碼,用於提交資料給url等操作,但是在Python2和Python3中urllib模組中所提供的urlencode
python2和python3中的編碼問題
a = ‘中文’ 在python2中是utf-8格式的編碼 在python3中是unicode格式【unicode可以encode成任意其他格式的編碼】的編碼 在python2中,字串的表現形式以及編碼解碼如下 a = '中文' a '\xe4\xb
Python2和Python3中除法操作-的不同
X/Y 在3.0版本之前的Python中 >>>1/2 0 即一個整數(無小數部分的數)被另外一個整數除,計算結果的小數部分被截除了,只留下了整數部分 有時候,這個功能比較有用,譬如在做一些需要取位數上的值時可以利用此特性用於迴圈結束等,但通常,大家用不到
Python2 和 Python3 中的關鍵字
Python2中共有31個關鍵字: and del from not
python2 和python3中分別如何讀取文字
# # 解決方案 字串的語義發生了變化: # py2 py3 # str -> bytes # unicode -> str # py2.x 寫入檔案前對unico
Python2和Python3中列表推導式的不同
作用 循環 沒有 補充 小結 創建 列表推導 列表推導式 red Python2和Python3中列表推導式的不同 python2 >>> x = 'my girl' >>> lst = [x for x in '
Win中同時安裝python2和python3及SulimeText3的python IDE搭建
一、下載安裝Sublime Text3,初衷是不想忍受pycharm的開啟速度,想享受下飛的質感。Sublime Text3的安裝已經久遠,請自行google。 二、安裝python2.7與python3.6(或其它版本),下載地址https://www.python.org/ 1、下載
關於python2中的xrange和python3中的range.........
最近幾天改網上的程式碼(好吧,我只是個搬運工)。。。然後,有python2的程式碼xrange處在python3的地方報錯,然後我改成了range不報錯了,然後,實驗室的妹子問起原因,然後,我。。。。。。於是,仔細查了查他們之間的區別 先看結果: Pyt