2017-02-15 135 views
-1

我只是想創建一個稍微複雜一點的溫度轉換程序,而不是我作爲家庭作業練習的一部分,並且在課堂上使用了一些概念此刻,我很快陷入了一個我不熟悉的錯誤。不幸的是,我運行的搜索提出了if/if ... else語句的各種示例,但是在更復雜的情況下,我無法找到這個特定問題的答案。我是Python的新手,但對基本到中級JavaScript有一些經驗,所以有些事情與我所看到的有些相似。選擇選項1,輸入並執行轉換時,不會發生錯誤。只有選擇了選項2,然後轉換纔會發生。我的代碼/輸出如下:修改if/if .. else語句並且遇到錯誤

choice = int(input('Choose your conversion method. Press 1 for Celsius to Farenheit. Press 2 for Farenheit to Celsius.')) 
if choice == 1: 
celsTemp = float(input('Please input degrees in Celsius for conversion')) 
farenTemp = (1.8 * celsTemp) + 32 
print(str(celsTemp) + ' degrees Celsius is equal to: ' + str(farenTemp) + ' degrees Farenheit') 
if choice == 2: 
farenTemp = float(input('Please input degrees in Farenheit for conversion')) 
celsiusTemp = (farenTemp - 32)(5)/9 
print(str(farenTemp) + ' degrees Farenheit is equal to: ' + str(celsiusTemp) + ' degrees Celsius') 

我收到的錯誤是因爲我相信在轉換步驟。這是輸出:

Choose your conversion method.
Press 1 for Celsius to Farenheit.
Press 2 for Farenheit to Celsius.2
Please input degrees in Farenheit for conversion86
Traceback (most recent call last):
File "C:\Users\Jason\Desktop\Python files\test for temp program.py", line 8, in
celsiusTemp = (farenTemp - 32)(5)/9
TypeError: 'float' object is not callable

+1

串聯不是Python中的乘法。 '(farenTemp - 32)(5)'嘗試使用'(farenTemp - 32)'作爲函數。 – user2357112

+0

啊,我明白了。非常感謝你。 – JWK3986

回答

2

Python中的乘法不能用圓括號工作。

更換

celsiusTemp = (farenTemp - 32)(5)/9

隨着

celsiusTemp = (farenTemp - 32)*5/9

+0

謝謝你,我明白你的意思,我沒有意識到這是另一種連接方法,我想指定操作順序。再次感謝。 – JWK3986

+0

@ JWK3986它實際上不是「串聯」,而是「呼叫運營商」。 –

+0

已注意。再次感謝! – JWK3986

0

你的錯誤在該行celsiusTemp = (farenTemp - 32)(5)/9是你省略乘號: celsiusTemp = (farenTemp - 32)*5/9。 如果不是Python認爲(farenTemp - 32)是callable。在這個鏈接中很好的解釋。