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

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # Python 數字,類型轉換和數學 > 原文: [https://www.programiz.com/python-programming/numbers](https://www.programiz.com/python-programming/numbers) #### 在本文中,您將了解 Python 中使用的不同數字,如何從一種數據類型轉換為另一種數據類型以及 Python 支持的數學運算。 ## Python 中的數字數據類型 Python 支持整數,浮點數和復數。 在 Python 中,它們被定義為`int`,`float`和`complex`類。 整數和浮點由存在或不存在小數點分隔。 例如,5 是整數,而 5.0 是浮點數。 復數以`x + yj`的形式編寫,其中`x`是實數部分,`y`是虛數部分。 我們可以使用`type()`函數來了解變量或值屬于哪個類,并且可以使用`isinstance()`函數檢查其是否屬于特定類。 讓我們看一個例子: ```py a = 5 print(type(a)) print(type(5.0)) c = 5 + 3j print(c + 3) print(isinstance(c, complex)) ``` 當我們運行上面的程序時,我們得到以下輸出: ```py <class 'int'> <class 'float'> (8+3j) True ``` 盡管整數可以是任意長度,但浮點數最多只能精確到 15 個小數位(第 16 位不準確)。 我們每天處理的數字是十進制(以 10 為底)的數字系統。 但是計算機程序員(通常是嵌入式程序員)需要使用二進制(基數 2),十六進制(基數 16)和八進制(基數 8)數字系統。 在 Python 中,我們可以通過在數字之前添加前綴來表示這些數字。 下表列出了這些前綴。 | 數字系統 | 字首 | | --- | --- | | 二進制 | `'0b'`或`'0B'` | | 八進制 | `'0o'`或`'0O'` | | 十六進制 | `'0x'`或`'0X'` | 這里有些例子 ```py # Output: 107 print(0b1101011) # Output: 253 (251 + 2) print(0xFB + 0b10) # Output: 13 print(0o15) ``` 運行該程序時,輸出為: ```py 107 253 13 ``` * * * ## 類型轉換 我們可以將一種數字轉換為另一種數字。 這也稱為強制。 如果操作數之一為浮點型,則加法,減法等操作會強制整數隱式(自動)浮動。 ```py >>> 1 + 2.0 3.0 ``` 我們可以在上面看到 1(整數)被強制轉換為 1.0(浮點數)以進行加法,結果也是一個浮點數。 我們還可以使用`int()`,`float()`和`complex()`之類的內置函數在類型之間進行顯式轉換。 這些函數甚至可以從[字符串](/python-programming/string)轉換。 ```py >>> int(2.3) 2 >>> int(-2.8) -2 >>> float(5) 5.0 >>> complex('3+5j') (3+5j) ``` 從`float`轉換為整數時,該數字將被截斷(刪除小數部分)。 * * * ## Python 十進制 Python 內置類`float`會執行一些可能令我們驚訝的計算。 我們都知道 1.1 和 2.2 的總和是 3.3,但是 Python 似乎不同意。 ```py >>> (1.1 + 2.2) == 3.3 False ``` 到底是怎么回事? 事實證明,浮點數在計算機硬件中以二進制分數形式實現,因為計算機只能理解二進制(0 和 1)。 由于這個原因,我們知道的大多數十進制小數不能準確地存儲在我們的計算機中。 讓我們舉個例子。 我們不能將分數 1/3 表示為十進制數。 這將給出 0.33333333... 無限長,我們只能對其進行近似。 事實證明,十進制小數 0.1 會導致無限長的二進制分數 0.000110011001100110011...,而我們的計算機僅存儲了有限數量的二進制數。 這只會接近 0.1,但永遠不會相等。 因此,這是我們計算機硬件的局限性,而不是 Python 中的錯誤。 ```py >>> 1.1 + 2.2 3.3000000000000003 ``` 為了克服這個問題,我們可以使用 Python 隨附的十進制模塊。 浮點數的精度最高可以達到 15 個小數位,而十進制模塊則具有用戶可設置的精度。 讓我們看一下區別: ```py import decimal print(0.1) print(decimal.Decimal(0.1)) ``` **輸出** ```py 0.1 0.1000000000000000055511151231257827021181583404541015625 ``` 當我們要進行學校學習的十進制計算時,使用此模塊。 它也保留了意義。 我們知道 25.50 公斤比 25.5 公斤更準確,因為它比兩位小數兩位。 ```py from decimal import Decimal as D print(D('1.1') + D('2.2')) print(D('1.2') * D('2.50')) ``` **輸出**: ```py 3.3 3.000 ``` 注意上例中的尾隨零。 我們可能會問,為什么不每次都執行`Decimal`而不是`float`? 主要原因是效率。 浮點運算必須比`Decimal`運算更快。 ### 何時使用十進制代替浮點數? 在以下情況下,我們通常使用十進制。 * 當我們編程需要精確表示十進制的金融應用時。 * 當我們要控制所需的精度水平時。 * 當我們想實現有效小數位的概念時。 * * * ## Python 分數 Python 通過其`fractions`模塊提供了涉及小數的運算。 小數具有分子和分母,它們都是整數。 該模塊支持有理數算法。 我們可以通過多種方式創建`Fraction`對象。 讓我們看看它們。 ```py import fractions print(fractions.Fraction(1.5)) print(fractions.Fraction(5)) print(fractions.Fraction(1,3)) ``` **輸出**: ```py 3/2 5 1/3 ``` 從`float`創建`Fraction`時,我們可能會得到一些異常的結果。 這是由于上一節中討論的二進制浮點數表示不完善所致。 幸運的是,`Fraction`也允許我們使用字符串實例化。 使用十進制數字時,這是首選選項。 ```py import fractions # As float # Output: 2476979795053773/2251799813685248 print(fractions.Fraction(1.1)) # As string # Output: 11/10 print(fractions.Fraction('1.1')) ``` **輸出**: ```py 2476979795053773/2251799813685248 11/10 ``` 此數據類型支持所有基本操作。 這里有一些例子。 ```py from fractions import Fraction as F print(F(1, 3) + F(1, 3)) print(1 / F(5, 6)) print(F(-3, 10) > 0) print(F(-3, 10) < 0) ``` **輸出**: ```py 2/3 6/5 False True ``` * * * ## Python 數學 Python 提供`math`和`random`之類的模塊來執行不同的數學運算,例如三角函數,對數,概率和統計等。 ```py import math print(math.pi) print(math.cos(math.pi)) print(math.exp(10)) print(math.log10(1000)) print(math.sinh(1)) print(math.factorial(6)) ``` **輸出**: ```py 3.141592653589793 -1.0 22026.465794806718 3.0 1.1752011936438014 720 ``` 這是 [Python 數學模塊](/python-programming/modules/math)中可用的函數和屬性的完整列表。 ```py import random print(random.randrange(10, 20)) x = ['a', 'b', 'c', 'd', 'e'] # Get random choice print(random.choice(x)) # Shuffle x random.shuffle(x) # Print the shuffled x print(x) # Print random element print(random.random()) ``` 運行上面的程序時,輸出如下(由于隨機行為,值可能會有所不同) ```py 18 e ['c', 'e', 'd', 'b', 'a'] 0.5682821194654443 ``` 這是 [Python `random`模塊](/python-programming/modules/random)中可用的函數和屬性的完整列表。
                  <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>

                              哎呀哎呀视频在线观看