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

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ### 2.4.4 Python 中真假的表示與計算* 如前所述,較新版本的 Python 引入了內建類型 bool,并且定義了布爾值 True 和 False。而在此之前,Python 曾經利用 1 和 0 來作為布爾值。 事實上,如今的 Python 在表達真假方面更加靈活——任何內建類型的值都可以解釋成布爾值。例如,數值(int、long、float)可以解釋成布爾值:0 為 False,非 0 值為 True。又如,字符串也可以解釋成布爾值:空串為 False,非空字符串為 True。以后介 紹的列表、元組等數據類型的值也都可以解釋為布爾值。 Python 對布爾值的靈活處理方式也影響了邏輯運算符的含義。在 Python 中,布爾表達 式的結果不僅可以是“正宗的”布爾值 True 和 False,還可以是如上所述的各種“非正 宗”布爾值。下面介紹 Python 在實現邏輯運算符采取的策略,我們用 a、b 表示任何表達式(不一定是布爾表達式!)。 (1)a and b:如果 a 的值可解釋為 False,則返回 a 的值;否則返回 b 的值。 (2)a or b:如果 a 的值可解釋為 False,則返回 b 的值;否則返回 a 的值。 (3)not a:如果 a 的值可解釋為 False,則返回 True;否則返回 False。 這些規則看上去有點怪,但仔細思考之后就能理解,它們并沒有違反基本的邏輯運算的定義。 以 a and b 為例分析如下:當 a 的值不能解釋為 True,我們就不必計算 b 的值,而是直 接返回 a 的值(可解釋為 False)作為整個表達式的值;當 a 的值可解釋為 True,那么 整個表達式的真假就取決于 b 的值,b 真則表達式真,b 假則表達式假,因此我們可以返回 b 的值作為表達式的值。總之,當且僅當 a 和 b 都可解釋為 True 時,表達式 a and b 的 值才可解釋為 True。這是完全符合邏輯運算定義的。 對于 or 和 not 也是一樣。 下面看幾個例子: ``` >>> 2 and "hello" 'hello' ``` 說明:Python 先計算 2,發現它是非 0 值,可解釋為 True,于是按上述規則(1),返回"hello"的值作為結果。 ``` >>> (4 &gt; 5) or 3 3 ``` 說明:Python 先計算(4 &gt; 5),發現結果為 False,根據上述規則(2),返回 3 的值作為 表達式的值。 ``` >>> s = "hello" >>> not s[3:3] True ``` 說明:Python 先計算 s[3:3]的值,即字符串 s 的切分操作,但這個索引區間是不成立的: 不可能從索引 3 開始,又以 3 作為結束的上限(因為索引區間的上限是不包含在內的)。因 此切分結果是空串。空串被解釋為 False,根據上述規則(3),返回 True。 綜上所述,Python 對布爾值和布爾運算的處理很靈活,有時能夠便利程序設計。但代價是布爾表達式變得難以理解,很容易導致微妙的錯誤,所以建議讀者慎用。
                  <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>

                              哎呀哎呀视频在线观看