<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # Python 生成器 > 原文: [https://thepythonguru.com/python-generators/](https://thepythonguru.com/python-generators/) * * * 于 2020 年 1 月 7 日更新 * * * 生成器是用于創建迭代器的函數,因此可以在`for`循環中使用它。 ## 創建生成器 * * * 生成器的定義類似于函數,但只有一個區別,我們使用`yield`關鍵字返回用于`for`循環的每次迭代的值。 讓我們看一個示例,其中我們試圖克隆 python 的內置`range()`函數。 ```py def my_range(start, stop, step = 1): ? ? if stop <= start: ? ? ? ? raise RuntimeError("start must be smaller than stop") ? ? i = start ? ? while i < stop: ? ? ? ? yield i ? ? i += step try: ? ? for k in my_range(10, 50, 3): ? ? ? ? print(k) except RuntimeError as ex: ? ? print(ex) except: ? ? print("Unknown error occurred") ``` **預期輸出**: ```py 10 13 16 19 22 25 28 31 34 37 40 43 46 49 ``` ```py def my_range(start, stop, step = 1): if stop <= start: raise RuntimeError("start must be smaller than stop") i = start while i < stop: yield i i += step try: for k in my_range(10, 50, 3): print(k) except RuntimeError as ex: print(ex) except: print("Unknown error occurred") ``` `my_range()`的工作方式如下: 在`for`循環中,調用`my_range()`函數,它將初始化三個參數(`start`,`stop`和`step`)的值,并檢查`stop`是否小于或等于`start`。 `i`被分配了`start`的值。 此時,`i`為`10`,因此`while`條件的值為`True`,而`while`循環開始執行。 在下一個語句`yield`中,將控制轉移到`for`循環,并將`i`的當前值分配給變量`k`,在`for`循環打印語句中執行該語句,然后該控件再次傳遞到函數`my_range()`內的第 7 行 `i`遞增。 此過程一直重復進行,直到`i < stop`為止。 * * * * * *
                  <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>

                              哎呀哎呀视频在线观看