我正在做華氏四捨五入整數批量轉換爲攝氏(是的,對於codeabbey.com),我花了幾個小時就陷入了一些看起來應該流暢運行的東西。具體來說,我的結果都是零。因此在for
循環中的某處,可能在j
和k
的分配中,數學正在崩潰。我一遍又一遍地看了一遍。爲什麼我在結果中得到零值?爲什麼我所有的結果都是0?
fahrenheit = raw_input().split() # Dump copy-and-pasted values into a list.
iter = int(fahrenheit.pop(0)) # Remove the first value and use it as a counter.
celsius = [] # Make an empty list for results.
x = 0 # Index counter
for i in fahrenheit:
j = (int(i)-32) * (5.0/9)
k = (int(i)-32) * (5/9)
if float(j) == k:
celsius.append(j)
elif j > 0: # For positive results
if (j - k) >= 0.5: # If integer value needs +1 to round up.
celsius.append(k+1)
else:
celsius.append(k)
elif j < 0: # For negative results
if (k - j) >= 0.5:
celsius.append(k+1) # If integer values needs +1 to bring it closer to 0.
else:
celsius.append(k)
else:
celsius.append(k) # If the result is 0.
print ' '.join(celsius)
該奇怪設置的數據調用格式。數據中的第一個數字不是要測試的溫度。所有其他人都是。所以5 80 -3 32 212 71
要求五個計算:80,-3,32,212和71轉換爲攝氏。
整數除法:'5/9 == 0' –
...... D'哦!我不敢相信我看了那麼久,從未意識到這一點。感謝您指出我! – thektulu7
您可以通過刪除「5/9」附近的括號來獲得正確的結果。沒有它們,乘以5就會在分割之前發生。 – Blckknght