while-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.
Artur
User
Beiträge: 47
Registriert: Freitag 21. Oktober 2011, 10:55

Tag liebe com

Ich muss eine Aufgabe mit Python machen aber ich verstehe nicht, was genau verlangt wird:

Erzeugen Sie mit Hilfe einer while-Schleife eine Liste mit 10 Zahlen und geben Sie
nach jeder Eingabe die Liste aus. Brechen Sie die while-Schleife ab, wenn die Liste
vollständig ist.

Versteht jemand was ich da jetzt machen soll? Muss ich eine while-Schleife machen, die 10 Werte ausgibt und
nach jedem Wert nochmal die gesamte Liste ausgibt? :K
deets

Wenn das die wirklich Formulierung ist, dann ist sie ziemlich schlecht.

Ich wuerde das so interpretieren:

- lesen sie innerhalb einer While-Schleife eingegebene Zahlen in eine Liste ein
- geben sie den Inhalt der Liste nach jeder verarbeiteten Eingabe aus
- brechen sie die While-Schleife ab, wenn die Liste eine Laenge von 10 Elementen hat
- geben sie nochmals die gesamte Liste aus

Auch wenn der letzte Puntk ziemlich redundant ist...

HTH
Artur
User
Beiträge: 47
Registriert: Freitag 21. Oktober 2011, 10:55

Das einzige, was wir bisher mit einer while-Schleife gemacht haben war ein kurzer Countdown, wonach ein String ausgegeben wurde. Wie erstelle ich jetzt eine Liste mithilfe einer While-Schleife und wie gebe ich sie nach jeder Eingabe neu aus? Wäre froh wenn mir jemand dabei helfen könnte.
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

Dann schau' Dir doch den Code vom Countdown einmal an und versuche, davon die Aufgabe abzuleiten...

Falls Du damit nicht weiterkommst, kannst Du ja mal Deinen Versuch hier posten...

mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
BlackJack

@Artur: Dabei kann man echt nicht helfen ohne Dir die Lösung zu geben, was aber keine wirkliche Hilfe wäre. Wenn Du verstanden hast wie Listen funktionieren und was eine ``while``-Schleife macht, dann sollte das eigentlich auch kein Problem sein.
Artur
User
Beiträge: 47
Registriert: Freitag 21. Oktober 2011, 10:55

Code: Alles auswählen

counter=0
while counter <=10:
    print counter, "\n"
    counter=counter+1
print "\nDie while-Schleife ist beendet"
Jetzt wird in der Ausgabe von 0 bis 9 gezählt aber ist das überhaupt eine "Liste" ? Ich bekomme eine Liste oder ein Tupel nicht runtergezählt. Wie gesagt, so genau haben wir Listen- und Tupelbefehle nicht bearbeitet und es ist schwer Antworten auf so spezielle Fragen im Internet zu finden. Ich weiß wirklich gar nicht was ich machen soll. Eine Lösung würde mir helfen, da ich dann mit der darauf basierenden nächsten Aufgabe fortfahren kann. Ich mache mir echt jede Vorlesung Notizen und so Sachen kamen einfach noch nicht dran.
Zuletzt geändert von Anonymous am Montag 14. November 2011, 17:20, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Code-Tags gesetzt.
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

Für den Anfang ist es vielleicht nicht verkehrt eine Liste zu erstellen.
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Artur
User
Beiträge: 47
Registriert: Freitag 21. Oktober 2011, 10:55

Code: Alles auswählen

L=[0,1,2,3,4,5,6,7,8,9]
while L<=[9]:
    print L, "\n"
    L
print "\nDie while-Schleife ist beendet"
Ja, gut. Nun habe ich eine Liste. Die Schleife scheint im Moment kein Ende zu haben. Sie hält nicht an. Die einzelnen Elemente der Liste werden gar nicht gezählt. Wie sage ich der Schleife denn, sie soll meine Liste zählen?
BlackJack

@Artur: In dem Quelltext mit dem Countdown ist keine Liste enthalten. Also müsstest Du lernen was eine Liste ist, und was man damit alles anstellen kann. Das steht zum Beispiel im Tutorial in der Python-Dokumentation und der Dokumentation zu dem Datentyp. Also lesen, ausprobieren, verstehen. Das musst Du schon selber tun, das kann niemand anderes für Dich erledigen.

Beschreibe doch mal in Worten 1. Was ``L<=[9]`` bedeutet, und 2. was Du eigentlich prüfen möchtest.

Wie man die Anzahl von Elementen in einer Liste ermittelt lernt man zum Beispiel im oben genannten Tutorial.

Bitte setz doch Deine Quelltexte in die entsprechenden Tags, damit ich das nicht immer machen muss. ;-)
Artur
User
Beiträge: 47
Registriert: Freitag 21. Oktober 2011, 10:55

Sry, dass ich mich so lückenhaft ausdrücke. Ich versuche folgende Aufgabe zu lösen:

Erzeugen Sie mit Hilfe einer while-Schleife eine Liste mit 10 Zahlen und geben Sie
nach jeder Eingabe die Liste aus. Brechen Sie die while-Schleife ab, wenn die Liste
vollständig ist.
- Fügen Sie an erster Stelle der Liste den Wert 500 hinzu und geben Sie die Liste
aus.
- Geben Sie die Länge der Liste, den Min. und den Max.wert aus.
- Sortieren Sie die Listenelemente und geben Sie die Liste aus.

Da versuche ich den ersten Teil zu machen. Mit Hilfe einer while-Schleife eine Liste mit 10 Zahlen erzeugen und nach jeder Eingabe die Liste ausgeben.

Was ich weiß: Was eine Liste ist, wie man sie erstellt.
Was ich nicht weiß: Wie man eine Liste per while-Schleife erstellt, wie man so eine Schleife mit einer Liste drin schreibt, wie man sie dann ausgibt.

Welches Python tutorial meinst du? Hier im Forum? Mein Tutorial hilft mir nicht weiter :(
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

Vielleicht hilft, dir ja die Doku weiter, die man per google mittels `python list`, erhält.

http://docs.python.org/tutorial/datastructures.html

Soll heißen, es gibt Methoden auf listen, die Mitunter ganz hilfreich sein können.
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
BlackJack

@Artur: Dazu hatte deets ja schon etwas geschrieben, wie man den ersten Punkt besser formuliert. Eine Schleife wiederholt etwas. Du musst nicht das erstellen der Liste wiederholen, sondern nur den Benutzer wiederholt nach Werten fragen und diese dann in die Liste stecken. Ich weiss nicht wie ich Dir helfen soll ohne Dir genau zu sagen wie es aussehen muss. Das ist nämlich ganz einfach wenn man ``while``-Schleifen verstanden hat. Eine Liste kann man mit ``print`` ausgeben. Das ist vollkommen unabhängig von ``while``.

Ich meine das Tutorial in der Python-Dokumentation. Python hat eine Dokumentation. Und da ist ein Tutorial dabei.
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

Aber mal was anderes. Schreibe dir doch mal in natürlicher Sprache auf, was du machen musst. Also:

Code: Alles auswählen

eine Liste erstellen
500 hinzufügen
solange die Liste nicht 10 Elemente hat:
     ...
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
problembär

Artur hat geschrieben:Erzeugen Sie mit Hilfe einer while-Schleife eine Liste mit 10 Zahlen und geben Sie
nach jeder Eingabe die Liste aus. Brechen Sie die while-Schleife ab, wenn die Liste vollständig ist.
Das ist schon ein bißchen verwirrend: Vielleicht sollen die Zahlen vom Benutzer eingegeben werden?

Ansonsten fände ich, wenn ich genau 10 Elemente haben will,
"for i in range(10): ..." doch viel passender. :roll:

Aber ich erinnere mich dunkel, es gab komische Lehrer, die ihre Aufgabentexte komisch formulierten. :D
Artur
User
Beiträge: 47
Registriert: Freitag 21. Oktober 2011, 10:55

Das ist lustig aber ich habe eine Kopie von einer for-Schleife, die eine Liste runterzählt und nacheinander alle Elemente ausgibt. In der Aufgabe steht aber "while-Schleife", sonst würde ich euch vermutlich gar nicht um Hilfe bitten brauchen :-)
BlackJack

@problembär: „Geben sie nach jeder Eingabe die Liste aus“ klingt sehr danach als sollten die Werte vom Benutzer eingegeben werden. Das hat deets in seiner Umformulierung ja auch angenommen. Dann macht auch sortieren, sowie Mini- und Maximum bestimmen, mehr Sinn als wenn man da immer fest die Werte 0 bis 9, und 500 in der Liste stehen hätte.
Artur
User
Beiträge: 47
Registriert: Freitag 21. Oktober 2011, 10:55

Tut mir echt leid aber das Python Tutorial hat mir nicht viel gebracht. Ich weiß jetzt immer noch so viel wie vorher :-/. Kann mir nicht einfach bitte jemand die Lösung sagen?
BlackJack

Dabei lernst Du aber nichts.
Artur
User
Beiträge: 47
Registriert: Freitag 21. Oktober 2011, 10:55

Wenn ich die Lösung sehe, dann weiß ich wie die Aufgabe bzw. While-Schleifen mit Listen kombinieren funktioniert. Ohne einen Ansatz kann ich gar nichts. Seht mal, das ist die einzige while-Schleife, die wir bisher erstellt haben:

Code: Alles auswählen

import time
counter=0
while counter <=50:
    print counter, "\n"
    time.sleep(1)
    counter=counter+5
print "\nDie while-Schleife ist beendet"
Und daraus soll ich mir die Lösung der Aufgabe herleiten? Sry, ich weiß einfach nicht wie ich die Liste in die while-Schleife bringe. Ich habe es noch nie gemacht und werd es jetzt auch nicht zufällig erraten. Trotzdem danke für den Versuch mir zu helfen :cry:
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

Ich könnte an dieser Stelle wieder einen rant starten...

Aber ich bin mal freundlich. Hier mal ein "Kochrezept" für dich.
  • man nehme eine Liste
  • man füge (`append`e) ihr 500 hinzu
  • gibt nun solange 9 beliebige Elemente dazu
  • überprüft zwischendurch die Würze mittels des `len`genmaßes
Und hier der Anfang:

Code: Alles auswählen

zahlen = []
#oder
zahlen = list()
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Antworten