Seite 1 von 1

Hilfe gesucht bei nem quelltext

Verfasst: Sonntag 23. November 2008, 17:23
von Dorfl
Guten Abend , ich hab nächste woche meine erste Informatik Klausur und hab dafür geübt und ne übungsaufgabe gemacht aber scheine einen fehler drinn zu haben , den ich einfach nicht finde....
Bitte um Hilfe

Code: Alles auswählen

class Rechnung :

    def __init__ (self):
        self.e=0
        self.n=0
        self.zahlvar=0

    def set_werte (self,e,n,zahlvar):
        self.e=e
        self.n=n
        self.zahlvar=zahlvar

    def get_n (self):
        return self.n

    def get_e (self):
        return self.e

    def get_zahlvar (self):
        return self.zahlvar

    def verschluesseln (self):
        self.ergebnis = self.get_zahlvar ()** self.get_e () % self.get_n ()
        
    def get_verschluesseln (self):
        return self.ergebnis

  


if __name__ == "__main__":

    test= Rechnung()
    
    n=raw_input("Gib n: ")
    e=raw_input("Gib e: ")
    zahlvar= raw_input ("Gib Zahl: ")
    test.set_werte (e,n,zahlvar)
    print n,e,zahlvar
    print test.get_n(),test.get_e(),test.get_zahlvar()
    test.verschluesseln ()
    test.get_verschluesseln ()
    print test.get_verschluesseln()
sagt mir immer das ich scheinbar mit strings statt mit Zahlen rechne und unten dir beiden prints habe ich drinn um zu gucken ob soweit alles richtig war...
ja ich hab auch alles eingerückt

Edit (BlackJack): Quelltext in Code-Tags gesetzt.

Re: Hilfe gesucht bei nem quelltext

Verfasst: Sonntag 23. November 2008, 17:33
von sma
Dorfl hat geschrieben:sagt mir immer das ich scheinbar mit strings statt mit Zahlen rechne
Da hat Python ja auch recht. Warum tust du dies? Du musst deine Eingabe-Strings schon explizit in Zahlen umwandeln.

Stefan

Verfasst: Sonntag 23. November 2008, 17:36
von DasIch
Du programmierst Java in Python dass kommt nicht gut. Lass die Klasse weg und nimm eine Funktion. Solltest du wirklich eine Klasse brauchen nimm properties und verwende hör auf triviale setter und getter zu verwenden.

Dein Problem wird dadurch verursacht das raw_input einen String zurückgibt, nimm int(raw_input()).

Verfasst: Sonntag 23. November 2008, 17:37
von Dorfl
ah danke , das is peinlich ^^ wa mir da nicht sicher und hatte es von nem script meines info-lehrers kopiert .... kann ich jetzt vorwerfen das er dort auch das int() vergessen hat XD

aber danke für die schnelle hilfe

@DasIch ich hätte es natürlich anders machen können, aber hatte mit absicht klassen verwendet da ich bis gestern das noch nicht verstanden hatte und jetzt zum verinnerlichen, zudem ist das auch nur nen teil des eigentlichen programmes^^

Verfasst: Sonntag 23. November 2008, 18:04
von BlackJack
@Dorfl: Was willst Du da verinnerlichen? Die Syntax von Klassen? Bei Klassen selbst gehört nämlich auch dazu, zu wissen wann man sie einsetzt. Und das ist hier ganz bestimmt nicht gegeben. Das ist einfach nur eine Funktion, unnötig kompliziert und unübersichtlich implementiert.

Du verbrätst da fast 30 Zeilen *hierfür*:

Code: Alles auswählen

def verschluesseln(e, n, zahl):
    return zahl**e % n

Verfasst: Sonntag 23. November 2008, 18:22
von DasIch
@Dorfl Property hättest du trotzdem verwenden können.