<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                [TOC] <br/><br/><br/> # <b style="color:#4F4F4F;">簡介說明</b> 結構腦圖:[地址](https://naotu.baidu.com/file/dc0ce8772b61cf8cbed95631b1e4ab33?token=45c30b33dcb7443c) 原文鏈接: - [Python](https://docs.python.org/zh-cn/3.9/py-modindex.html) ``` 版本:Python 作用:跨平臺的計算機程序設計語言 ``` <br/> # <b style="color:#4F4F4F;">基本語法</b> <br/> # <span style="color:#619BE4">global</span> ***** 訪問全局變量 <br/> # <span style="color:#619BE4">nonlocal</span> ***** 訪問上層函數變量,形成閉包 <br/> # <span style="color:#619BE4">assert</span> ***** 斷言 <br/> # <span style="color:#619BE4">raise</span> ***** 拋出一個異常對象 <br/> # <span style="color:#619BE4">del</span> ***** 銷毀變量,可以直接改變數組大小 <br/> # <span style="color:#619BE4">yield</span> ***** 將python函數變為生成器對象,當使用next方法時yield的值被返回,并往下繼續執行 <br/> ### 示例內容 <span style="color:red;">1. 舉例說明</span> ``` def gen(): time.sleep(3) yield time.time() print("go") return None def sleep_1(t): print("sleep " + str(t)) def main(): for task in gen(): sleep_1(task) print(next(gen())) ``` <br/> # <span style="color:#619BE4">yield from</span> ***** 跟一個可迭代對象,并將它一個一個yield出來,并且做了一系列異常處理,最后返回可迭代對象的結果集合 <br/> # <span style="color:#619BE4">is</span> ***** 判斷對象是否是指向同一個地址的相同對象,==比較的是內容是否相同 <br/> # <span style="color:#619BE4">__name</span> ***** 設置私有屬性,如果外部強行調用需要 `_【類名】【屬性名】` 方式調用 <br/> # <span style="color:#619BE4">f'字符串'</span> ***** python3.6新特性,可以直接嵌套變量到字符串 <br/> # <span style="color:#619BE4">b'字符串'</span> ***** 將字符串unicode編碼成bytes類型,默認編碼算法utf8 <br/> # <span style="color:#619BE4">"" ""</span> ***** 傳參數時多個字符串空格分開會被自動合并,如list("2" "3"),傳入的是"23" <br/> # <span style="color:#619BE4">:=</span> ***** 海象運算符 <br/> # <span style="color:#619BE4">/ *</span> ***** 參數指定符,指定傳入參數只能是順序參數,或關鍵字參數 <br/> # <span style="color:#619BE4">[::]</span> ***** 切片,[開始:結束:步長],如果步長設置-1可以實現倒序 <br/> # <span style="color:#619BE4">\>\></span> ***** 右移位運算符,即當前數值除以2的n次方取整 <br/> # <span style="color:#619BE4">\<\<</span> ***** 左移位運算符,即當前數值乘以2的n次方 <br/> # <span style="color:#619BE4">^</span> ***** 異或運算符 <br/> # <span style="color:#619BE4">~</span> ***** 取反運算符,計算機存儲的是補碼,取出時候會對補碼進行還原 <br/> # <span style="color:#619BE4">//</span> ***** 整除運算符 <br/> # <b style="color:#4F4F4F;">特性內容</b> <br/> # <span style="color:#619BE4">Garbage collection(GC)</span> ***** 垃圾回收 <br/> ### 示例內容 <span style="color:red;">1. 引用計數</span> ``` 當一個對象有新的引用時,它的ob_refcnt就會增加, 當引用它的對象被刪除,它的ob_refcnt就會減少。 當引用計數為0時,該對象生命就結束了。 引用計數機制的優點: 1. 簡單 2. 實時性:一旦沒有引用,內存就直接釋放了。 不用像其他機制等到特定時機。 實時性還帶來一個好處:處理回收內存的時間分攤到了平時。 引用計數機制的缺點: 1. 維護引用計數消耗資源 2. 循環引用 list1與list2相互引用,如果不存在其他對象對它們的引用, list1與list2的引用計數也仍然為1,所占用的內存永遠無法被回收,這將是致命的。 ``` <span style="color:red;">2. 標記清除</span> ``` 1. 首先標記對象(垃圾檢測),然后清除垃圾(垃圾回收) 2. 首先初始所有對象標記為白色,并確定根節點對象(這些對象是不會被刪除), 標記它們為黑色(表示對象有效)。 3. 將有效對象引用的對象標記為灰色(表示對象可達,但它們所引用的對象還沒檢查), 檢查完灰色對象引用的對象后,將灰色標記為黑色。 4. 重復直到不存在灰色節點為止。最后白色結點都是需要清除的對象。 ``` <span style="color:red;">3. 分代回收</span> ``` 1. 分代技術是一種典型的以空間換時間的技術,這也正是java里的關鍵技術。 這種思想簡單點說就是:對象存在時間越長,越可能不是垃圾,應該越少去收集。 2. 這樣的思想,可以減少標記-清除機制所帶來的額外操作。 分代就是將回收對象分成數個代,每個代就是一個鏈表(集合), 代進行標記-清除的時間與代內對象 存活時間成正比例關系。 3. 從上面代碼可以看出python里一共有三代, 每個代的threshold值表示該代最多容納對象的個數。 默認情況下,當0代超過700,或1,2代超過10,垃圾回收機制將觸發。 4. 0代觸發將清理所有三代,1代觸發會清理1,2代,2代觸發后只會清理自己。 ``` <br/> # <span style="color:#619BE4">GIL(全局解釋器鎖)</span> ***** 全局解釋器鎖 <br/> ### 示例內容 <span style="color:red">1. 舉例說明</span> ``` 內置的C實現的模塊能保證不發生切換(解釋器所有權切換只能發生在字節碼之間) Python中list的實現那一連串的過程都可以認為是原子的,也就是線程安全的 ``` ![GIL](https://img.kancloud.cn/3c/dd/3cdddc0145704905f454a0962d8b6b5e_1168x656.png) <br/> # <span style="color:#619BE4">進度條</span> ***** 控制臺進度條 <br/> ### 示例內容 <span style="color:red">1. 舉例說明</span> ``` import time as t scale = 50 print("執行開始".center(scale // 2, "-")) start = t.perf_counter() for i in range(scale + 1): a = '*' * i b = '.' * (scale - i) c = (i / scale) * 100 dur = t.perf_counter() - start print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c, a, b, dur), end="") t.sleep(0.1) ``` <br/> # <span style="color:#619BE4">輸出顏色</span> ***** 控制臺輸出顏色 <br/> ### 示例內容 <span style="color:red">1. 舉例說明</span> ``` #格式:   設置顏色開始 :\033[顯示方式;前景色;背景色m #說明: 前景色 背景色 顏色 --------------------------------------- 40 黑色 41 紅色 42 綠色 43 黃色 44 藍色 45 紫紅色 46 青藍色 47 白色 顯示方式 意義 ------------------------- 終端默認設置 高亮顯示 使用下劃線 閃爍 反白顯示 不可見 #例子: \033[1;31;40m <!--1-高亮顯示 31-前景色紅色 40-背景色黑色--> \033[0m <!--采用終端默認設置,即取消顏色設置--> ``` <span style="color:red">2. 移動位置</span> ``` \033[nA \\可以將光標上移n行 \033[nB \\可以將光標下移n行 ``` <br/> # <span style="color:#619BE4">禁用控制臺</span> ***** 使用pythonw執行python腳本 <br/>
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看