import math
a = math.sqrt(25)
print(a)
我的輸出是 5.0,我怎樣才能得到 5(整數)呢?
uj5u.com熱心網友回復:
您必須檢查并顯式轉換為整數:
if x == (y := int(x)):
x = y
或者,沒有賦值運算子:
if x == int(x):
x = int(x)
從 python 3.8 開始,您可以使用math.isqrt:
math.isqrt(25)
請記住,這將始終回傳一個整數,即使輸入不是一個完美的正方形。
uj5u.com熱心網友回復:
以簡化的方式,您可以使用 1 行 if 運算子將整數值分配給sqrt如果整數和十進制值相同的結果:
import math
a = math.sqrt(25)
a = int(a) if int(a)==a else a
print(a)
uj5u.com熱心網友回復:
這在一定程度上取決于您想要的確切行為:您是想列印不帶小數的數字,還是要將數字四舍五入為整數?
對于 print 陳述句,Python 嘗試將傳遞給它的任何內容轉換為 String 以便列印它,并且默認情況下它給出浮點數小數位。為了阻止這種情況,我們可以使用字串格式化:
print("{:.0f}".format(a))
這樣做是制作一個包含特殊格式標記(大括號 {})的字串(雙引號“”)。格式標記內是所需行為的代碼(浮點數上的 0 個小數位)。然后我們呼叫字串的 .format 方法并在特殊格式標記內傳遞我們想要使用的值 (a)。
這看起來有點神秘和丑陋,但它是最安全的列印所需內容的方法,因為它不會更改“a”,并且可以輕松定制其他列印行為。
為了將數字四舍五入并將其轉換為 int,您可以使用 int() 或 round():兩者都將接受一個浮點數并輸出一個整數,該整數將清晰地列印出來(并且是一個整數以供將來計算)。不需要將事物轉換為實際上是整數,但兩個函式有不同的行為:int 回傳數字的第一個數字的值,而 round 回傳四舍五入的值(IE round(1.9) -> 2, int(1.9) -> 1, 等等)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/469366.html
標籤:Python python-3.x
