黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

Python學習中遇到的問題

系統 1939 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條評論