Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  8 653
Jobber i Eclipse, men får ikke output på følgende def :S


def earth(radius):
radius = 6371
pi = 3,14
omkrets = 2 * pi * radius
areal = 4 * pi * (radius ** 2)
volum = (4 / 3) * (pi / 3) * (radius ** 3 / 3)
return omkrets, areal, volum

Anyone?:P
Du kan ikke returnere tre verdier på den måten. Du kan bare returnere én verdi.
Kjør funksjonen earth() og skriv ut resultatet, så vil du få output. Legg til "print earth(1)" på slutten
Trådstarter
10 0
Jeg får tre returnerte verdier i QTconsole, men ikke i Eclipse :S
det der ser ut som python-kode, stemmer dette? I så fall: Jo du kan returnere 3 verdier. Python vil da automatisk gjøre det om til et tuple.

Return vil ikke printe noe på skjermen automatisk, så prøv følgende:

print earth(10)
Jeg som surret, du kan selvfølgelig returnere flere verdi.
Hva skjer om kjører python-scriptet gjennom terminal/console?
Trådstarter
10 0
Test that earth runs and generates some output. ... ERROR

TypeError: earth() takes exactly 1 argument (0 given)

Utrolig irriterende
Sist endret av robhau; 29. februar 2012 kl. 14:10.
Sitat av robhau Vis innlegg
Test that earth runs and generates some output. ... ERROR

TypeError: earth() takes exactly 1 argument (0 given)

Utrolig irriterende
Vis hele sitatet...
Det er ikke irriterende, men en helt klar feilmelding. Du må naturlig nok gi funksjonen de argumentene den forventer (i dette tilfellet radius)
Et par ting til,uansett hva du gir som argument til funksjon earth så blir verdien 6371.
Tenk litt over det.
Punktum er bedere for varible pi.

Kode

>>> pi = 3,14
>>> pi
(3, 14)
>>> pi + 2
Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
TypeError: can only concatenate tuple (not "int") to tuple
>>> 3.14 + 2
5.140000000000001