在 Python 中查詢數字中的位數

Muhammad Maisam Abbas 2023年1月30日
  1. 使用 Python 中的 math.log10() 函式查詢數字中的位數
  2. 在 Python 中使用 len() 函式查詢數字中的位數
在 Python 中查詢數字中的位數

本教程將介紹 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() 方法不同,它可以處理浮點小數點,後者不必要地複雜並且不處理浮點小數點。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

相關文章 - Python Number