python中的一些小坑

2021-10-06 16:48:57 字數 2742 閱讀 1750

a =((

1))b =((

1),)

這兩個看起來好像也沒什麼差別嘛,就是乙個都好而已

列印出來的結果卻差很多!

print

(type

(a))

print

(a)print

(type

(b))

print

(b)"""

1(1,)

"""

a=[1

,2,3

]b=a;

a+=[4,

5,6]

# a = a+[4,5,6]

print

(a,b)

"""使用+=列印結果

[1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5, 6]

第二種列印結果

[1, 2, 3, 4, 5, 6] [1, 2, 3]

"""

a =[11

,22,33

,44]for i in a:

print

(i) a.remove(i)

;print

(a)"""

1133

[22, 44]

"""

這是由於,當我們刪除第0個資料11之後,list中剩下[22,33,44]。

下一次迴圈我們遍歷到了此時list的第1個,也就是33。

所以,如果想要全部刪除,

(1)我們可以從後往前刪除,

(2)迴圈判斷list剩餘資料,每次刪除第乙個

is比較的是兩個整數物件的id值是否相等,也就是比較兩個引用是否代表了記憶體中同乙個位址。

==比較的是兩個整數物件的內容是否相等,使用==時其實是呼叫了物件的__eq__()方法。

首先我們執行下面這段**

a=0b=

0while

(true):

if a is b:

print

('%d is %d'

%(a,b)

) a+=

1 b+=

1else

:print

('%d is not %d'

%(a,b)

)breaka=0

b=0while

(true):

if a is b:

print

('%d is %d'

%(a,b)

) a-=

1 b-=

1else

:print

('%d is not %d'

%(a,b)

)break

結果如下圖

為什麼a和b是兩個物件,用is比較確實true呢?

因為python出於對效能的考慮做了一些優化,他將[-5,256]這個範圍的整數都儲存在了乙個叫small_ints的鍊錶中,我們使用就從裡面去而不需要反覆建立新的物件。

但是超過了這個範圍,我們就會看到,即使數值一樣,也不是乙個物件。

然後我們再看下面這一段

a =

257def

main()

: b =

257# 第6行

c =257# 第7行

print

(b is c)

# true

print

(a is b)

# false

print

(a is c)

# false

if __name__ ==

"__main__"

: main(

)

結果在注釋上面了,

那麼為什麼b is c是true?

為什麼會出現這樣的結果,首先我們來說說python程式中的**塊。所謂**塊是程式的乙個最小的基本執行單位,乙個模組檔案、乙個函式體、乙個類、互動式命令中的單行**都叫做乙個**塊。上面的**由兩個**塊構成。

a = 257是乙個**塊,main函式是乙個**塊。

python內部為了進一步提高效能,凡是在乙個**塊中建立的整數物件,如果值不在small_ints快取範圍之內,但是在該**塊中已經存在乙個值相同的整數物件,我們就直接引用該物件。

這條規則只對非負數和字串有用。

我們可以列印id來證明一下

a =

257def

main()

: b =

257 c =

257print(id

(a))

print(id

(b))

print(id

(c))

if __name__ ==

"__main__"

: main(

)

列印結果如下圖,可以看到b和c確實是乙個物件

Jquery中on繫結的一些小坑

恢復內容開始 今天我們來說說關於jquery中事件繫結中on繫結的一些小問題,直接上 了,大家拷下去就可以用 en 當我們在on函式的引數裡面傳入了子元素的引數 on的繫結機制類似於事件繫結,所以我們才不能移除某個子元素的事件 而當我們不傳入子元素的引數,on的繫結機制相當於迴圈繫結,所以此時我們可...

python中的一些小知識 一

1.特殊變數 name 我們可以在我們的python檔案中加入如下 以方便進行單元測試。def unit test print this is a unit test if name main unit test 當python檢測到乙個程式檔案正在被直譯器執行而不是作為乙個被匯入的模組,它會把特殊...

Python中的字典一些小總結

字典定義語法 其中每乙個元素是乙個 鍵值對 鍵 值 key value 大括號 把所有元素綁在一起 逗號,將每個鍵值對一一分開 分號 將鍵和值分開 建立字典的例子如下 d print d,type d 執行後 class dict 內建方法 字典裡最常用的三個內建方法就是keys values 和i...