1. python3邏輯運算符not
在python中,邏輯運算符的優先順序是邏輯運算符: or< and <not,所以在你的第一個問題print(1 and 2 or 3 and 4 and 6 and 7 or 8 not 9)中,優先計算not 9後發現8和false沒有任何運算符連接,故會報錯。此外,對於數字的運算,and取後而or取前,所以根據運算順序可以得知print( not 1 and 2 or 3 and 4 and 6 and 7 or 8)即為print( False or 7 or 8),得到結果7.
對於數字反復運用邏輯運算符一般是沒有意義的。望採納
2. python中and、or和not 三個邏輯運算符,一直理解不了,求幫助!
『and』、『or』和『not』的優先順序是not>and>or
3. python用什麼軟體
對於學習Python的小夥伴,首推的Pycharm。
首先,PyCharm用於一般IDE具備的功能,比如, 調試、語法高亮、Project管理、代碼跳轉、智能提示、自動完成、單元測試、版本控制。
另外,PyCharm還提供了一些很好的功能用於Django開發,同時支持Google App Engine,
更酷的是,PyCharm支持IronPython。PyCharm是一種Python IDE,帶有一整套可以幫助用戶在使用Python語言開發時提高其效率的工具,比如調試、語法高亮、Project管理、代碼跳轉、智能提示、自動完成、單元測試、版本控制。此外,該IDE提供了一些高級功能,以用於支持Django框架下的專業Web開發。
其次是sublime text
Sublime Text 支持多種編程語言的語法高亮、擁有優秀的代碼自動完成功能,還擁有代碼片段(Snippet)的功能,可以將常用的代碼片段保存起來,在需要時隨時調用。支持 VIM 模式,可以使用Vim模式下的多數命令。支持宏,簡單地說就是把操作錄制下來或者自己編寫命令,然後播放剛才錄制的操作或者命令。
Sublime Text 還具有良好的擴展能力和完全開放的用戶自定義配置與神奇實用的編輯狀態恢復功能。支持強大的多行選擇和多行編輯。強大的快捷命令"可以實時搜索到相應的命令、選項、snippet 和 syntex, 按下回車就可以直接執行,減少了查找的麻煩。即時的文件切換。隨心所欲的跳轉到任意文件的任意位置。多重選擇功能允許在頁面中同時存在多個游標。
還有Jupyter, Jupyter Notebook(此前被稱為 IPython notebook)是一個互動式筆記本,支持運行 40 多種編程語言。
Jupyter Notebook 的本質是一個 Web 應用程序,便於創建和共享文學化程序文檔,支持實時代碼,數學方程,可視化和 markdown。 用途包括:數據清理和轉換,數值模擬,統計建模,機器學習等等 。數據挖掘領域中最熱門的比賽 Kaggle 里的資料都是Jupyter 格式 。
最後就是最基本的nopad++,最開始的時候是實用這款作為開發工具進行基礎練習。
Notepad++是一套自由軟體的純文本編輯器。該軟體以GPL發布,有完整的中文化介面及支持多國語言撰寫的功能(採用萬國碼UTF-8技術)。它的功能比Windows中的記事本(Notepad)強大,除了可以用來製作一般的純文字的幫助文檔,也十分適合用作撰寫電腦程序的編輯器。
建議在學習Python基礎的時候還是多使用Python自帶的IDLE。IDLE是開發python程序的基本IDE(集成開發環境),具備基本的IDE的功能,是非商業Python開發的不錯的選擇。當安裝好python以後,IDLE就自動安裝好了,不需要另外去找。
4. Python3有性能上的提升么
#xiaodeng
#python3
#1、編碼方式和性能
'''
1、py3運行效率更快
2、默認源文件編碼ASCII變為UTF-8,以前文件前加入的coding=utf-8不再需要
3、針對unicode的處理有了明顯的改善,效率明顯提升
'''
#2、數據類型和基本運算
'''
1、int和long進行了統一,統一為int
2、True、False、None都是關鍵詞
3、必須以b'...'表示二進制數據,可以使用u'..'表示字元串,不加u也表示字元串
4、移除<>不等號,使用「!=」表示不等號關系
1)2!=3
2)2<>3#出現語法錯誤
5、調整除法符號『/』的用法,只返回浮點數,要返回整數要使用「//」
6、py3運算對數據的類型要求更加的嚴格
'''
deffoo(test=None):
iftestisNone:
print(test)
foo()
print(5/2)#浮點數
print(5//2)#整數
print(1/3)
#4、print和exec用法
'''
1、print是一個函數,不再是一個語句,其中不需要用空格,後面列印的內容需要有括弧括起來
2、exec函數用法發生變化
'''
deffoo():
_local=locals()
exec('a=4',globals(),_local)
a=_local['a']
print(a)
foo()
#5、input、bin、oct和for循環
'''
1、raw_input統一為input
在py2中用法為:
1)a=raw_input('請輸入:')
printa
2)a=input('請輸入:')#接收一個有效的表達式,如:2+3,而不能單獨接收3
printa
2、for循環的變數不再泄露在全局變數中,此bug已修復
1)Python2.7.10(default,May232015,09:40:32)[MSCv.150032bit(Intel)]onwin32
Type"right","credits"or"license()"formoreinformation.
>>>i=8
>>>print[iforiinrange(5)]
[0,1,2,3,4]
>>>printi
#按照道理來講for循環中的i與最外面的i=8的i是不同的,但是這里。。。。。
>>>
2)
i=6
print([iforiinrange(5)])#結果為[0,1,2,3,4]
print(i)#結果i=6
'''
#6、a=input('請輸入:')#這里不再需要一個有效的表達式,他的用法和raw_input相同
#print(a)
#7、range和dict的變化
'''
1、在python2中,range火xrange會創建一個列表。常出現在for循環、字典、列表中,但是py3中xrange改名為range,在python3中使用
使用xrange會觸發錯誤。同時range返回的是可迭代對象而不再是列表形式,要想使range的結果得到一個list數據必須要使用list(range(5))
2、字典內的dict.iterkeys(),dict.itervalues(),dict.iteritems()被keys()andvalues()anditems()所替代
他們的返回結果類似於集的可迭代對象,而不是鍵值對的列表。從而在不進行鍵和值條目復制的情況下就能對其執行set操作
'''
a=range(6)
print(a)#result:range(0,6)對象,不是列表
print(list(a))#result:[0,1,2,3,4,5]
foriinrange(6):
print(i)
#print(xrange(5))#報錯:提示為name"xrange"is'notdefined
#dict案例
d={'name':"iaodeng",'sex':28}
print(d.items())
print(type(d.items()))#<class'dict_items'>
#返回結果dict_items([('name','iaodeng'),('sex',28)])
#這里不再是列表形式
'''
Python2.7.10(default,May232015,09:40:32)[MSCv.150032bit(Intel)]onwin32
Type"right","credits"or"license()"formoreinformation.
>>>d={'name':"iaodeng",'sex':28}
>>>printd
{'name':'iaodeng','sex':28}
>>>printd.items()
[('name','iaodeng'),('sex',28)]
>>>printd.iteritems()#返回一個可迭代對象
<dictionary->
>>>foriind.iteritems():printi
('name','iaodeng')
('sex',28)
>>>
'''
print('xiaodeng:d.keys():',d.keys())#xiaodeng:d.keys():dict_keys(['name','sex'])
print(type(d.keys()))#<class'dict_items'>
#values()同理
print("既然是可迭代對象,那麼還可以進行下面操作")
foriind.items():
print(i)
forkeyind.keys():
print(key)
print("values用法同理")
print('用list將可迭代對象轉化為list數據')
print(list(d.values()))
#7、python3具有單一的str類型,其類型相當於python2的unicode,python3所有的字元串都是unicode
#新增bytes類型
a=b"china"
print(type(a))#<class'bytes'>
#str和tytes對象都可以使用encode和decode來進行轉化
s=a.decode()
print(s)#china字元串類型
s=s.encode()
print(s)#b"china",tytes位元組類型
#8、輸入和輸出
a=open('test.txt','w')
a.write("writeinsomething")
a.close()
b=open("test.txt","r")
print(b.read())#note:注意加括弧
"""
1、如果要對文本執行任何I/O操作,python3會強制用戶使用文本模式,打開文件,如果不想使用默認編碼utf-8
通常需要指明所需的編碼
2、如果對二進制數據進行I/O操作,必須使用二進制模式打開文件或進行讀寫操作
eg:
f=open("test1.txt","wb+")#二進制追加模式
f.write(b"wlovefengmei")#必須加b,以bytes對象的形式進行寫入
f.close()
file=open(filename,mode)
mode:
r:只讀模式
w:只寫,如果文件已存在則會進行覆蓋操作,所以格外小心,如果文件不存在則創建新的文件
a:打開文件用於追加,只寫如果文件不存在則創建
b:二進制,不能單獨使用
經過演變會有很多形式
"""
#9、迭代器
"""
1、range在python3中返回顆迭代對象二不是列表,最大限度節約內存
2、zip(),map(),filter(),key(),value()返回的均是可迭代對象
"""
#10、異常錯誤處理
"""
1、必須使用關鍵詞as,try和exceptNameErrorase語句
2、案例:
python2
try:
something
exceptNameError,err:
printerr
python3
try:
something
exceptNameErroraserr:
print(err)
3、raise觸發語法用法的變化,python3隻接受帶括弧的
1)raiseIOError,"fileerror"#出現語法錯誤
2)raiseIOError("fileerror")
"""
#11、面向對象
"""
1、需要單獨深入學習
"""
#12、模塊的變動
5. python三本經典書籍都是什麼
python三本經典書籍有:《深度學習入門:基於Python的理論與實現》,《Python高性能(第2版)》,《Python科學計算最佳實踐:SciPy指南》。
1、《深度學習入門:基於Python的理論與實現》
本書深入淺出地剖析了深度學習的原理和相關技術,使用Python3,盡量不依賴外部庫或工具,從基本的數學知識出發,帶領讀者從零創建一個經典的深度學習網路,使讀者在此過程中逐步理解深度學習。
本書結合大量代碼實例,詳盡展示了SciPy的強大科學計算能力,包括用NumPy和SciPy進行分位數標准化,用Ndimage實現圖像區域網路、頻率與快速傅里葉變換,用稀疏坐標矩陣實現列聯表、SciPy中的線性代數、SciPy中的函數優化等。
Python標准庫的主要功能有:
文本處理,包含文本格式化、正則表達式匹配、文本差異計算與合並、Unicode支持,二進制數據處理等功能。
文件處理,包含文件操作、創建臨時文件、文件壓縮與歸檔、操作配置文件等功能。
操作系統功能,包含線程與進程支持、IO復用、日期與時間處理、調用系統函數、寫日記(logging)等功能。
6. python工具有哪些
第一款:最強終端 Upterm
它是一個全平台的終端,可以說是終端里的IDE,有著強大的自動補全功能,之前的名字叫作:BlackWindow。有人跟他說這個名字不利於社區推廣,改名叫Upterm之後現在已經17000+Star了。
第二款:互動式解釋器 PtPython
一個互動式的Python解釋器,支持語法高亮、提示,甚至是VIM和emacs的鍵入模式。
第三款:包管理必備 Anaconda
強烈推薦:Anaconda。它能幫你安裝許多麻煩的東西,包括:Python環境、pip包管理工具、常用的庫、配置好環境路徑等等。這些小事情小白自己一個個去做的話,容易遇到各種問題,也容易造成挫敗感。如果你想用Python搞數據方面的事情,安裝它就可以了,它甚至開發了一套JIT的解釋器Numba。所以Anaconda有了JIT之後,對線上科學計算效率要求比較高的東西也可以搞定了。
第四款:編輯器 Sublime3
如果你是小白的話,推薦從PyCharm開始上手,但是有時候寫一些輕量的小腳本,就會想到輕量級一點的工具。Sublime3很多地方都有了極大的提升,並且用起來比原來還要簡單,配合安裝Anaconda或CodeIntel插件,可以讓Sublime3擁有近乎IDE的體驗。
第五款:前端在線編輯器 CodeSandbox
雖然這個不算是真正意義上的Python開發工具,但如果後端工程師想要寫前端的話,這個在線編輯器太方便了,節省了後端工程師的生命。不用安裝npm的幾千個包了,它已經在雲端完成了,才讓你直接就可以上手寫代碼、看效果。對於React、Vue這些主流前端框架都支持。
第六款:Python Tutor
Python
Tutor是一個免費教育工具,可幫助學生攻克編程學習中的基礎障礙,理解每一行源代碼在程序執行時在計算機中的過程。通過這個工具,教師或學生可以直接在web瀏覽器中編寫Python代碼,並逐步可視化地運行程序。
第七款:IPython
如何進行互動式編程?沒錯,就是通過IPython。IPython相對於Python自帶的shell要好用的多,並且能夠支持代碼縮進、TAB鍵補全代碼等功能。如果進行互動式編程,這是不可缺少的工具。
第八款:Jupyter Notebook
Jupyter
Notebook就像一個草稿本,能將文本注釋、數學方程、代碼和可視化內容全部組合到一個易於共享的文檔中,以Web頁面的方式展示,它是數據分析、機器學習的必備工具。
第九款:Pycharm
Pycharm是程序員常常使用的開發工具,簡單、易用,並且能夠設置不同的主題模式,根據自己的喜好來設置代碼風格。
第十款:Python Tutor
這個工具可能對初學者比較有用,而對於中高級程序員則用處較少。這個工具的特色是能夠清楚的理解每一行代碼是如何在計算機中執行的,中高級程序員一般通過分步調試可以實現類似的功能。這個工具對於最初接觸Python、最初來學習編程的同學還是非常有用的,初學者可以體驗一下。
7. python3 lambda表達式函數
lambda你可以理解為一個函數生成器,他返回的是一個函數,比如你代碼中的lambda x:x%n意思就是返回一個函數,這個函數的作用是算X%n的值.所以返回的return bk之後,bk成了一個函數這個函數接收一個參數X
我也剛學到這卡了,網上找的這個理解起來比較舒服一點
下面是自己總結的,運行也能成功。答案也是對的。。
_not_divisible(n)返回值是一個函數,這個函數接收一個(X)參數
_not_divisible(n)(X)
8. python2和python3的區別,轉換及共存
python2和python3的區別
1.性能
Py3.0運行 pystone benchmark的速度比Py2.5慢30%。Guido認為Py3.0有極大的優化空間,在字元串和整形操作上可以取得很好的優化結果。
Py3.1性能比Py2.5慢15%,還有很大的提升空間。
2.編碼
Py3.X源碼文件默認使用utf-8編碼,這就使得以下代碼是合法的:
>>> 中國 = 'china'
>>>print(中國)
china
3. 語法
1)去除了<>,全部改用!=
在Python 2里,為了得到一個任意對象的字元串表示,有一種把對象包裝在反引號里(比如`x`)的特殊語法。在Python 3里,這種能力仍然存在,但是你不能再使用反引號獲得這種字元串表示了。你需要使用全局函數repr()。
Notes
Python 2
Python 3
①
`x` repr(x)
②
`'PapayaWhip' + `2`` repr('PapayaWhip'+repr(2))
Note:x可以是任何東西—一個類,函數,模塊,基本數據類型,等等。repr()函數可以使用任何類型的參數。
2)去除``,全部改用repr()
3)關鍵詞加入as 和with,還有True,False,None
4)整型除法返回浮點數,要得到整型結果,請使用//
由於人們常常會忽視Python 3在整數除法上的改動(寫錯了也不會觸發Syntax Error),所以在移植代碼或在Python 2中執行Python 3的代碼時,需要特別注意這個改動。
所以,我還是會在Python 3的腳本中嘗試用float(3)/2或 3/2.0代替3/2,以此來避免代碼在Python 2環境下可能導致的錯誤(或與之相反,在Python 2腳本中用from __future__ import division來使用Python 3的除法)。
Python 2
print'3/2=',3/2print'3//2=',3//2print'3/2.0=',3/2.0print'3//2.0=',3//2.0
3/2=13//2=13/2.0=1.53//2.0=1.0
默認,如果兩個操作數都是整數,Python 2 自動執行整型計算。
Python 3
print('3/2=',3/2)print('3//2=',3//2)print('3/2.0=',3/2.0)print('3//2.0=',3//2.0)
3/2=1.53//2=13/2.0=1.53//2.0=1.0
Note: 需要注意的是「雙劃線」(//)操作符將一直執行整除,而不管操作數的類型,這就是為什麼 5.0//2.0 值為 2.0。Python 3 中,/ 操作符是做浮點除法,而 // 是做整除(即商沒有餘數,比如 10 // 3 其結果就為 3,余數會被截除掉,而 (-7) // 3 的結果卻是 -3。這個演算法與其它很多編程語言不一樣,需要注意,它們的整除運算會向0的方向取值。而在 Python 2 中,/ 就是整除,即和 Python 3 中的 // 操作符一樣。
5)加入nonlocal語句。使用noclocal x可以直接指派外圍(非全局)變數
6)print
去除print語句,加入print()函數實現相同的功能。同樣的還有 exec語句,已經改為exec()函數
在Python 2里,print是一個語句。無論你想輸出什麼,只要將它們放在print關鍵字後邊就可以。
Python 3里,print()是一個函數。就像其他的函數一樣,print()需要你將想要輸出的東西作為參數傳給它。
例如:
2.X: print "The answer is", 2*2
3.X: print("The answer is", 2*2)
2.X: print x, # 使用逗號結尾禁止換行
3.X: print(x, end=" ") # 使用空格代替換行
在Python 2里,如果你使用一個逗號(,)作為print語句的結尾,它將會用空格分隔輸出的結果,然後在輸出一個尾隨的空格(trailing space),而不輸出回車(carriage return)。在Python 3里,通過把end=' '作為一個關鍵字參數傳給print()可以實現同樣的效果。參數end的默認值為'
',所以通過重新指定end參數的值,可以取消在末尾輸出回車符。
2.X: print # 輸出新行
3.X: print() # 輸出新行
2.X: print >>sys.stderr, "fatal error"
3.X: print("fatal error", file=sys.stderr)
在Python 2里,你可以通過使用>>pipe_name語法,把輸出重定向到一個管道,比如sys.stderr。在Python 3里,你可以通過將管道作為關鍵字參數file的值傳遞給print()來完成同樣的功能。參數file的默認值為std.stdout,所以重新指定它的值將會使print()輸出到一個另外一個管道。
2.X: print (x, y) # 輸出repr((x, y))
3.X: print((x, y)) # 不同於print(x, y)!
exec語句
exec()函數使用一個包含任意Python代碼的字元串作為參數,然後就像執行語句或者表達式一樣執行它。exec()跟eval()是相似的,但是exec()更加強大並更具有技巧性。eval()函數只能執行單獨一條表達式,但是exec()能夠執行多條語句,導入(import),函數聲明—實際上整個Python程序的字元串表示也可以。
Notes
Python 2
Python 3
①
execcodeString exec(codeString)
②
execcodeStringina_global_namespace exec(codeString,a_global_namespace)
③
execcodeStringina_global_namespace,a_local_namespace exec(codeString,a_global_namespace,a_local_namespace)
在最簡單的形式下,因為exec()現在是一個函數,而不是語句,2to3會把這個字元串形式的代碼用括弧圍起來。
Python 2里的exec語句可以指定名字空間,代碼將在這個由全局對象組成的私有空間里執行。Python 3也有這樣的功能;你只需要把這個名字空間作為第二個參數傳遞給exec()函數。
更加神奇的是,Python 2里的exec語句還可以指定一個本地名字空間(比如一個函數里聲明的變數)。在Python 3里,exec()函數也有這樣的功能。
execfile語句
就像以前的exec語句,Python 2里的execfile語句也可以像執行Python代碼那樣使用字元串。不同的是exec使用字元串,而execfile則使用文件。在Python 3里,execfile語句已經被去掉了。如果你真的想要執行一個文件里的Python代碼(但是你不想導入它),你可以通過打開這個文件,讀取它的內容,然後調用compile()全局函數強制Python解釋器編譯代碼,然後調用新的exec()函數。
Notes
Python 2
Python 3
7)輸入函數改變了,刪除了raw_input,用input代替: Python 2有兩個全局函數,用來在命令行請求用戶輸入。第一個叫做input(),它等待用戶輸入一個Python表達式(然後返回結果)。第二個叫做raw_input(),用戶輸入什麼它就返回什麼。這讓初學者非常困惑,並且這被廣泛地看作是Python語言的一個「肉贅」(wart)。Python 3通過重命名raw_input()為input(),從而切掉了這個肉贅,所以現在的input()就像每個人最初期待的那樣工作。
2.X:guess = int(raw_input('Enter an integer : ')) # 讀取鍵盤輸入的方法
3.X:guess = int(input('Enter an integer : '))
Note:如果你真的想要請求用戶輸入一個Python表達式,計算結果,可以通過調用input()函數然後把返回值傳遞給eval()。
I/O方法xreadlines()
在Python 2里,文件對象有一個xreadlines()方法,它返回一個迭代器,一次讀取文件的一行。這在for循環中尤其有用。事實上,後來的Python 2版本給文件對象本身添加了這樣的功能。
在Python 3里,xreadlines()方法不再可用了。2to3可以解決簡單的情況,但是一些邊緣案例則需要人工介入。
Notes
Python 2
Python 3
①
②
如果你以前調用沒有參數的xreadlines(),2to3會把它轉換成文件對象本身。在Python 3里,這種轉換後的代碼可以完成前同樣的工作:一次讀取文件的一行,然後執行for循環的循環體。
如果你以前使用一個參數(每次讀取的行數)調用xreadlines(),2to3不能為你完成從Python 2到Python 3的轉換,你的代碼會以這樣的方式失敗:AttributeError: '_io.TextIOWrapper' object has no attribute 'xreadlines'。你可以手工的把xreadlines()改成readlines()以使代碼能在Python 3下工作。(readline()方法在Python 3里返回迭代器,所以它跟Python 2里的xreadlines()效率是不相上下的。)
8)改變了順序操作符的行為,例如x<y,當x和y類型不匹配時拋出TypeError而不是返回隨即的 bool值
9)去除元組參數解包。不能def(a, (b, c)):pass這樣定義函數了
10)新式的8進制字變數,相應地修改了oct()函數。
2.X的方式如下:
>>> 0666
438
>>> oct(438)
'0666'
3.X這樣:
>>> 0666
SyntaxError: invalid token (<pyshell#63>, line 1)
>>> 0o666
438
>>> oct(438)
'0o666'
11)增加了 2進制字面量和bin()函數
>>> bin(438)
'0b110110110'
>>> _438 = '0b110110110'
>>> _438
'0b110110110'
12)擴展的可迭代解包。在Py3.X 里,a, b, *rest = seq和 *rest, a = seq都是合法的,只要求兩點:rest是list對象和seq是可迭代的。
13)新的super(),可以不再給super()傳參數,
>>> class C(object):
def __init__(self, a):
print('C', a)
>>> class D(C):
def __init(self, a):
super().__init__(a) # 無參數調用super()
>>> D(8)
C 8
<__main__.D object at 0x00D7ED90>
14)支持class decorator。用法與函數decorator一樣:
>>> def foo(cls_a):
def print_func(self):
print('Hello, world!')
cls_a.print = print_func
return cls_a
>>> @foo
class C(object):
pass
>>> C().print()
Hello, world!
class decorator可以用來玩玩狸貓換太子的大把戲。更多請參閱PEP 3129
4. 字元串和位元組串
Python 2有兩種字元串類型:Unicode字元串和非Unicode字元串。Python 2有基於ASCII的str()類型,其可通過單獨的unicode()函數轉成unicode類型,但沒有byte類型。
而在Python 3中,終於有了Unicode(utf-8)字元串,以及兩個位元組類:bytes和bytearrays。Python 3隻有一種類型:Unicode字元串(Unicode strings)。只有str一種類型,但它跟2.x版本的unicode幾乎一樣。
Notes
Python 2
Python 3
①
②
Python 2里的Unicode字元串在Python 3里即普通字元串,因為在Python 3里字元串總是Unicode形式的。
Unicode原始字元串(raw string)(使用這種字元串,Python不會自動轉義反斜線"")也被替換為普通的字元串,因為在Python 3里,所有原始字元串都是以Unicode編碼的。
全局函數unicode()
Python 2有兩個全局函數可以把對象強制轉換成字元串:unicode()把對象轉換成Unicode字元串,還有str()把對象轉換為非Unicode字元串。
Python 3隻有一種字元串類型,Unicode字元串,所以str()函數即可完成所有的功能。(unicode()函數在Python 3里不再存在了。)
Notes
Python 2
Python 3
5.數據類型
1)Python 2有為非浮點數准備的int和long類型。int類型的最大值不能超過sys.maxint,而且這個最大值是平台相關的。可以通過在數字的末尾附上一個L來定義長整型,顯然,它比int類型表示的數字范圍更大。
在Python 3里,只有一種整數類型int,大多數情況下,它很像Python 2里的長整型。
Note:檢查一個變數是否是整型,獲得它的數據類型,並與一個int類型(不是long)的作比較。你也可以使用isinstance()函數來檢查數據類型;再強調一次,使用int,而不是long,來檢查整數類型。
sys.maxint
由於長整型和整型被整合在一起了,sys.maxint常量不再精確。但是因為這個值對於檢測特定平台的能力還是有用處的,所以它被Python 3保留,並且重命名為sys.maxsize。
Notes
Python 2
Python 3
①
②