日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Python學習中遇到的問題

系統 1725 0

1.None和[]的區別

以前以為None就是空,直到看到了下面這段代碼

            
              list=[]
if list is None:
    print "list is NULL"
else:
    print "list is %s"  %list

            
          

發現輸出是list is [],而不是list is NULL。這說明None和[] 不等同
去翻了幾篇博客后,才知道None表示的是這個對象還沒創建,而[]表示的是這個對象創建了,但是還沒有值。
“一個盒子不裝東西它還是一個盒子([]),你把盒子拆了它就是none了”

2.關于可變對象和不可變對象的理解

果然學習一門語言就要換一種方式來對待它。
看代碼:

            
              x = 12323
y = 12323
z = 12323

print id(x)
print id(y)
print id(z)

#輸出:
50747600
50747600
50747600
#
print x is y
print y is z

#True
True#

            
          

我和伙伴們都驚呆了。。
python里的對象分為可變對象和不可變對象(python萬物皆對象)。

  • 不可變對象有:int、字符串(string)、float、(數值型number)、元組(tuple)。
    可變對象有:字典型(dictionary)、列表型(list)。

    我對不可變對象的理解就是給這個對象賦值之后,對象的值就不可以更改了,如果想改變對象的值,它會另外創造一個對象,把值賦給這個新對象,然后把變量名與之綁定。
    看圖:
    Python學習中遇到的問題_第1張圖片
    不可變對象的優點:
    減少了相同值對內存的占用。
    缺點:我要修改這個變量綁定的值,如果內存中沒用存在該值的內存塊,那么必須重新開辟一塊內存,把新地址與變量名綁定。而不是修改變量原來指向的內存塊的值,這回給執行效率帶來一定的降低。

  • 可變對象,自然就是說,可以在原來基礎上去改變值。
    - Python學習中遇到的問題_第2張圖片

  • 我們來看兩個函數:

            
              def f(a, L = []):
    L.append(a)
    print id(L)
    return L

print f(1)
print f(2)
print f(3)


#
[1]
[1, 2]
[1, 2, 3]
#

            
          
            
              def f(a, L = None):
    if(L is None):
        L = []
    L.append(a)
    return L

print f(1)
print f(2)
print f(3)

#
[1]
[2]
[3]
#

            
          

第一個代碼的輸出,是因為L是可變對象,它被創建了之后,第二次調用的時候,我們發現,L存在,所有就不會重新創建(沒有執行L=[]),所以會在原來的基礎上放進去一個2.
第二個代碼的輸出,是因為每次L都被置為None了。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 仙游县| 七台河市| 峡江县| 芜湖市| 仙游县| 丰城市| 卢湾区| 巨鹿县| 万全县| 玛沁县| 新密市| 吉安市| 图片| 泸州市| 阳江市| 常山县| 宁晋县| 宁都县| 乌恰县| 滨州市| 新源县| 如皋市| 西充县| 财经| 辉县市| 兖州市| 石景山区| 洪洞县| 安阳市| 灵璧县| 那坡县| 九龙县| 夏河县| 台中市| 张家界市| 彭阳县| 敦煌市| 永靖县| 龙南县| 广南县| 茶陵县|