国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python學習筆記8

2019-11-08 01:52:18
字體:
來源:轉載
供稿:網友

數值對象

再次重申:Python的對象是不能刪除或修改的,只能在引用為0時被垃圾回收器回收。數值對象可以被賦值給一個變量。變量是對象的一個引用不等同于對象,數值變量是可以被刪除的---使用del函數, 結果是所引用的數值對象的引用數減一,且該變量不再可用,除非重新給該變量賦值一個新的對象。

整型:

Python的整型等于C語言的長整型。 Python的長整型所能表達的數值與機器支持的內存有關,長整型對象后用”L”標識。(小寫”l”也可以,但容易與數字1混淆,不建議使用)

八進制整數以”0”開始,十六進制整數以”0x”或”0X”開始。

 

浮點數:

Python的浮點數是雙精度浮點數,完全遵守IEEE754號規范(52M/11E/1S)。

 

復數:

Python將復數作為了一種內建的數據類型。

運算符:

對于不同的數據類型,運算符有不同的操作定義。體現了重載概念。兩個類型不同的數值進行運算時需要進行強制類型轉換,轉換方向:整數->長整數->浮點數->復數。

整數除法: 兩個操作數都是整數,結果返回整數(地板除)。

浮點數除法:操作數中有浮點數,結果返回浮點數(真正的除法)。

Python有一個地板除運算符”//”,舍棄真實商的小數部分,返回真實商整數部分。如果兩個操作數都是整數則返回整數,如果操作數中有浮點數則返回浮點數。例:5//2=2 5.0//2=2.0

位運算符:只適用于整數。

~ 取反,&與,|或,^異或,<<左移,>>右移。

因為整數在內存中是以補碼的形式存儲的,所以位操作是在補碼的基礎上進行的,得到的也是新值的補碼,需要將補碼轉換為原碼才能知道結果是多少。

轉載他人的帖子:

二進制數在內存中以補碼的形式存儲按位取反:二進制每一位取反,0變1,1變0。

~9的計算步驟:轉二進制:0 1001計算補碼:0 1001按位取反:1 0110_____轉為原碼

按位取反:1 1001   末位加一:1 1010符號位為1是負數,即-10

~-9的計算步驟:轉二進制:1 1001計算補碼:1 0111按位取反:0 1000

_____

轉為原碼:

正數的補碼和原碼相同,仍為:0 1000,即8

原碼表示法在數值前面增加了一位符號位(即最高位為符號位):正數該位為0,負數該位為1(0有兩種表示:+0和-0),其余位表示數值的大小。例如,用8位二進制表示一個數,+11的原碼為00001011,-11的原碼就是10001011。反碼表示法規定:正數的反碼與其原碼相同;負數的反碼是對其原碼逐位取反,但符號位除外。補碼表示法規定:正數的補碼與其原碼相同;負數的補碼是在其反碼的末位加1。(1) 原碼:在數值前直接加一符號位的表示法。[+7]原= 0 0000111 B[-7]原= 1 0000111 B注意:a. 數0的原碼有兩種形式:[+0]原=0 0000000 B[-0]原=1 0000000 Bb. 8位二進制原碼的表示范圍:-127~+127(2)反碼:正數:正數的反碼與原碼相同。負數:負數的反碼,符號位為“1”,數值部分按位取反。[+7]反= 0 0000111 B[-7]反= 1 1111000 B注意:a. 數0的反碼也有兩種形式,即[+0]反=0 0000000 B[-0]反=1 1111111 Bb. 8位二進制反碼的表示范圍:-127~+127(3)補碼正數:正數的補碼和原碼相同。負數:負數的補碼則是符號位為“1”。并且,這個“1”既是符號位,也是數值位。數值部分按位取反后再在末位(最低位)加1。也就是“反碼+1”。

求負整數的補碼,原碼符號位不變,先將原碼減去1,最后數值各位取反。(但由于2進制的特殊性,通常先使數值位各位取反,最后整個數加1。)

例如: 符號位 數值位[+7]補= 0 0000111 B[-7]補= 1 1111001 B

注意:a. 采用補碼后,可以方便地將減法運算轉化成加法運算,運算過程得到簡化。正數的補碼即是它所表示的數的真值,而負數的補碼的數值部份卻不是它所表示的數的真值。采用補碼進行運算,所得結果仍為補碼。b. 與原碼、反碼不同,數值0的補碼只有一個,即 [0]補=00000000B。c. 若字長為8位,則補碼所表示的范圍為-128~+127;進行補碼運算時,應注意所得結果不應超過補碼所能表示數的范圍。

 

轉化為原碼

已知一個數的補碼,求原碼的操作其實就是對該補碼再求補碼:

⑴如果補碼的符號位為“0”,表示是一個正數,其原碼就是補碼。

⑵如果補碼的符號位為“1”,表示是一個負數,那么求給定的這個補碼的補碼就是要求的原碼。

 

 

 

   位移操作:左移n位相當于乘以2的n次方,右移n位相當于除以2的n次方。

 

內建的一些數學函數:

cmp(x,y):如果x大于y則返回1,如果x小于y則返回-1,如果x等于y則返回0.

str(x): 返回x值的十進制形式的字符串。例:str(0xff)返回’255’,str(55.3e2)返回’5530.0’

bool(obj): 返回對象的布爾值,也就是obj.__nonzero__()方法的返回值。

int(obj, base=10): 返回obj的整數部分,obj只能是數值或字符串。Base標識進制參數。

long(obj, base=10):返回ojb的整數表示,obj為字符串或數據對象。

float(obj): 返回ojb的浮點數表示,obj為字符串或數據對象。

complex(str)/complex(real,imag=0.0): 構造一個復數。

abs(obj): 返回絕對值。

coerce(x,y): 根據類型轉換規則,返回轉換后的x,y組成的元組(x,y)。整型->浮點型->復數。

divmod(x,y): 返回x除以y的商和余數組成的元組。例:divmod(10,3)返回(3,1).

pow(x,y): 返回x的y次方。

pow(x,y,z):相當于pow(x,y)%z,但性能更好,多用于密碼運算。

round(x,y): 返回x在小數點后y位上四舍五入之后的值。例:round(3.1415,3)返回3.142.

hex(x): 返回x的16進制數值的字符串形式。

oct(x): 返回x的八進制數值的字符串形式。

chr(x): 返回以x為ASII碼的字符。

unichr(x): 返回x的Unicode字符。輸入值取決與Python是構建與UCS-2還是UCS-4。

ord(x): 返回字符x的ASII碼或Unicode的十進制表示。

bool(obj): 返回對象的__nonzero__方法決定。無此方法的對象,默認是True。

random模塊的函數:

random(): 返回0.0 到1.0之間的一個隨機數。

randrange([start],stop,[step]):隨機返回依據參數生成序列中的一個。

randint(int1, Int2):隨機返回兩個整數之間的一個整數。

uniform(float1,float2):隨機返回兩個浮點數之間的一個浮點數。

choice(序列): 隨機返回序列中的一個元素。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 孝昌县| 额敏县| 依兰县| 鄂尔多斯市| 琼结县| 中卫市| 阳信县| 泸定县| 龙州县| 小金县| 平原县| 莆田市| 邳州市| 泗洪县| 博湖县| 永丰县| 塔城市| 保德县| 北碚区| 宁乡县| 桂平市| 蒙阴县| 遂宁市| 博客| 搜索| 司法| 分宜县| 吉安县| 手游| 普定县| 邵阳市| 五原县| 榆树市| 上林县| 高清| 巩义市| 玉门市| 灵武市| 白山市| 龙南县| 特克斯县|