[英]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.