python 整数逆位运算_python训练营:注释、运算符、数据类型与位运算
天學(xué)習(xí)的內(nèi)容整理成腦圖如下,其中帶☆的是需要重點(diǎn)掌握的模糊知識(shí)點(diǎn),需要加強(qiáng)訓(xùn)練和記憶。
二、具體學(xué)習(xí)內(nèi)容
2.1 注釋
2.1.1 多行注釋
2.1.2 長(zhǎng)字符串注釋
2.2 運(yùn)算符
2.2.1 算術(shù)運(yùn)算符
2.2.2 比較運(yùn)算符
2.2.3 邏輯運(yùn)算符
2.2.4 位運(yùn)算符
2.2.5 三元運(yùn)算符
以上三元運(yùn)算符等價(jià)于以下代碼
2.2.6 其他運(yùn)算符
2.2.6.1 in和not in
2.2.6.2 is和not is
注意:is, is not 對(duì)比的是兩個(gè)變量的內(nèi)存地址
==, != 對(duì)比的是兩個(gè)變量的值
比較的兩個(gè)變量,指向的都是地址不可變的類型(str等),那么is,is not 和 ==,!= 是完全等價(jià)的。
對(duì)比的兩個(gè)變量,指向的是地址可變的類型(list,dict,tuple等),則兩者是有區(qū)別的。
2.2.7 運(yùn)算符的優(yōu)先級(jí)一元運(yùn)算符優(yōu)于二元運(yùn)算符。例如3 ** -2等價(jià)于3 ** (-2)。
先算術(shù)運(yùn)算,后移位運(yùn)算,最后位運(yùn)算。例如 1 << 3 + 2 & 7等價(jià)于 (1 << (3 + 2)) & 7。
邏輯運(yùn)算最后結(jié)合。例如3 < 4 and 4 < 5等價(jià)于(3 < 4) and (4 < 5)。
口訣:算移位邏(SIVL)
2.3. 變量和賦值在使用變量之前,需要對(duì)其先賦值。
變量名可以包括字母、數(shù)字、下劃線、但變量名不能以數(shù)字開(kāi)頭。
Python 變量名是大小寫(xiě)敏感的,foo != Foo。
2.4. 數(shù)據(jù)與類型轉(zhuǎn)換
2.4.1 整型
2.4.2 浮點(diǎn)型
2.4.3 布爾型
2.4.5 類型轉(zhuǎn)換
2.4.6 print函數(shù)
2.5 位運(yùn)算
2.5.1 原碼、反碼和補(bǔ)碼
2.5.2 按位運(yùn)算
2.6.3 利用位運(yùn)算實(shí)現(xiàn)快速計(jì)算
2.6.4 利用位運(yùn)算實(shí)現(xiàn)整數(shù)集合
示例代碼:
我們從結(jié)果可以看出:
Python中bin一個(gè)負(fù)數(shù)(十進(jìn)制表示),輸出的是它的原碼的二進(jìn)制表示加上個(gè)負(fù)號(hào),巨坑。
Python中的整型是補(bǔ)碼形式存儲(chǔ)的。
Python中整型是不限制長(zhǎng)度的不會(huì)超范圍溢出。
所以為了獲得負(fù)數(shù)(十進(jìn)制表示)的補(bǔ)碼,需要手動(dòng)將其和十六進(jìn)制數(shù)0xffffffff進(jìn)行按位與操作,再交給bin()進(jìn)行輸出,得到的才是負(fù)數(shù)的補(bǔ)碼表示。
三、學(xué)習(xí)問(wèn)題和解決方法記錄
最大的問(wèn)題可能是網(wǎng)速的問(wèn)題了,解決方案就是第一次啟動(dòng)的時(shí)候耐心等待,如果實(shí)在不行,多切換幾個(gè)網(wǎng)絡(luò),電信網(wǎng)不行就用校園網(wǎng),再不行就換成4G熱點(diǎn)。
注意is/not is的用法,這兩個(gè)運(yùn)算符其實(shí)是用來(lái)判定兩個(gè)變量的地址是否一致的,如果是比較小的變量,比如小數(shù)字和字符串,python是會(huì)將不同變量名指向同一個(gè)地址的(也就是同一個(gè)對(duì)象)。但是如果是不同的列表或者其他容器的話,一般來(lái)說(shuō)是不相等的,因?yàn)閜ython會(huì)另外分配空間給這些變量。
總的來(lái)說(shuō),今天的內(nèi)容比較基礎(chǔ),不過(guò)也學(xué)到了不少新知識(shí),比如:用Decimal對(duì)象來(lái)控制浮點(diǎn)型數(shù)值的位數(shù)等參數(shù)
使用位運(yùn)算的一系列騷操作(有點(diǎn)像one-hot編碼)來(lái)實(shí)現(xiàn)快速計(jì)算
還有些知識(shí)需要鞏固,比如:內(nèi)存中存放數(shù)據(jù)的方式
python中給小整數(shù)和字符串的內(nèi)存分配(is/not is判斷)
負(fù)數(shù)補(bǔ)碼的計(jì)算方法(反碼+1)
運(yùn)算符的優(yōu)先級(jí)。可以通過(guò)口訣"SIVL"進(jìn)行記憶,即S=算術(shù) I=移位運(yùn)算 V=位運(yùn)算 L=邏輯運(yùn)算。
總結(jié)
以上是生活随笔為你收集整理的python 整数逆位运算_python训练营:注释、运算符、数据类型与位运算的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 永远永远是哪首歌啊?
- 下一篇: mysql 附近3公里的_mysql搜寻