2011-07-25, 18:45
  #1
Medlem
Carlozs avatar
Hejsan är ny på programmeringsspråket Python och tänkte skriva ett enkelt program som konverterar om Celsius till Fahrenheit. Lite kul experiment och förhoppningsvis kan jag lära mig mer i Python också.

Har skrivit följande kod:

Kod:
def Celsius2Fahrenheit():
	Celsius = input ("Ange gradantalet i Celsius: ");
	Fahrenheit = (9.0 / 5.0) * Celsius +32
	print "Celsius =", Celsius, " Fahrenheit =", Fahrenheit

Jag får syntax error på följande tecken som är fetmarkerat "Celsius =" varför blir det ena situationstecknet fel och vad ska jag göra för att åtgärda det?

Tack på förhand!

edit: Det är förresten Python 3.2 jag använder.
Citera
2011-07-25, 19:05
  #2
Medlem
Hmm, är det inte
Kod:
print (blablabla)
Citera
2011-07-25, 19:11
  #3
Medlem
DrMegahertzs avatar
Från och med Python 3.0 så är print inte längre ett statement, utan en funktion. Och kräver således paranteser kring listan med argument.

Kod:
def celsius2fahrenheit():
    celsius = input("Ange gradantalet i Celsius: ")
    fahrenheit = (9 / 5) * int(celsius) + 32
    print("Celsius =", celsius, " Fahrenheit =", fahrenheit)
Citera
2011-07-25, 19:16
  #4
Medlem
Carlozs avatar
Citat:
Ursprungligen postat av odd76
Hmm, är det inte
Kod:
print (blablabla)

Funkade lite bättre nu i alla fall. Jag kunde i alla fall köra programmet. Men när jag startar programmet så kommer meningen upp att jag ska skriva in gradantal. När jag har skrivit in ett antal så kommer följande upp:

Kod:
Ange gradantalet i Celsius: 20
Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    Celsius2Fahrenheit()
  File "C:/Users/emil/Documents/Programmering/Celsius2Fahrenheit", line 3, in Celsius2Fahrenheit
    Fahrenheit = (9.0 / 5.0)* Celsius+32
TypeError: can't multiply sequence by non-int of type 'float'

Vad menas med non-in of type 'float' ? Vad ska jag ändra för att min kod ska fungera?
Citera
2011-07-25, 19:26
  #5
Medlem
Carlozs avatar
Citat:
Ursprungligen postat av DrMegahertz
Från och med Python 3.0 så är print inte längre ett statement, utan en funktion. Och kräver således paranteser kring listan med argument.

Kod:
def celsius2fahrenheit():
    celsius = input("Ange gradantalet i Celsius: ")
    fahrenheit = (9 / 5) * int(celsius) + 32
    print("Celsius =", celsius, " Fahrenheit =", fahrenheit)

Aah, tack ! Borde jag egentligen kunnat vid det här laget. Men finns mycket äldre grejer på nätet så jag var helt ute och cyklade där. Nu visar den Syntax error på ett annat ställe: Fahrenheit =" . Vad är fel den här gången ?
Citera
2011-07-25, 19:39
  #6
Medlem
DrMegahertzs avatar
Citat:
Ursprungligen postat av Carloz
Aah, tack ! Borde jag egentligen kunnat vid det här laget. Men finns mycket äldre grejer på nätet så jag var helt ute och cyklade där. Nu visar den Syntax error på ett annat ställe: Fahrenheit =" . Vad är fel den här gången ?

Om det är TypeError som du menar, från ditt tidigare inlägg, så betyder det att Python inte vet hur den ska multiplicera ett flyttal med den sträng som du läst in till variabeln Celsius via input().

Därför måste du konvertera Celsius till ett heltal innan du kan använda det tillsammans med multiplikation av flyttal. Se min post ovan.
Citera
2011-07-25, 19:45
  #7
Medlem
Carlozs avatar
Citat:
Ursprungligen postat av DrMegahertz
Om det är TypeError som du menar, från ditt tidigare inlägg, så betyder det att Python inte vet hur den ska multiplicera ett flyttal med den sträng som du läst in till variabeln Celsius via input().

Därför måste du konvertera Celsius till ett heltal innan du kan använda det tillsammans med multiplikation av flyttal. Se min post ovan.

Tack !

Nu trillade polletten ner Äntligen! Funkar prima. Stort Tack !
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in