Arne Skrevet 15. desember 2007 Skrevet 15. desember 2007 Hei! Her er koden min: class calculator: def plus(x, y): return x + y def minus(x, y): return x - y def dele(x, y): return x / y def gange(x, y): return x * y kalkulator = calculator() print "5 ganger 6 er " + kalkulator.gange(5, 6) + " ." print "5 delt paa 6 er " + kalkulator.dele(5, 6) + " ." print "5 pluss 6 er " + kalkulator.plus(5, 6) + " ." print "5 minus 6 er " + kalkulator.minus(5, 6) + " ." Feilmelding: Traceback (most recent call last): File "printparams.py", line 12, in <module> print "5 ganger 6 er " + kalkulator.gange(5, 6) + " ." TypeError: gange() takes exactly 2 arguments (3 given) Kva er det eg har gjort gale? Det står at eg har gitt tre argument, men eg har jo berre gitt to! Forresten, kjemegod bok, denne Beginning Python, anbefalt til alle som vil lære seg litt om python. LItt treig i starten kanskje, men det kjem seg veldig utover når du lærer om OOP.
8===D Skrevet 15. desember 2007 Skrevet 15. desember 2007 Prøv denne: class calculator: def plus(self, x, y): return x + y def minus(self, x, y): return x - y def dele(self, x, y): return x / y def gange(self, x, y): return x * y kalkulator = calculator() print "5 ganger 6 er " + str(kalkulator.gange(5, 6)) + " ." print "5 delt paa 6 er " + str(kalkulator.dele(5, 6)) + " ." print "5 pluss 6 er " + str(kalkulator.plus(5, 6)) + " ." print "5 minus 6 er " + str(kalkulator.minus(5, 6)) + " ."
8===D Skrevet 15. desember 2007 Skrevet 15. desember 2007 Btw, divisjon er litt rart i python. Deler du et heltall på at annet vil resultatet bli et heltall. 6/4 vil bli 1. Er et eller begge av dem derimot desimaltall vil du få rett svar. 6./4. = 1.5.
Arne Skrevet 15. desember 2007 Forfatter Skrevet 15. desember 2007 Takk skal du ha, B===D, eg gjorde det på denne måten: class calculator: def plus(self, x, y): return x + y def minus(self, x, y): return x - y def dele(self, x, y): return x / y def gange(self, x, y): return x * y kalkulator = calculator() print "5 ganger 6 er", kalkulator.gange(5, 6) print "5 ganger 6 er", kalkulator.gange(5, 6), "." print "5 delt paa 6 er", kalkulator.dele(5.0, 6.0) ,"." print "5 pluss 6 er", kalkulator.plus(5, 6) , "." print "5 minus 6 er" ,kalkulator.minus(5, 6) ,"." Det eg forandra var "self" i metode-argumenta og så brukte eg komma i staden for pluss, for då trur ikjke programmet at eg skal slå saman to strenger, men at eg printar ut to element. Kva er self?
8===D Skrevet 15. desember 2007 Skrevet 15. desember 2007 self er første argument i alle klassemetoder. just the way it is. tilsvarer this i java/c++.
Arne Skrevet 15. desember 2007 Forfatter Skrevet 15. desember 2007 Ja, ser det. Self peikar på variablane som er tilgjenglege for alle metodane i ein klasse. Takk.
genstian Skrevet 18. desember 2007 Skrevet 18. desember 2007 Bare et hint: kanskje du burde bruke float?
nercix Skrevet 21. desember 2007 Skrevet 21. desember 2007 Btw, divisjon er litt rart i python. Deler du et heltall på at annet vil resultatet bli et heltall. 6/4 vil bli 1. Er et eller begge av dem derimot desimaltall vil du få rett svar. 6./4. = 1.5. Er vel ikkje rart? Er jo slik vi vil ha det! int/int = int
Arne Skrevet 21. desember 2007 Forfatter Skrevet 21. desember 2007 Joda, det er heilt greit det, du! Måtte berre vite om det.
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå