Aufsummierung durch verschachtelte Schleife

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.
Antworten
karo
User
Beiträge: 3
Registriert: Dienstag 10. April 2007, 11:57

Hallo!
An sich traue ich mich hier kaum reinzuschreiben nachdem ich mich hier umgeschaut habe um eine Lösung für mein Problem zu finden, denn meine Frage ist nicht ganz auf dem niveau von den posts hier. aber ich habe auch schon in der Bibliothek in ein paar Pythonbüchern rumgesucht und rumprobiert, aber ich kriege es einfach nicht hin.
Ich schreibe am Donnerstag meine Wirtschaftsinformatikklausur und in einer der Aufgaben an der scheinbar sehr viel in der letzten klausur gescheitert sind und die wir uns unbedingt nochmal durch den kopf gehen lassen sollten, erhält man die Liste a=[[1,4,3,5],[3,4,3,6],[1,7,5,8]]. Nun soll man diese Zahlen mit hilfe einer oder mehreren Schleifen aufsummieren und nacher davon den Durchschnitt errechnen. Als tipp hab ich schon rausgekreigt, dass das mit verschachtelten schleifen passieren soll, aber so ganz klappt das nicht.
Mein Anfang war:

Code: Alles auswählen

a=[[1,4,3,5],[3,4,3,6],[1,7,5,8]]
Summe=0
for x in a[0]:  <--dachte eigentlich nur a, aber das geht irgendwie nicht
    Summe=Summe+x
print Summe
tjoa, da kommt nunmal erstmal nur die summe der ersten klammer raus
dann hab ich folgendes probiert

Code: Alles auswählen

a=[[1,4,3,5],[3,4,3,6],[1,7,5,8]]
Summe=0
for x in a[1,4,3,5]:
     Summe=Summe+x
     for x in [3,4,3,6]:
             Summe=Summe+x
print Summe
aber da kommt dann irgendwie 77 raus.. dachte eigentlich das ich das so fortführen könnte, aber scheinbar ist das auch falsch :(.
Könnte mir da bitte einer irgendwie helfen, wäre wirklich sehr dankbar!!
Viele Grüße,
Karo
karo
User
Beiträge: 3
Registriert: Dienstag 10. April 2007, 11:57

^^hmmm, eigentlich waren da jetzt auch einrückungen aber die sind jetzt leider nicht mehr da
..ahh, jetzt..
BlackJack

Bei normalem Text klappt das nicht mit der Einrückung, dazu muss man ``code``-Tags verwenden. Ich habe das beim ersten Beitrag mal nachgeholt.

Ein Tip: Versuch nochmal das was im ersten Beispiel im Kommentar steht, also die äussere Schleife nur über `a` und in den Schleifenkörper schreibst Du anstelle der Addition einfach mal ein ``print`` um zu sehen was `x` in jedem Durchlauf der Schleife ist. Dann sollte der nächste Schritt klarer sein.
Mad-Marty
User
Beiträge: 317
Registriert: Mittwoch 18. Januar 2006, 19:46

Probiers mal damit.
Fehlt allerdings ein check ob in der liste wirklich sub-iterables sind.

Code: Alles auswählen

>>> summe = 0
>>> i = 0
>>> for x in a:
... 	for y in x:
... 		summe += y
... 		i += 1
... 		
>>> summe / i
4
>>> summe
50
>>> i
12
>>> summe / float(i)
4.166666666666667
N317V
User
Beiträge: 504
Registriert: Freitag 8. April 2005, 13:23
Wohnort: München

Fertige Lösungen sind immer tolle Hilfen. Da kommt dann auch keiner auf die Idee, dass man hier alles vorgekaut bekommt.

SCNR :-/
Es gibt für alles eine rationale Erklärung.
Außerdem gibt es eine irrationale.

Wie man Fragen richtig stellt
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

naja, bei solchen Kleinigkeiten finde ich es nichtmal so sehr schlimm, eine "Komplettloesung" anzubieten...

Aber wichtig ist ja auch, dass die Threadschreiberin daraus auch lernt! Wer wirklich lernen will, wird sich nicht nur auf die fertige Loesung stuetzen, sondern auch Sachen ausprobieren, wie zB BlackJack sie vorgeschlagen hat.

MfG
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
N317V
User
Beiträge: 504
Registriert: Freitag 8. April 2005, 13:23
Wohnort: München

Ansichtssache: Du nennst es Kleinigkeiten, ich würde es eher als Grundlagen bezeichnen.
Es gibt für alles eine rationale Erklärung.
Außerdem gibt es eine irrationale.

Wie man Fragen richtig stellt
Andy
User
Beiträge: 196
Registriert: Sonntag 1. Januar 2006, 20:12
Wohnort: aus dem hohen Norden....

nkoehring hat geschrieben:Aber wichtig ist ja auch, dass die Threadschreiberin daraus auch lernt! Wer wirklich lernen will, wird sich nicht nur auf die fertige Loesung stuetzen, sondern auch Sachen ausprobieren, wie zB BlackJack sie vorgeschlagen hat.

FACK!

Wer sagt denn, dass man aus fertigen Lösungen nicht lernen kann?
Auch dies kann ein anderer Lösungsweg sein aus dem man noch was lernen kann.:wink:
N317V
User
Beiträge: 504
Registriert: Freitag 8. April 2005, 13:23
Wohnort: München

Andy hat geschrieben:Wer sagt denn, dass man aus fertigen Lösungen nicht lernen kann?
Auch dies kann ein anderer Lösungsweg sein aus dem man noch was lernen kann.:wink:
Ist doch Haarspalterei. Black-Jacks Tipp war perfekt und ausreichend. Meine Meinung.
Es gibt für alles eine rationale Erklärung.
Außerdem gibt es eine irrationale.

Wie man Fragen richtig stellt
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

Gut, dann hat ja nun jeder seine Meinung dargelegt... außer der Threadschreiberin vielleicht.
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hi N317V!

Willst du dich prügeln? Ärger machen? Kein Sex? Was soll das?

Mach bitte aus einer Mücke keinen Sturmangriff. ;-)

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

N317V hat geschrieben:Ist doch Haarspalterei. Black-Jacks Tipp war perfekt und ausreichend. Meine Meinung.
Um ehrlich zu sein, finde ich das eigentlich auch. Und wenn die Threadstarterin ein Problem gehabt hätte hätte man auch noch weitere Tipps geben können. Ich habe auch überlegt, eine komplette Lösung zu posten, habe mich aber dagegen entschieden.

grüße,
Leonidas (zu müde zum Prügeln heute - ausnahmsweise :P)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Leonidas hat geschrieben:zu müde zum Prügeln heute - ausnahmsweise
Hi Leonidas!

OK! Du wolltest es so. Morgen Mittag -- beim letzten Glockenschlag -- auf der Zugspitze -- Monitor-Weitwurf, bis einer von uns den Laptop abgibt! :mrgreen: :wink:

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
karo
User
Beiträge: 3
Registriert: Dienstag 10. April 2007, 11:57

Hallo Leute!
Wusste garnicht, dass ich hier solch eine Diskussion ausgelöst hab :oops: ich konnte leider nicht eher schreiben da ich heute einen ganztägigen workshop hatte...
also erstmal DANKE sowohl für den Tipp als auch für den lösungsweg!!
Ich habe gestern auch Black Jacks Tipp noch ausprobiert und rumprobiert, aber ehrlich gesagt bin ich nicht auf die richtige Idee gekommen. Hätte also jetzt vermutlich nochmal gefragt...
Aber natürlich bin ich auch dankbar dass der lösungsweg hier bereits gepostet ist, da ich halt heute den ganzen tag keine zeit hatte und nun so mir das noch (einigermaßen in ruhe) genauer anschaun (und verstehen) kann.
Also nochmals vielen Danke!!
Schönen Gruß,
Karo
N317V
User
Beiträge: 504
Registriert: Freitag 8. April 2005, 13:23
Wohnort: München

gerold hat geschrieben:Hi N317V!

Willst du dich prügeln? Ärger machen? Kein Sex? Was soll das?

Mach bitte aus einer Mücke keinen Sturmangriff. ;-)

mfg
Gerold
:-)
Sturmangriff :shock:
Ich wollte nur auf meine vielleicht manchmal etwas raubeinige Art dafür sensibilisieren, dass man sich so nur zum Trollmagneten macht. Offen gesagt fällt mir gerade bei Dir, Gerold, oft auf, dass Du auf eine Problemstellung gleich ein ganzes Script ablieferst. Das ist selbstverständlich super nett und engagiert und hilftbereit und zeigt, wieviel Spaß Du bei Python hast und wieviel Sachkenntnis. Ohne, dass ich mich prügeln will, aber ich frage mich schon manchmal ob das nicht übers Ziel hinaus geschossen ist. Ich persönlich lese das Script dann oft nicht mehr und merke mir einfach nur, dass es sowas hier gibt, falls ichs mal brauche. Lernen tu ich dabei aber nichts. So wie ich diese Community kenne ist es normalerweise schon OK solche Gedanken öffentlich zu äußern. (Als ob mich das abhalten könnte :lol: ) Also bitte nicht schlagen :wink: und nix für ungut.
Es gibt für alles eine rationale Erklärung.
Außerdem gibt es eine irrationale.

Wie man Fragen richtig stellt
Andy
User
Beiträge: 196
Registriert: Sonntag 1. Januar 2006, 20:12
Wohnort: aus dem hohen Norden....

Naja, dem stimm ich ja teilweise zu. Hier war es jedoch so, das karo von heut auf morgen Hilfe brauchte. Oder sollen wir nachher schuld sein, wenn die Klausur wieder schief gelaufen ist? :mrgreen:
karo hat geschrieben:Ich schreibe am Donnerstag meine Wirtschaftsinformatikklausur und in einer der Aufgaben an der scheinbar sehr viel in der letzten klausur gescheitert sind
Ich selbst habe nichts mit Informatik am Hut. Eher mit Office. :P Auch wenn ich inzwischen nicht mehr so der Anfänger schlecht hin bin, hilft es mir enorm, wenn zu einer Einsteigersprache wie Python es sein kann, jemand mir nach etlichen Versuchen seinen Lösungsweg aufzeigen kann.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

N317V hat geschrieben:Offen gesagt fällt mir gerade bei Dir, Gerold, oft auf, dass Du auf eine Problemstellung gleich ein ganzes Script ablieferst.
Hi N317V!

Ich bin der Praktiker. Ich brauche Codebeispiele und wenn ich schon etwas ausprobiere bevor ich antworte, dann kann ich den Code, den ich mit ausprobieren schon produziert habe, ja auch gleich mitliefern. Das kann anderen Praktikern helfen. Ich bin kein Theoretiker. Für die abstrakten Antworten sind andere zuständig. ;-) So ergänzen wir uns gegenseitig.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Antworten