1, 在Python 2.x 中。Python的integer,有兩種類型,normal和long。Normal一般是32位的。Long表示無限精度,由計算機決定。若是數字後面有l或者L,這會強制將該數字轉換爲long類型。但其實,用戶沒必要這樣作,由於Python會在數值溢出的狀況下自動將normal的類型轉換爲long類型。
然而,在Python 3.x中,normal和long合併了,沒有區別了。此時不可再在數字尾部加入l或者L了。編程
2,integer能夠用十進制(decimal)、十六進制(hexadecimal)、八進制(octal)、二進制(binary)來表示。後面三種在編程領域很常見。
十六進制(hexadecimal):以0x或者0X開頭,接0~9或者A~F,大小寫沒有關係;
八進制(octal):以0o或者0O開頭,接0~7;
二進制(binary):以0b或者0B開頭,接0~1.
想要將數字轉換爲十進制的,能夠用int(數值)方法:如int(0o100)=64;
想要將數字轉換爲八進制的,能夠用oct(數值)方法,如oct(0x40)= 0o100;
想要將數字轉換爲十六進制的,能夠用hex(數值)方法,如hex(64)= 0x40;
想要將數字轉換爲二進制的,能夠用bin(數值)方法,如bin(64)= 0b1000000;數組
3,使用以下的方法能夠將integer I 轉換爲十六進制數、八進制數、二進制數:
hex(I)、oct(I)、bin(I)。函數
4,複數 complex numbers。由實數+虛數組成。其中,虛數要以j或者J結尾。複數能夠沒有實數部分。ui
5, str()和repr()這兩個方法都是能夠將數值轉換爲字符串,不一樣的是,str()對用戶比較友好,repr()對Python比較友好。但一般狀況下,它們都是相同的。.net
6,在Python中,除法分爲三種:
6.1,true:表示真正的除法,返回值包含小數部分,屬於float型,而無論除數和被除數是什麼類型的數據。跟數學裏面的除法概念吻合;
6.2,classic:若是除數或被除數之一是float類型的數據,classic除法的商保留小數部分,爲float型數據。而若是除數和被除數皆爲integer,則商會去掉小數部分,往下取整(好比,原本是2.6,取整後爲2。而原本是-2.7,取整後爲-3)。
6.3,floor:這種除法的商會去掉小數部分,向小的方向靠攏。若是除數和被除數皆爲integer 類型,這商也是integer。而若是除數和被除數之一是float型,則商也是float型。code
7, 在Python 2.X中,/表示classic型除法,//表示floor型除法。
在Python 3.x中,/表示true型除法,//表示floor型除法。
Python 3.x已經沒有classic型除法了。
ps: 若是在Python2.x中想要用到3.x的除法,能夠在開頭加入這樣的statement:orm
from __future__ import division
8,爲了讓代碼在Python2.x和3.x中都兼容,若是須要取整的操做,老是用//比較好。blog
9,在math模塊中,提供了floor和trunc的方法。很是有用:ci
>>>import math >>>math.floor(2.5) # closest number below value 2 >>>math.floor(-2.5) -3 >>>math.trunc(2.5) # truncate fractional part 2 >>>math.trunc(-2.5) -2 注意:int(I)也有truncate的功能。
10, 在Python中,實部和虛部都是float型的,虛部以j或者J結尾。字符串
11,在Python 2.x中,八進制能夠以0開頭,可是在Python 3.x中,不能以0開頭,必定要以0o或者0O開頭!
12,位的運算bitwise operations
<<表示位向左移動 >>表示位向右移動 | 表示或運算 & 表示AND運算 ^ 表示異或運算(二者不一樣爲1,相同爲0)
能夠用bit_lenth()方法計算二進制數有多少位。或者len(bin())-2。由於len()會包含開頭的0b這兩位。
13,位的運算對Python這種高級語言不重要,若是須要作不少位運算,應該考慮低級語言如C語言。
14,round()方法能夠作小數的四捨五入。如round(3.78)= 4.0, round(3,789, 2) = 3.79, round()裏面的第二個參數表示的是保留多少位小數。
15,Python中的pow()函數用來計算指數。好比pow(2,4)=16, 和 2 ** 4同樣的結果。
16,Python中,有自帶的min和max()方法。min和max方法接受任意個單獨的參數。如min(3, 1, 2, 4)= 1.
17,Python中有sum方法,能夠將一列數相加起來,可是這列數應該寫在括號內做爲一個sequence,好比sum((1,2,3,4)) = 10,也能夠是這樣的sum([1, 2, 3, 4])。
18,abs函數能夠取絕對值。
19,在Python中,有三種方法能夠計算平方根:
A, math.sqrt(144) #Module B, 144 ** .5 #Expression C, pow(144, .5) #Built-in
20, 在Python中,計算0.1 + 0.1 + 0.1 – 0.3 並不會獲得0這個準確的值。這是因爲計算機因爲缺乏精確度而沒法精確地保存數據引發的。這個時候,decimal模塊很好的解決了這個問題,經過調用decimal模塊的Decimal構造函數,把數據轉換爲str型傳入,再進行運算,結果就會返回精確的0,以下:
from decimal import Decimal print Decimal('0.1') + Decimal('0.1') + Decimal('0.1') - Decimal('0.3')
結果:0.0
若是傳入的參數仍然是float型,將沒法得到這個結果。
21,使用Decimal()函數的時候。也能夠設定全局精確度:
decimal.getcontext().prec = 4 #設定全局精確度爲4位小數。
22,使用Fraction()函數,也能夠得到和Decimal()同樣的精確效果。Fraction()函數位於fractions 模塊中,須要先import纔可使用。
Fraction(numerator, denominator),會自動的簡化分數。
Fraction()還能夠將str參數轉換爲分數,好比Fraction(‘.25’)=Fraction(1, 4)
23, 初始化一個空的set,使用S = set()。建立一個新的set而且賦值,使用 S = {1, 2, 3, 4}。後續若需再想set裏面增長item,能夠用S.add(‘…’)
24, set的運算,&表示交集,| 表示並集,- 表示差異,> 表示super set,返回布爾值。這些運算必須都是set類型。
25,union也能夠用來創造出並集運算。Union裏的參數能夠是list,能夠是set,還能夠是tuple。
{1,2, 3}.union([3, 4])
{1,2, 3}.union({3, 4})
26,intersection也能夠用來計算交集,參數能夠是list,能夠是set,還能夠是tuple。
27,issubset()函數能夠判斷某set是不是令一個set的子集
28,set和tuple的區別:
Set在後續能夠增長值,減小值,但tuple不能 Set裏面的值必須是互不相同的,但tuple能夠接受相同的值。 Set能夠內嵌tuple,不能內嵌list,dictionary。
http://blog.csdn.net/u0103675...
29,set comprehensions
{x ** 2 for x in [1, 2, 3, 4]} {16, 1, 4, 9}
30, set能夠用來過濾掉重複的item:
>>> L = [1, 2, 1, 3, 2, 4, 5] >>> set(L) {1, 2, 3, 4, 5}
31,set的運算:
>>> engineers = {'bob', 'sue', 'ann', 'vic'} >>> managers = {'tom', 'sue'} >>> 'bob' in engineers # Is bob an engineer? True >>> engineers & managers # Who is both engineer and manager? {'sue'} >>> engineers | managers # All people in either category {'bob', 'tom', 'sue', 'vic', 'ann'} >>> engineers - managers # Engineers who are not managers {'vic', 'ann', 'bob'} >>> managers - engineers # Managers who are not engineers {'tom'} >>> engineers > managers # Are all managers engineers? (superset) False >>> {'bob', 'sue'} < engineers # Are both engineers? (subset) True >>> (managers | engineers) > managers # All people is a superset of managers True >>> managers ^ engineers # Who is in one but not both? {'tom', 'vic', 'ann', 'bob'} >>> (managers | engineers) - (managers ^ engineers) # Intersection! {'sue'}