Pruefziffernrechner

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
BlackJack

Beitragvon BlackJack » Montag 18. Februar 2008, 16:18

Und wir und Dein Lehrer hätten halt lieber eine Lösung von Dir, die Du verstehst. ;-)
nightm4r3^
User
Beiträge: 83
Registriert: Montag 11. Februar 2008, 15:43
Kontaktdaten:

Beitragvon nightm4r3^ » Donnerstag 21. Februar 2008, 13:32

ja ne ist klar. ich werd dem auch sicher kein programm geben das ich nicht selber verstehe.

ich will einfach nur wissen wie ihr sowas lösen würdet
Benutzeravatar
keppla
User
Beiträge: 483
Registriert: Montag 31. Oktober 2005, 00:12

Beitragvon keppla » Donnerstag 21. Februar 2008, 13:53

nightm4r3^ hat geschrieben:ja ne ist klar. ich werd dem auch sicher kein programm geben das ich nicht selber verstehe.

optimal wäre natürlich, wenn du ihm ein Programm geben würdest, was du selber geschrieben hast.

Wie "wir" es lösen würden, hat blackjack dir gezeigt.
Wie du es lösen würdest, können wir dir nicht sagen.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Beitragvon numerix » Donnerstag 21. Februar 2008, 15:21

Sieht dein Quelltext immer noch so aus?

Code: Alles auswählen

#Definition der Quersumme:
def Quersumme(a):
    quersumme=sum([int(p) for p in str(a)])
    print quersumme

#Definition der Prüfziffer
def pruefziffer(a):
    Liste1=map(int, str(a))
    Listeungerade=[]
    i=len(Liste1)
    for n in range (0,i):
        if Liste1[n]%2==0:
            quersumme=Quersumme(Liste1[n]*2)
            print quersumme


Die Berechnung der Quersumme funktioniert ja schonmal. Aber du solltest dir erst einmal die Mühe machen, etwas aufzuräumen, die Bezeichner geschickter und gemäß üblicher Konvention zu benennen (Funktionen und Variablen klein anfangen):

    Eine zusätzliche Variable in der Quersummenfunktion brauchst du nicht. Statt einer Ausgabe auf den Bildschirm wäre die Rückgabe wohl sinnvoll. Darauf hat Leonidas schon hingewiesen.
    Wenn du beim Erzeugen der Liste die Reihenfolge der Ziffern gleich umdrehst, machst du dir den Rest einfacher. Du kannst dann von vorne jedes zweite Listenelement behandeln. Wenn du bei range() bleiben willst, dann kannst du die Schrittweite als dritten Parameter ja gleich angeben und diese Elemente zunächst nur verdoppeln.
    Dann läufst du einmal durch Liste und bildet von jedem Element die Quersummme, danach dann die Summe aller Listenelemente.
    Wie du die Differenz zum nächsten Vielfachen von Zehn ermittelst, kannst du erstmal selbst überlegen. Das fehlt in deinem Code noch.

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]