Python初學(xué)者入門隨筆 07 Python Number(數(shù)字)

Python Number 數(shù)據(jù)類型用于存儲數(shù)值明场。
數(shù)據(jù)類型是不允許改變的,這就意味著如果改變 Number 數(shù)據(jù)類型的值,將重新分配內(nèi)存空間苦锨。

以下實(shí)例在變量賦值時(shí) Number 對象將被創(chuàng)建:

var1 = 1
var2 = 10

您也可以使用del語句刪除一些 Number 對象引用。
del語句的語法是:

del var1[,var2[,var3[....,varN]]]]

您可以通過使用del語句刪除單個(gè)或多個(gè)對象拉庶,例如:

del var
del var_a, var_b

Python 支持四種不同的數(shù)值類型:

  • 整型(Int) - 通常被稱為是整型或整數(shù)秃励,是正或負(fù)整數(shù),不帶小數(shù)點(diǎn)夺鲜。
  • 長整型(long integers) - 無限大小的整數(shù)币励,整數(shù)最后是一個(gè)大寫或小寫的L。
  • 浮點(diǎn)型(floating point real values) - 浮點(diǎn)型由整數(shù)部分與小數(shù)部分組成流炕,浮點(diǎn)型也可以使用科學(xué)計(jì)數(shù)法表示(2.5e2 = 2.5 x 102 = 250)
  • 復(fù)數(shù)(complex numbers) - 復(fù)數(shù)由實(shí)數(shù)部分和虛數(shù)部分構(gòu)成仅胞,可以用 a + bj 干旧,或者 complex(a,b) 表示, 復(fù)數(shù)的實(shí)部 a 和虛部 b 都是浮點(diǎn)型峻堰。
int long float complex
10 51924361L 0.0 3.14j
100 -0x19323L 15.20 45.j
-786 0122L -21.9 9.322e-36j
080 0xDEFABCECBDAECBFBAEl 32.3e+18 .876j
-0490 535633629843L -90. -.6545+0J
-0x260 -052318172735L -32.54e100 3e+26J
0x69 -4721885298529L 70.2E-12 4.53e-7j

長整型也可以使用小寫 l 捐名,但是還是建議您使用大寫 L ,避免與數(shù)字 1 混淆镶蹋。Python 使用 L 來顯示長整型成艘。
Python 還支持復(fù)數(shù),復(fù)數(shù)由實(shí)數(shù)部分和虛數(shù)部分構(gòu)成贺归,可以用 a + bj 淆两,或者 complex(a,b) 表示, 復(fù)數(shù)的實(shí)部 a 和虛部 b 都是浮點(diǎn)型拂酣。


Python Number 類型轉(zhuǎn)換

int(x [,base ])         將x轉(zhuǎn)換為一個(gè)整數(shù)  
long(x [,base ])        將x轉(zhuǎn)換為一個(gè)長整數(shù)  
float(x )               將x轉(zhuǎn)換到一個(gè)浮點(diǎn)數(shù)  
complex(real [,imag ])  創(chuàng)建一個(gè)復(fù)數(shù)  
str(x )                 將對象 x 轉(zhuǎn)換為字符串  
repr(x )                將對象 x 轉(zhuǎn)換為表達(dá)式字符串  
eval(str )              用來計(jì)算在字符串中的有效Python表達(dá)式,并返回一個(gè)對象  
tuple(s )               將序列 s 轉(zhuǎn)換為一個(gè)元組  
list(s )                將序列 s 轉(zhuǎn)換為一個(gè)列表  
chr(x )                 將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)字符  
unichr(x )              將一個(gè)整數(shù)轉(zhuǎn)換為Unicode字符  
ord(x )                 將一個(gè)字符轉(zhuǎn)換為它的整數(shù)值  
hex(x )                 將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)十六進(jìn)制字符串  
oct(x )                 將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)八進(jìn)制字符串  

數(shù)學(xué)常量

常量 描述
pi 數(shù)學(xué)常量 pi(圓周率秋冰,一般以π來表示)
e 數(shù)學(xué)常量 e,e 即自然常數(shù)(自然常數(shù))

Python math 模塊婶熬、cmath 模塊

Python 中數(shù)學(xué)運(yùn)算常用的函數(shù)基本都在 math 模塊剑勾、cmath 模塊中。

Python math 模塊提供了許多對浮點(diǎn)數(shù)的數(shù)學(xué)運(yùn)算函數(shù)赵颅。

Python cmath 模塊包含了一些用于復(fù)數(shù)運(yùn)算的函數(shù)虽另。

cmath 模塊的函數(shù)跟 math 模塊函數(shù)基本一致,區(qū)別是 cmath 模塊運(yùn)算的是復(fù)數(shù)饺谬,math 模塊運(yùn)算的是數(shù)學(xué)運(yùn)算捂刺。

要使用 math 或 cmath 函數(shù)必須先導(dǎo)入:

import math

查看 math 查看包中的內(nèi)容:

import math
print dir(math)
>> ['__doc__', '__name__', '__package__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 
'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 
'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 
'hypot', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'modf', 'pi', 
'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc']

查看 cmath 查看包中的內(nèi)容:

import cmath
print dir(cmath)
>> ['__doc__', '__name__', '__package__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 
'atanh', 'cos', 'cosh', 'e', 'exp', 'isinf', 'isnan', 'log', 'log10', 'phase', 'pi', 
'polar', 'rect', 'sin', 'sinh', 'sqrt', 'tan', 'tanh']

實(shí)例:

# -*- coding: UTF-8 -*-
import cmath

cmath.sqrt(-1)
>> 1j

cmath.sqrt(9)
>> (3+0j)

cmath.sin(1)
>> (0.841470984808+0j)

cmath.log10(100)
>> (2+0j)

下文會介紹各個(gè)函數(shù)的具體應(yīng)用绪商。

Python 數(shù)學(xué)函數(shù)

abs() 函數(shù)

描述:
abs() 函數(shù)返回?cái)?shù)字的絕對值。

語法:

abs(x)

參數(shù):
x -- 數(shù)值表達(dá)式例书。

返回值:
函數(shù)返回 x(數(shù)字)的絕對值决采。

實(shí)例:

abs(-45)
>> 45

abs(100.12)
>> 100.12

abs(119L)
>> 119

ceil() 函數(shù)

描述:
ceil() 函數(shù)返回?cái)?shù)字的上入整數(shù)拇厢。

語法:

import math

math.ceil(x)

注意:ceil() 是不能直接訪問的孝偎,需要導(dǎo)入 math 模塊,通過靜態(tài)對象調(diào)用該方法势决。

參數(shù):
x -- 數(shù)值表達(dá)式果复。

返回值:
函數(shù)返回?cái)?shù)字的上入整數(shù)。

實(shí)例:

import math

math.ceil(-45.17)
>> -45.0

math.ceil(100.12)
>> 101.0

math.ceil(100.72)
>> 101.0

math.ceil(119L)
>> 119.0

math.ceil(math.pi)
>> 4.0

cmp() 函數(shù)

描述:
cmp(x,y) 函數(shù)用于比較2個(gè)對象极颓,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。

語法:

cmp(x,y)

參數(shù):
x -- 數(shù)值表達(dá)式骇径。
y -- 數(shù)值表達(dá)式破衔。

返回值:
如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。

實(shí)例:

cmp(80, 100)
>> -1
cmp(180, 100)
>> 1
cmp(-80, 100)
>> -1
cmp(80, -100)
>> 1
cmp(80, 80)
>> 0

exp() 函數(shù)

描述:
exp() 方法返回 x 的指數(shù),ex怜瞒。

語法:

import math

math.exp(x)

注意:exp() 是不能直接訪問的吴汪,需要導(dǎo)入 math 模塊杆融,通過靜態(tài)對象調(diào)用該方法擒贸。

參數(shù):
x -- 數(shù)值表達(dá)式介劫。

返回值:
返回x的指數(shù),ex誉碴。

實(shí)例:

import math

math.exp(-45.17)
>> 2.41500621326e-20

math.exp(100.12)
>> 3.03084361407e+43

math.exp(100.72)
>> 5.52255713025e+43

math.exp(119L)
>> 4.7978133273e+51

math.exp(math.pi)
>> 23.1406926328

fabs() 函數(shù)

描述:
fabs() 方法返回?cái)?shù)字的絕對值,如 math.fabs(-10) 返回10.0成黄。

語法:

import math

math.fabs(x)

注意:fabs() 是不能直接訪問的,需要導(dǎo)入 math 模塊闻伶,通過靜態(tài)對象調(diào)用該方法。

參數(shù):
x -- 數(shù)值表達(dá)式霎箍。

返回值:
返回?cái)?shù)字的絕對值景埃。

實(shí)例:

import math

math.fabs(-45.17)
>> 45.17

math.fabs(100.12)
>> 100.12

math.fabs(100.72)
>> 100.72

math.fabs(119L)
>> 119.0

math.fabs(math.pi)
>> 3.14159265359

floor() 函數(shù)

描述:
floor() 返回?cái)?shù)字的下舍整數(shù)拒啰。

語法:

import math

math.floor(x)

注意:floor() 是不能直接訪問的剩失,需要導(dǎo)入 math 模塊,通過靜態(tài)對象調(diào)用該方法演熟。

參數(shù):
x -- 數(shù)值表達(dá)式。

返回值:
返回?cái)?shù)字的下舍整數(shù)化漆。

實(shí)例:

import math

math.floor(-45.17)
>> -46.0

math.floor(100.12)
>> 100.0

math.floor(100.72)
>> 100.0

math.floor(119L)
>> 119.0

math.floor(math.pi)
>> 3.0

log() 函數(shù)

描述:
log() 返回 x 的自然對數(shù)座云。

語法:

import math

math.log(x[, base])

注意:log() 是不能直接訪問的,需要導(dǎo)入 math 模塊贞谓,通過靜態(tài)對象調(diào)用該方法。

參數(shù):
x -- 數(shù)值表達(dá)式理疙。
base -- 可選窖贤,底數(shù),默認(rèn)為 e物咳。

返回值:
返回 x 的自然對數(shù)压鉴,x>0晴弃。

實(shí)例:

# -*- coding: UTF-8 -*-
import math

math.log(100.12)
>> 4.60636946656

math.log(100.72)
>> 4.61234438974

math.log(119L)
>> 4.77912349311

math.log(math.pi)
>> 1.14472988585

# 設(shè)置底數(shù)
math.log(10, 2)
>> 3.32192809489

log10() 函數(shù)

描述:
log10() 方法返回以10為基數(shù)的x對數(shù)芯丧。

語法:

import math

math.log10(x)

注意:log10() 是不能直接訪問的,需要導(dǎo)入 math 模塊岭佳,通過靜態(tài)對象調(diào)用該方法萧锉。

參數(shù):
x -- 數(shù)值表達(dá)式珊随。

返回值:
返回以10為基數(shù)的x對數(shù)柿隙,x>0。

實(shí)例:

import math

math.log10(100.12)
>> 2.00052084094

math.log10(100.72)
>> 2.0031157171

math.log10(119L)
>> 2.07554696139

math.log10(math.pi)
>> 0.497149872694

max() 函數(shù)

描述:
max() 方法返回給定參數(shù)的最大值,參數(shù)可以為序列波附。

語法:

max( x, y, z, .... )

參數(shù):
x -- 數(shù)值表達(dá)式。
y -- 數(shù)值表達(dá)式谦炒。
z -- 數(shù)值表達(dá)式。

返回值:
返回給定參數(shù)的最大值。

實(shí)例:

max(80, 100, 1000)
>> 1000

max(-20, 100, 400)
>> 400

max(-80, -20, -10)
>> -10

max(0, 100, -400)
>> 100

min() 函數(shù)

描述:
min() 方法返回給定參數(shù)的最小值鞋邑,參數(shù)可以為序列鄙早。

語法:

min( x, y, z, .... )

參數(shù):
x -- 數(shù)值表達(dá)式。
y -- 數(shù)值表達(dá)式椅亚。
z -- 數(shù)值表達(dá)式限番。

返回值:
返回給定參數(shù)的最小值。

實(shí)例:

min(80, 100, 1000)
>> 80

min(-20, 100, 400)
>> -20

min(-80, -20, -10)
>> -80

min(0, 100, -400)
>> -400

min([1, 2, 3])
>> 1

modf() 函數(shù)

描述:
modf() 方法返回x的整數(shù)部分與小數(shù)部分呀舔,兩部分的數(shù)值符號與x相同弥虐,整數(shù)部分以浮點(diǎn)型表示扩灯。

語法:

import math

math.modf(x)

注意:modf()是不能直接訪問的,需要導(dǎo)入 math 模塊霜瘪,通過靜態(tài)對象調(diào)用該方法珠插。

參數(shù):
x -- 數(shù)值表達(dá)式。

返回值:
返回x的整數(shù)部分與小數(shù)部分颖对,

實(shí)例:

import math

math.modf(100.12)
>> (0.12000000000000455, 100.0)

math.modf(100.72)
>> (0.7199999999999989, 100.0)

math.modf(119L)
>> (0.0, 119.0)

math.modf(math.pi)
>> (0.14159265358979312, 3.0)

pow() 函數(shù)

描述:
pow() 方法返回 xy(x的y次方) 的值捻撑。

math 模塊 pow() 方法的語法:

import math

math.pow(x, y)

內(nèi)置的 pow() 方法:

pow(x, y[, z])

函數(shù)是計(jì)算x的y次方,如果z在存在缤底,則再對結(jié)果進(jìn)行取模顾患,其結(jié)果等效于pow(x,y) %z

注意:pow() 通過內(nèi)置的方法直接調(diào)用,內(nèi)置方法會把參數(shù)作為整型个唧,而 math 模塊則會把參數(shù)轉(zhuǎn)換為 float江解。

參數(shù):
x -- 數(shù)值表達(dá)式。
y -- 數(shù)值表達(dá)式徙歼。
z -- 數(shù)值表達(dá)式犁河。

返回值:
返回 xy(x的y次方) 的值。

實(shí)例:

import math

pow(100, 2)  # 使用內(nèi)置魄梯,查看輸出結(jié)果區(qū)別
>> 10000

math.pow(100, 2)
>> 10000.0

math.pow(100, -2)
>> 0.0001

math.pow(2, 4)
>> 16.0

math.pow(3, 0)
>> 1.0

round() 函數(shù)

描述:
round() 方法返回浮點(diǎn)數(shù)x的四舍五入值桨螺。

語法:

round( x , n )

參數(shù):
x -- 數(shù)值表達(dá)式。
n -- 數(shù)值表達(dá)式画恰,保留小數(shù)點(diǎn)后n位彭谁。

返回值:
返回浮點(diǎn)數(shù)x的四舍五入值。

實(shí)例:

round(80.23456, 2)
>> 80.23

round(100.23456, 3)
>> 100.235

round(-100.23456, 4)
>> -100.2346

sqrt() 函數(shù)

描述:
sqrt() 方法返回?cái)?shù)字x的平方根允扇。

語法:

import math

math.sqrt(x)

注意:sqrt() 是不能直接訪問的缠局,需要導(dǎo)入 math 模塊,通過靜態(tài)對象調(diào)用該方法考润。

參數(shù):
x -- 數(shù)值表達(dá)式狭园。

返回值:
返回?cái)?shù)字x的平方根。

實(shí)例:

import math

math.sqrt(4)
>> 2.0

math.sqrt(7)
>> 2.64575131106

math.sqrt(100)
>> 10.0

math.sqrt(math.pi)
>> 1.77245385091

由于本人對于 `Python 隨機(jī)數(shù)函數(shù)` 以及 `Python 三角函數(shù)` 使用需求不大
所以此處略帶一提糊治,不做詳細(xì)介紹唱矛,需要了解的朋友煩請自行查閱

Python 隨機(jī)數(shù)函數(shù)

隨機(jī)數(shù)可以用于數(shù)學(xué),游戲井辜,安全等領(lǐng)域中绎谦,還經(jīng)常被嵌入到算法中,用以提高算法效率粥脚,并提高程序的安全性窃肠。

Python包含以下常用隨機(jī)數(shù)函數(shù):

函數(shù) 描述
choice(seq) 從序列的元素中隨機(jī)挑選一個(gè)元素,比如random.choice(range(10))刷允,從0到9中隨機(jī)挑選一個(gè)整數(shù)冤留。
randrange (start, stop, step) 從指定范圍內(nèi)碧囊,按指定基數(shù)遞增的集合中獲取一個(gè)隨機(jī)數(shù),基數(shù)缺省值為1
random() 隨機(jī)生成下一個(gè)實(shí)數(shù)纤怒,它在[0,1)范圍內(nèi)糯而。
seed([x]) 改變隨機(jī)數(shù)生成器的種子 seed。如果你不了解其原理泊窘,你不必特別去設(shè)定 seed熄驼,Python 會幫你選擇 seed。
shuffle(lst) 將序列的所有元素隨機(jī)排序
uniform(x, y) 隨機(jī)生成下一個(gè)實(shí)數(shù)州既,它在 [x, y] 范圍內(nèi)谜洽。

Python 三角函數(shù)

函數(shù) 描述
acos(x) 返回x的反余弦弧度值。
asin(x) 返回x的反正弦弧度值吴叶。
atan(x) 返回x的反正切弧度值。
atan2(y, x) 返回給定的 X 及 Y 坐標(biāo)值的反正切值序臂。
cos(x) 返回x的弧度的余弦值蚌卤。
hypot(x, y) 返回歐幾里德范數(shù) sqrt(x*x + y*y)。
sin(x) 返回的x弧度的正弦值奥秆。
tan(x) 返回x弧度的正切值逊彭。
degrees(x) 將弧度轉(zhuǎn)換為角度,如degrees(math.pi/2) , 返回90.0
radians(x) 將角度轉(zhuǎn)換為弧度
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末构订,一起剝皮案震驚了整個(gè)濱河市侮叮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌悼瘾,老刑警劉巖囊榜,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異亥宿,居然都是意外死亡卸勺,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進(jìn)店門烫扼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來曙求,“玉大人,你說我怎么就攤上這事映企∥蛴” “怎么了?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵堰氓,是天一觀的道長挤渐。 經(jīng)常有香客問我,道長豆赏,這世上最難降的妖魔是什么挣菲? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任富稻,我火速辦了婚禮,結(jié)果婚禮上白胀,老公的妹妹穿的比我還像新娘椭赋。我一直安慰自己,他們只是感情好或杠,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布哪怔。 她就那樣靜靜地躺著,像睡著了一般向抢。 火紅的嫁衣襯著肌膚如雪认境。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天挟鸠,我揣著相機(jī)與錄音叉信,去河邊找鬼。 笑死艘希,一個(gè)胖子當(dāng)著我的面吹牛硼身,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播覆享,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼佳遂,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了撒顿?” 一聲冷哼從身側(cè)響起丑罪,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎凤壁,沒想到半個(gè)月后吩屹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡客扎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年祟峦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片徙鱼。...
    茶點(diǎn)故事閱讀 38,605評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡宅楞,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出袱吆,到底是詐尸還是另有隱情厌衙,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布绞绒,位于F島的核電站婶希,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蓬衡。R本人自食惡果不足惜喻杈,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一彤枢、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧筒饰,春花似錦缴啡、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至谬晕,卻和暖如春碘裕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背攒钳。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工帮孔, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人不撑。 一個(gè)月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓你弦,卻偏偏與公主長得像,于是被迫代替她去往敵國和親燎孟。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內(nèi)容