天天看點

二、Python語言簡介Python : 大蟒蛇Python之禅——zenPython最沒用的特點Python一些較為簡單的特點Python一些較為難了解的特點Python在執行時,

欄目:Python3基礎

  • Python : 大蟒蛇
    • 一些關于Python的News
  • Python之禅——zen
    • 有好事者翻譯了:
  • Python最沒用的特點
  • Python一些較為簡單的特點
  • Python一些較為難了解的特點
  • Python在執行時,
    • 來看看.cpy的位元組碼檔案
    • .cpy的由來——Python解釋器的具體工作

Python : 大蟒蛇

荷蘭人 Guidovan Rossum(吉多·範羅蘇姆) 于1989年發明了🐍🐍🐍

二、Python語言簡介Python : 大蟒蛇Python之禅——zenPython最沒用的特點Python一些較為簡單的特點Python一些較為難了解的特點Python在執行時,

Q: 這是在喝枸杞奶茶嗎?

一些關于Python的News

  • 2019年1月,它被 TIOBE 程式設計語言排行榜評為2018年度語言。
  • 2021 年 8 月 TIOBE 指數
    二、Python語言簡介Python : 大蟒蛇Python之禅——zenPython最沒用的特點Python一些較為簡單的特點Python一些較為難了解的特點Python在執行時,

Python之禅——zen

導入這個庫:沒錯就是這個:this

>>> import this
           

下面導入this就是執行了this.py

"""this.py子產品的源碼"""

s = """Gur Mra bs Clguba, ol Gvz Crgref

Ornhgvshy vf orggre guna htyl.
Rkcyvpvg vf orggre guna vzcyvpvg.
Fvzcyr vf orggre guna pbzcyrk.
Pbzcyrk vf orggre guna pbzcyvpngrq.
Syng vf orggre guna arfgrq.
Fcnefr vf orggre guna qrafr.
Ernqnovyvgl pbhagf.
Fcrpvny pnfrf nera'g fcrpvny rabhtu gb oernx gur ehyrf.
Nygubhtu cenpgvpnyvgl orngf chevgl.
Reebef fubhyq arire cnff fvyragyl.
Hayrff rkcyvpvgyl fvyraprq.
Va gur snpr bs nzovthvgl, ershfr gur grzcgngvba gb thrff.
Gurer fubhyq or bar-- naq cersrenoyl bayl bar --boivbhf jnl gb qb vg.
Nygubhtu gung jnl znl abg or boivbhf ng svefg hayrff lbh'er Qhgpu.
Abj vf orggre guna arire.
Nygubhtu arire vf bsgra orggre guna *evtug* abj.
Vs gur vzcyrzragngvba vf uneq gb rkcynva, vg'f n onq vqrn.
Vs gur vzcyrzragngvba vf rnfl gb rkcynva, vg znl or n tbbq vqrn.
Anzrfcnprf ner bar ubaxvat terng vqrn -- yrg'f qb zber bs gubfr!"""

d = {}
for c in (65, 97):
    for i in range(26):
        d[chr(i+c)] = chr((i+13) % 26 + c)

print("".join([d.get(c, c) for c in s]))
           

有好事者翻譯了:

優美勝于醜陋

明了勝于晦澀

簡潔勝于複雜

複雜勝于淩亂

扁平勝于嵌套

間隔勝于緊湊

可讀性很重要

即便假借特例的實用性之名,也不可違背這些規則

不要包容所有錯誤,除非你确定需要這樣做

當存在多種可能,不要嘗試去猜測

而是盡量找一種,最好是唯一一種明顯的解決方案

雖然這并不容易,因為你不是 Python 之父 (hahaha

做也許好過不做,但不假思索就動手還不如不做

如果你無法向人描述你的方案,那肯定不是一個好方案;反之亦然

命名空間是一種絕妙的理念,我們應當多加利用

Python最沒用的特點

Easy

Python一些較為簡單的特點

  • 進階語言:用 Python語言編寫程式時無須考慮如何管理你的程式使用的記憶體等這類底層細節。
  • 免費、開源:Python是自由軟體之一。

Python一些較為難了解的特點

  • Python是

    完全

    面向對象的語言。

    函數、子產品、數字、字元串都是對象,并且完全支援 繼承、重載、派生,有益于增強源代碼的複用性。Python支援重載運算符和動态類型。

  • 可擴充性:

    如果需要一段關鍵代碼運作得更快或者希望某些算法不公開,

    可以 部分程式用 C或 C++編寫,然後在 Python程式中使用它們。

    反過來也可以把 Python 嵌入 C/C++程式,進而向程式使用者提供腳本功能。

  • 豐富的庫:Python标準庫很龐大。

    感覺很多情況就是學習庫的使用,不要讓自己變成機械的調用機器!

Python在執行時,

首先會将“.py”檔案中的源代碼翻譯成 Python的 byte code(位元組碼),

然後再由 Python Virtual Machine(Python虛拟機)來執行這些翻譯好的 byte code。

基于 C的 Python翻譯出的位元組碼檔案,通常是“.pyc”格式。

來看看.cpy的位元組碼檔案

算了,沒什麼好看的,反正不是這個年紀能看的東西

二、Python語言簡介Python : 大蟒蛇Python之禅——zenPython最沒用的特點Python一些較為簡單的特點Python一些較為難了解的特點Python在執行時,

但可以解釋一下

.cpython-93.pyc

是什麼意思。

cpython:c語言實作的Python解釋器,

-93:代表的是python3.9版本

.cpy的由來——Python解釋器的具體工作

  1. 完成子產品的加載和連結;
  2. 将源代碼編譯為PyCodeObject對象(即位元組碼),寫入記憶體中,供CPU讀取;
  3. 從記憶體中讀取并執行,結束後将PyCodeObject寫回硬碟當中,也就是複制到.pyc或.pyo檔案中,以儲存目前目錄下所有腳本的位元組碼檔案。

之後若再次執行該腳本,

它先檢查【本地是否有上述位元組碼檔案】和【該位元組碼檔案的修改時間是否在其源檔案之後】,

是就直接執行,否則重複上述步驟。

這些

.cpy

的檔案存在和

.py

檔案相同的檔案夾下,

的一個名為

__pycache__

的檔案夾下。如圖:(我用來爬王者皮膚的scrapy架構的相關檔案)

二、Python語言簡介Python : 大蟒蛇Python之禅——zenPython最沒用的特點Python一些較為簡單的特點Python一些較為難了解的特點Python在執行時,
二、Python語言簡介Python : 大蟒蛇Python之禅——zenPython最沒用的特點Python一些較為簡單的特點Python一些較為難了解的特點Python在執行時,

第一次執行代碼

之後

Python解釋器已經把編譯的位元組碼放在__pycache__檔案夾中,

這樣以後再次運作的話,如果被調用的子產品未發生改變,

那就直接跳過編譯這一步,

直接去__pycache__檔案夾中去運作相關的*.pyc檔案,

大大縮短了項目運作前的準備時間。

end