Python基礎學習-疑惑

在學習Python時遇到的幾點疑惑, 拿出來記一下

  • 為什么開頭要加#!/usr/bin/env python
  • 何時使用is
  • __name__
  • 淺拷貝 深拷貝
  • 字符編碼 Unicode balabala...
  • 在循環中try語句執行continue, 是否還會執行finally

#/usr/bin/env python

當系統看到這一行的時候,首先會到env設置里查找python的安裝路徑,再調用對應路徑下的解釋器程序完成操作.如果想直接執行還要修改文件的執行權限.

is 與 ==

如果兩個變量名指向的是同一個對象, 那么is返回True
如果兩個變量名值相等, 那么==返回True

如果is 返回True 那么==也返回True嗎?
一般來說是這樣的, 除非對象沒有定義__eq__()方法

__name__

由于主程序代碼無論是被導入還是被直接執行都是會運行的. 所以可以用__name__來驗證模塊是被導入還是直接被執行.

  • 如果模塊是被導入的, __name__的值為模塊的名字
  • 如果模塊是被直接執行的, __name__的值為__main__

舉個例子

#a.py
print __name__

#b.py
import a

直接運行a.py輸出結果為:__main__
運行b.py輸出結果為:a

淺拷貝 深拷貝

參考圖解Python深拷貝和淺拷貝 - By 田小計劃

字符編碼

參考zhijun liu的知乎回答, 講解的太精彩了

在循環中存在try-except, 執行continue, 是否還會執行finally

while/for else

#!/usr/bin/env python
a = 1
while a < 6:
    try:
        'abc' + 123
        print 'this is in try'
    except TypeError:
        continue
        print 'this is in except'
    finally:
        print 'this is in finally'
        a += 1
    print 'this is after try-except'

執行結果

this is in finally
this is in finally
this is in finally
this is in finally
this is in finally

結果表明了, 在try-except中執行continue不會立即執行下一次循環

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容