簡體   English   中英

它不會附加為浮動 Python | 問題 #18

[英]It doesn't append as floating Python | Problem #18

我正在為 Codeabbey 中的問題 #18編寫此代碼。 我需要計算數字數組[150, 0, 5, 1 10, 3]平方根我必須將此數組划分為三個數組 (x,n) [[150, 0], [5, 1], [10 3]]其中 x: 是我要計算其平方根的數字,n: 是我必須嘗試公式 r = (r + x / r) / 2 以獲得結果的次數是 r,r 從 1 開始。沒有問題,問題是當我必須附加結果時,因為如果 r 是3.0我必須將其附加為整數: 3但如果 r 是3.964我必須附加它作為浮動。

def squareRoot():
    rawArr = [int(n) for n in input().split()]
    arr = [rawArr[i:i+2] for i in range(0,len(rawArr)-1,2)]
    results = []

    for a in arr:
        x,n = a
        r = 1.0
        for i in range(0,n):
            r = (r + x / r) / 2
        if r.is_integer:
            results.append(str(int(r)))
        else:
            results.append(str(round(r,3)))
    return " ".join(results)

輸入是:

150 0 5 1 10 3

輸出是:

'1 3 3'

如果我不使用 is_integer(),這就是我得到的結果:

'1 3.0 3.196xxxxx'

輸出應該是什么:

1 3 3.196

我看不出問題出在哪里。

is_integer是一種在float類型上運行的方法。 你忘記調用它,所以它評估為True因為它返回一個內置的東西(不是什么)。

只需更換

        if r.is_integer:

        if r.is_integer():

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM