2017-02-15 1 views
-1

Ich versuche nur, ein etwas komplexeres Temperaturumwandlungsprogramm als ich als Hausaufgabe für die Praxis mit einigen der Konzepte, die wir im Unterricht verwenden, zu erstellen im Moment, und ich laufe auf einen Fehler, den ich nicht kenne. Leider haben die Suchanfragen, die ich ausgeführt habe, verschiedene Beispiele von if/if ... else-Anweisungen hervorgebracht, aber in viel komplexeren Umständen, und ich konnte die Antwort auf dieses spezielle Problem nicht finden. Ich bin neu in Python, habe aber etwas Erfahrung mit grundlegendem bis mittlerem Javascript, also sind einige Dinge ähnlich wie das, was ich gesehen habe. Der Fehler tritt nicht auf, wenn Option 1 ausgewählt, eingegeben und die Konvertierung ausgeführt wird. Es passiert nur, wenn Option 2 ausgewählt ist und dann die Konvertierung stattfinden soll. Mein Code/Ausgabe sind wie folgt:Basteln mit if/if .. else Anweisungen und in einen Fehler

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') 

der Fehler Ich erhalte, wie ich während der Umwandlungsschritt glauben. Dies ist die Ausgabe:

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

Verkettung ist keine Multiplikation in Python. '(farenTemp - 32) (5)' versucht '(farenTemp - 32) 'als Funktion zu verwenden. – user2357112

+0

Ah, ich verstehe. Vielen Dank. – JWK3986

Antwort

2

Multiplikation in Python funktioniert nicht in Klammern.

ersetzen

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

Mit

celsiusTemp = (farenTemp - 32)*5/9

+0

Danke, ich sehe, was Sie beide sagen, ich wusste nicht, dass das eine andere Methode zur Verkettung war, ich dachte, ich würde Reihenfolge der Operationen angeben. Danke noch einmal. – JWK3986

+0

@ JWK3986 Es handelt nicht wirklich als "Verkettung", sondern als "Call-Operator". –

+0

Bekannt. Danke noch einmal! – JWK3986

0

Ihre Fehler in der Leitung celsiusTemp = (farenTemp - 32)(5)/9 ist, dass Sie die Multiplikationszeichen weggelassen: celsiusTemp = (farenTemp - 32)*5/9. Wenn nicht Python denkt, dass (farenTemp - 32) ist ein callable. Gute Erklärung in diesem Link.