HOWTO · Python

在 Python 中查詢數字中的位數

有兩種主要方法可用於在 Python 中查詢數字中的位數,即 math.log10() 函式和 len() 函式。

本頁內容

本教程將介紹 Python 中計算數字中位數的方法。

使用 Python 中的 math.log10() 函式查詢數字中的位數

Python 的 math 模組中的 math.log10() 函式用於查詢任何指定數字的以 10 為底的對數。由於整數也是以 10 為底的,因此我們可以使用此方法獲取指定整數內的位數。

以下程式碼片段向我們展示瞭如何使用 math.log10() 函式查詢數字中的位數。

import math

n = -10
if n > 0:
    digits = int(math.log10(n)) + 1
elif n == 0:
    digits = 1
elif n < 0:
    digits = int(math.log10(-n)) + 2
print(digits)

輸出:

3

我們使用上面程式碼中的 math.log10() 函式計算了數字-10 中的位數。此程式碼還處理數字為 0 的情況,因為無法計算 0 的對數。我們首先檢查數字是否大於 0。如果數字大於 0,我們通過取對數並將結果加 1 來計算位數。完成此過程是因為任何數字的對數都比該數字內的位數少 1。

如果數字等於 0,我們將位數設定為 1。如果數字小於 0,我們通過取該負數的加法倒數的對數並將結果加 2 來計算位數。在負數的情況下,我們新增額外的 1,因為我們將 - 符號視為本示例中的數字。最後,我們在螢幕上列印數字的數量。

如果我們想確定整數中的位數,則此方法非常有用。但是,它不適用於十進位制數或任何帶有浮動小數點的數字。

在 Python 中使用 len() 函式查詢數字中的位數

len() 函式是 Python 中的一個內建函式,用於計算字串變數內的字元數。len() 函式將字串作為輸入引數並返回該字串中的字元數。要使用 len() 函式計算數字中的位數,我們首先必須使用 str() 函式將該數字轉換為字串。

str() 函式也是 Python 中的一個內建函式,用於將不同型別的物件轉換為字串變數。以下程式碼片段向我們展示瞭如何使用 len() 函式查詢數字中的位數:

n = -100.90
digits = len(str(n))
print(digits)

輸出:

6

我們使用上面程式碼中的 len() 函式計算了數字 -100.90 中的位數。首先,我們使用 str() 函式將數字轉換為字串。之後,我們將結果字串傳遞給 len() 函式,並將 len() 函式返回的值儲存在 digits 變數中。最後,我們將值列印在 digits 變數中。輸出清楚地表明,這種方法也適用於十進位制數或包含浮動小數點的數字。

len() 方法遠優於 math.log10() 方法,用於在 Python 中查詢十進位制數中的位數。原因是 len() 方法清晰、簡潔,並且與 math.log10() 方法不同,它可以處理浮點小數點,後者不必要地複雜並且不處理浮點小數點。