數字型別

brj880719發表於2017-10-21

一、數字

Python中數字型別包括:
  • 整數
  • 浮點數
  • 複數
  • 固定精度的十進位制數
  • 有理分數
  • 集合
  • 布林型別
  • 無窮的整數精度
  • 各種數字內建函式和模組

二、表示式操作符

算數運算子(a=10,b=20)
運算子 描述 例項
+ 加 - 兩個物件相加 a + b 輸出結果 30
- 減 - 得到負數或是一個數減去另一個數 a - b 輸出結果 -10
* 乘 - 兩個數相乘或是返回一個被重複若干次的字串 a * b 輸出結果 200
/ 除 - x除以y b / a 輸出結果 2
% 取模 - 返回除法的餘數 b % a 輸出結果 0
** 冪 - 返回x的y次冪 a**b 為10的20次方, 輸出結果 100000000000000000000
// 取整除 - 返回商的整數部分 9//2 輸出結果 4 , 9.0//2.0 輸出結果 4.0
比較運算子(a=10,b=20)
運算子 描述 例項
== 等於 - 比較物件是否相等 (a == b) 返回 False。
!= 不等於 - 比較兩個物件是否不相等 (a != b) 返回 true.
<> 不等於 - 比較兩個物件是否不相等 (a <> b) 返回 true。這個運算子類似 != 。
> 大於 - 返回x是否大於y (a > b) 返回 False。
< 小於 - 返回x是否小於y。所有比較運算子返回1表示真,返回0表示假。這分別與特殊的變數True和False等價。注意,這些變數名的大寫。 (a < b) 返回 true。
>= 大於等於    - 返回x是否大於等於y。 (a >= b) 返回 False。
<= 小於等於 -    返回x是否小於等於y。 (a <= b) 返回 true。
賦值運算子
運算子 描述 例項
= 簡單的賦值運算子 c = a + b 將 a + b 的運算結果賦值為 c
+= 加法賦值運算子 c += a 等效於 c = c + a
-= 減法賦值運算子 c -= a 等效於 c = c - a
*= 乘法賦值運算子 c *= a 等效於 c = c * a
/= 除法賦值運算子 c /= a 等效於 c = c / a
%= 取模賦值運算子 c %= a 等效於 c = c % a
**= 冪賦值運算子 c **= a 等效於 c = c ** a
//= 取整除賦值運算子 c //= a 等效於 c = c // a
位運算子(a=10,b=20)
運算子 描述 例項
& 按位與運算子:參與運算的兩個值,如果兩個相應位都為1,則該位的結果為1,否則為0 (a & b) 輸出結果 12 ,二進位制解釋: 0000 1100
| 按位或運算子:只要對應的二個二進位有一個為1時,結果位就為1。 (a | b) 輸出結果 61 ,二進位制解釋: 0011 1101
^ 按位異或運算子:當兩對應的二進位相異時,結果為1 (a ^ b) 輸出結果 49 ,二進位制解釋: 0011 0001
~ 按位取反運算子:對資料的每個二進位制位取反,即把1變為0,把0變為1 。~x 類似於 -x-1 (~a ) 輸出結果 -61 ,二進位制解釋: 1100 0011,在一個有符號二進位制數的補碼形式。
<< 左移動運算子:運算數的各二進位全部左移若干位,由"<<"右邊的數指定移動的位數,高位丟棄,低位補0。 a << 2 輸出結果 240 ,二進位制解釋: 1111 0000
>> 右移動運算子:把">>"左邊的運算數的各二進位全部右移若干位,">>"右邊的數指定移動的位數 a >> 2 輸出結果 15 ,二進位制解釋: 0000 1111
邏輯運算子(a=10,b=20)
運算子 邏輯表示式 描述 例項
and x and y 布林"與" - 如果 x 為 False,x and y 返回 False,否則它返回 y 的計算值。 (a and b) 返回 20。
or x or y 布林"或"    - 如果 x 是非 0,它返回 x 的值,否則它返回 y 的計算值。 (a or b) 返回 10。
not not x 布林"非" - 如果 x 為 True,返回 False 。如果 x 為 False,它返回 True。 not(a and b) 返回 False
成員運算子
運算子 描述 例項
in 如果在指定的序列中找到值返回 True,否則返回 False。 x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
not in 如果在指定的序列中沒有找到值返回 True,否則返回 False。 x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。
身份運算子
運算子 描述 例項
is is 是判斷兩個識別符號是不是引用自一個物件 x is y, 類似 id(x) == id(y) , 如果引用的是同一個物件則返回 True,否則返回 False
is not is not 是判斷兩個識別符號是不是引用自不同物件 x is not y , 類似 id(a) != id(b)。如果引用的不是同一個物件則返回結果 True,否則返回 False。

三、內建數學函式

math
函式|常量 說明 例項
e 自然常數e math.e
2.718281828459045
pi 圓周率π math.pi
3.141592653589793
acos(x) 返回x的反三角餘弦值 math.acos(math.sqrt(2)/2)
0.7853981633974483
acosh(x) 返回x的反雙曲餘弦函式  
asin(x) 返回x的反三角正弦值 math.asin(0.5)
0.5235987755982989
asinh(x) 返回x的反雙曲正弦函式  
atan(x) 返回x的反三角正切值 math.atan(1.7320508075688767)
1.0471975511965976
atan2(y, x) 返回x/y的反三角正切值 math.atan2(2,1)
1.1071487177940904
atanh(x) 返回x的反雙曲正切函式  
ceil(x) 這個方法對i向上取整,x = 1.3 ,返回值為2 math.ceil(5.2)
6.0
copysign(x, y) 若y<0,返回-1乘以x的絕對值;
否則,返回x的絕對值
math.copysign(5.2, -1)
-5.2
cos(x) 返回x(弧度)的三角餘弦值 math.cos(math.radians(45))
0.7071067811865476
cosh(x) 返回x的雙曲餘弦函式  
degrees(x) 弧度轉度 math.degrees(math.pi)
180.0
erf(x) 返回x的誤差函式  
erfc(x) 返回x的餘誤差函式  
exp(x) 返回e的x次方 math.exp(2)
7.38905609893065
expm1(x) 返回e的x次方減1 math.expm1(2)
6.38905609893065
fabs(x) 返回x的絕對值 math.fabs(-5)
5.0
factorial(x) 返回x的階乘 math.factorial(5)
120
floor(x) 正好與上面相反,是向下取整。x = 1.4,返回1 math.floor(5.8)
5.0
fmod(x, y) 返回x%y(取餘) math.fmod(5,2)
1.0
frexp(x) 返回m和i,滿足m乘以2的i次方 math.frexp(3)
(0.75, 2)
fsum(iterable) 返回無損精度的和 0.1+0.2+0.3
0.6000000000000001
math.fsum([0.1, 0.2, 0.3])
0.6
gamma(x) 返回x的伽瑪函式  
hypot(x, y) 返回以x和y為直角邊的斜邊長 math.hypot(3,4)
5.0
isinf(x) 若x為無窮大,返回True;否則,返回False math.isinf(1.0e+308)
False
math.isinf(1.0e+309)
True
isnan(x) 若x不是數字,返回True;否則,返回False math.isnan(1.2e3)
False
ldexp(x, i) 返回x乘以2的i次方 math.ldexp(0.75, 2)
3.0
lgamma(x) 返回x的絕對值的自然對數的伽瑪函式  
log(x, base=None) 返回x的以base為底的對數,base預設為e math.log(math.e)
1.0
math.log(2, 10)
0.30102999566398114
log10(x) 返回x的以10為底的對數 math.log10(2)
0.30102999566398114
log1p(x) 返回1+x的自然對數(以e為底) math.log1p(math.e-1)
1.0
modf(x) 返回x的小數和整數 math.modf(5.2)
(0.20000000000000018, 5.0)
pow(x, y) 返回x的y次方 math.pow(5,3)
125.0
radians(x) 度轉弧度 math.radians(45)
0.7853981633974483
sin(x) 返回x(弧度)的三角正弦值 math.sin(math.radians(30))
0.49999999999999994
sinh(x) 返回x的雙曲正弦函式  
sqrt(x) 返回x的平方根 math.sqrt(3)
1.7320508075688772
tan(x) 返回x(弧度)的三角正切值 math.tan(math.radians(60))
1.7320508075688767
tanh(x) 返回x的雙曲正切函式  
trunc(x) 返回x的整數部分 math.trunc(5.8)
5
random
函式|常量 說明 例項
random 用於生成一個0到1的隨機符點數0 <= n < 1.0  
uniform 原型:random.uniform(a, b)
用於生成一個指定範圍內的隨機符點數,兩個引數其中一個是上限,一個是下限。
如果a > b,則生成的隨機數n: a <= n <= b。
如果 a <b, 則 b <= n <= a。
print random.uniform(10, 20)  
print random.uniform(20, 10)  
#---- 結果(不同機器上的結果不一樣)  
#18.7356606526  
#12.5798298022  
randint 原型:random.randint(a, b)
用於生成一個指定範圍內的整數。
其中引數a是下限,引數b是上限,生成的隨機數n: a <= n <= b

print random.randint(12, 20)
#生成的隨機數n: 12 <= n <= 20 

print random.randint(20, 20)
#結果永遠是20  

#print random.randint(20, 10)  
#該語句是錯誤的。下限必須小於上限。

randrange 原型:random.randrange([start], stop[, step])
從指定範圍內,按指定基數遞增的集合中獲取一個隨機數。
random.randrange(10, 100, 2)
結果相當於從[10, 12, 14, 16, ... 96, 98]序列中獲取一個隨機數。在結果上與 random.choice(range(10, 100, 2) 等效。
choice random.choice從序列中獲取一個隨機元素。
原型:random.choice(sequence)
引數sequence表示一個有序型別。
sequence在python中是泛指一系列的型別。list, tuple, 字串都屬於sequence。
print random.choice("學習Python")  
print random.choice(["JGood", "is", "a", "handsome", "boy"])  
print random.choice(("Tuple", "List", "Dict")) 
shuffle

原型:random.shuffle(x[, random])
用於將一個列表中的元素打亂。

p = ["Python", "is", "powerful", "simple", "and so on..."]  
random.shuffle(p)  
print p  
#---- 結果(不同機器上的結果可能不一樣。)  
#['powerful', 'simple', 'is', 'Python', 'and so on...']  
sample 原型:random.sample(sequence, k)
從指定序列中隨機獲取指定長度的片斷。sample函式不會修改原有序列。
list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 
slice = random.sample(list, 5)
#從list中隨機獲取5個元素,作為一個片斷返回
print slice  
print list
#原有序列並沒有改變。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24851054/viewspace-2146214/,如需轉載,請註明出處,否則將追究法律責任。

相關文章