2016-02-07 35 views
-2

我正在處理此Python代碼以將華氏轉換爲攝氏溫度,以及第二個將攝氏溫度轉換爲華氏溫度的代碼。我用相同的方式編寫每個代碼,使用(if/else)但每當我嘗試使第一個條件成立時。例如,當溫度F = -400時,我得到一個NameError: name 'C' is not defined錯誤。NameError:名稱'C'未定義'錯誤轉換溫度

我試着改變了C的行位置,使它在最後一行打印行之前運行。但仍然沒有運氣。將C轉換爲F的第二個代碼部分在沒有此錯誤的情況下運行。我試着在最後一行打印後放置C的公式,但仍然出現相同的錯誤。

這是我可能在第一部分缺少的東西,可能會阻止我使第一個條件成立嗎?

我運行的Python 2.7.10和Mac OS X埃爾卡皮坦使用終端(10.11)

轉換到華氏攝氏度:

F = int(raw_input("Enter Temperature In Fahrenheit:")) 

if F >= (-459.67): 

    print "Temperature in absolute zero cannot be achieved" 

else: 

    C = F - 32 * (0.555556) 
print "The temperature is %.1f" 'C' % C 

攝氏轉換到華氏:

C = int(raw_input("Enter Temperature In Celsius:")) 

if C <= (-273.15): 

    print "Temperature in absolute zero cannot be achieved" 

else:               

    print "The temperature is %.1f" 'F' % F     
F = C * (1.8) + 32 
+5

'如果F> = -459.67'那麼'C'沒有被定義。 –

+0

當給出錯誤的輸入時,您可能會引發錯誤。例如:'增加ValueError(「絕對零度的溫度無法達到」「)) – Evert

+0

注意1 /你轉換爲一個整數'F = int(...',然而你可以與浮點值進行比較下一行,2 /你比較華氏溫度值是否高於* -459.67以判斷輸入值是不正確的(但是當比較C <= -273.15時,這樣做是正確的)(不,我不知道你爲什麼這麼想) – Evert

回答

0

正如人們所說,有很多錯誤。一種解決方案是:

F = float(raw_input("Enter Temperature In Fahrenheit:")) 
if F <= (-459.67): 
    print "Temperature in absolute zero cannot be achieved" 
else: 
    C = F - 32 * (0.555556) 
    print "The temperature is %.1f" 'C' % C 

# ---------------------------------------------------------- 

C = float(raw_input("Enter Temperature In Celsius:")) 
if C <= (-273.15): 
    print "Temperature in absolute zero cannot be achieved" 
else: 
    F = C * (1.8) + 32 
    print "The temperature is %.1f" 'F' % F 
+1

謝謝!用int替換float幫助。我也在F後添加C變量,我不再看到錯誤。 –