Ausgabe von Listenelementen

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.
haeuslermartin
User
Beiträge: 66
Registriert: Sonntag 21. April 2013, 10:12

hallo Pythongemeinde,

folgende Frage:

wie kann ich einzeln und auf Befehl die Elemente einer Liste ( [ 2, 33, 14, 25, usw.] ) der Reihe nach von links nach rechts aufrufen,
ohne das Programm immer neu starten zu müssen?

vielen Dank im Voraus ...


ps.: bin kein Student oder Schüler .. der sichs einfach machen will ...
Benutzeravatar
__blackjack__
User
Beiträge: 13071
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@haeuslermartin: Ich verstehe die Frage nicht. Wie soll denn neu starten des Programms dabei helfen?

Zahlen kann man grundsätzlich nicht aufrufen — was sollte da auch passieren wenn man die 2 aufruft?

Code: Alles auswählen

In [359]: i = 2

In [360]: i()
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Input In [360], in <cell line: 1>()
----> 1 i()

TypeError: 'int' object is not callable
Und falls Du eigentlich eine Schleife über die Elemente einer Liste suchst: Du musst kein Schüler oder Student sein um es Dir zu einfach zu machen. So etwas wird in jedem Grundlagentutorial behandelt. Es gibt eines in der Python-Dokumentation, das sollte man mal durchgearbeitet haben.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
haeuslermartin
User
Beiträge: 66
Registriert: Sonntag 21. April 2013, 10:12

das Problem ist, dass bei einer Schleife alle Elemente der Reihe nach ohne Unterbrechung dargestellt werden, das aber will ich nicht.
Es sollte doch eine Möglichkeit geben, mit einem Befehl /Event/Input - oder was auch immer- die jeweils nächste Zahl aufzurufen ...

natürlich, mit print(liste[0]) bekomme ich das erste Element, dann muß ich das Programm immer wieder neu starten, den Index eintragen, liste[1], liste[2], usw. ...

Super umständlich ...
mein Problem sollte eigentlich jetzt zu verstehen sein ...
__deets__
User
Beiträge: 14523
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wenn du Elemente aus einer Liste nicht mehr haben willst, dann musst du die Liste eben bereinigen von all den schon prozessierten Elementen.
Sirius3
User
Beiträge: 17738
Registriert: Sonntag 21. Oktober 2012, 17:20

Nein, Dein Problem ist noch nicht verständlich. Willst Du nun ein Programm nicht immer wieder neu starten? Oder willst Du beim Neustart eines Programms immer den nächsten Wert?

Denn ich würde bei der selben Antwort bleiben: mit einer Schleife wird immer die nächste Zahl "aufgerufen". Du willst, dass das automatisch passiert, aber doch nicht so automatisch wie mit einer Schleife. Was soll also passieren, dass die nächste Zahl benutzt wird?
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Möchtest du einfach eine Schleife über alle Elemente und innerhalb dieser Schleife ein `input` das dann auf einen Tastendruck wartet, bevor das Programm weiterläuft? In dem Fall würde ich sagen: Warum schreibst du dann nicht einfach so ein Programm? Oder ist es doch ganz etwas anderes?
haeuslermartin
User
Beiträge: 66
Registriert: Sonntag 21. April 2013, 10:12

genau das letztere möchte ich, weiß aber nicht, wie ich das machen soll und bitte um einen Vorschlag ... wenn ich so ein Programm schreiben könnte, würde ich ja nicht um Hilfe bitten ...
haeuslermartin
User
Beiträge: 66
Registriert: Sonntag 21. April 2013, 10:12

__deets__ hat geschrieben: Donnerstag 29. September 2022, 14:11 Wenn du Elemente aus einer Liste nicht mehr haben willst, dann musst du die Liste eben bereinigen von all den schon prozessierten Elementen.
ich habe mit keinem Wort geschrieben, dass ich Elemente der Liste nicht mehr haben will, ich will dass sie ausgedruckt werden, aber eben nicht automatisch, sondern auf Befehl
haeuslermartin
User
Beiträge: 66
Registriert: Sonntag 21. April 2013, 10:12

Sirius3 hat geschrieben: Donnerstag 29. September 2022, 14:20 Nein, Dein Problem ist noch nicht verständlich. Willst Du nun ein Programm nicht immer wieder neu starten? Oder willst Du beim Neustart eines Programms immer den nächsten Wert?

Denn ich würde bei der selben Antwort bleiben: mit einer Schleife wird immer die nächste Zahl "aufgerufen". Du willst, dass das automatisch passiert, aber doch nicht so automatisch wie mit einer Schleife. Was soll also passieren, dass die nächste Zahl benutzt wird?
ein Befehl ...
haeuslermartin
User
Beiträge: 66
Registriert: Sonntag 21. April 2013, 10:12

/me hat geschrieben: Donnerstag 29. September 2022, 16:35 Möchtest du einfach eine Schleife über alle Elemente und innerhalb dieser Schleife ein `input` das dann auf einen Tastendruck wartet, bevor das Programm weiterläuft? In dem Fall würde ich sagen: Warum schreibst du dann nicht einfach so ein Programm? Oder ist es doch ganz etwas anderes?
genau das letztere möchte ich, weiß aber nicht, wie ich das machen soll und bitte um einen Vorschlag ... wenn ich "einfach" so ein Programm schreiben könnte, würde ich ja nicht um Hilfe bitten ...
Sirius3
User
Beiträge: 17738
Registriert: Sonntag 21. Oktober 2012, 17:20

Code: Alles auswählen

for number in [2, 33, 14, 25, ]:
    print(number)
    _ = input("mit Enter weiter")
Benutzeravatar
__blackjack__
User
Beiträge: 13071
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@haeuslermartin: Dann würde ich noch mal auf das Tutorial in der Dokumentation hinweisen wollen, oder vielleicht auch einfach ein anderes Hobby suchen, denn Du hast ja vor drei Jahren schon mal geschrieben, dass Du mit 68 kein Python-Experte mehr werden willst. Wenn die Motivation nicht reicht sich *das* da selbst zu erarbeiten, dann wird das nix mit dem Programmieren.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

haeuslermartin hat geschrieben: Donnerstag 29. September 2022, 18:09 genau das letztere möchte ich, weiß aber nicht, wie ich das machen soll und bitte um einen Vorschlag ... wenn ich "einfach" so ein Programm schreiben könnte, würde ich ja nicht um Hilfe bitten ...
Schau mal, das sind absolute Grundlagen, die du im Tutorial findest. Meiner Meinung nach ist es nicht sinnvoll, hier im Forum einen speziell auf eine Person zugeschnittenen Einsteigerkurs durchzuführen. Dafür gibt es wirklich bessere Möglichkeiten.

Da hier ein Alter von 68 in den Raum gestellt wurde kann ich dazu nur anmerken, dass das kein Grund ist. Ein Freund von mir hat mit 70 angefangen und war nach 2 Tagen um Längen weiter als du jetzt bist(*). Ich möchte dir nicht zu nahe treten, aber bist du wirklich sicher, dass du programmieren lernen willst?


(*) Wir reden hier von einem funktionierenden Einsatz von paramiko!
haeuslermartin
User
Beiträge: 66
Registriert: Sonntag 21. April 2013, 10:12

/me hat geschrieben: Donnerstag 29. September 2022, 21:43
haeuslermartin hat geschrieben: Donnerstag 29. September 2022, 18:09 genau das letztere möchte ich, weiß aber nicht, wie ich das machen soll und bitte um einen Vorschlag ... wenn ich "einfach" so ein Programm schreiben könnte, würde ich ja nicht um Hilfe bitten ...
Schau mal, das sind absolute Grundlagen, die du im Tutorial findest. Meiner Meinung nach ist es nicht sinnvoll, hier im Forum einen speziell auf eine Person zugeschnittenen Einsteigerkurs durchzuführen. Dafür gibt es wirklich bessere Möglichkeiten.

Da hier ein Alter von 68 in den Raum gestellt wurde kann ich dazu nur anmerken, dass das kein Grund ist. Ein Freund von mir hat mit 70 angefangen und war nach 2 Tagen um Längen weiter als du jetzt bist(*). Ich möchte dir nicht zu nahe treten, aber bist du wirklich sicher, dass du programmieren lernen willst?


(*) Wir reden hier von einem funktionierenden Einsatz von paramiko!
ok, das mit den 2 Tagen halte ich für einen Witz, ich habe "python for Kids" durchgearbeitet und das geht schon nicht in zwei Tagen, und dort werden zwar Schleifen beschrieben, aber keineswegs wie man per input die Ergebnisse einzeln bekommt ... ich will auch keinen Unterricht, sondern lediglich einen Tipp (ich hab ja schon einiges versucht mit while und for Schleifen mit "next" aber keine Lösung gefunden. Wenn das hier ein Elfenbeinturm für Experten ist, die sich oberlehrerhaft weigern was von ihrem hochverehrtem Wissen preiszugeben, dann werde ich mich hier auch nicht mehr um Hilfe bemühen ...
Benutzeravatar
Dennis89
User
Beiträge: 1153
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo,

Sirius3 hat dir doch sogar ein Code geschrieben, der das macht was du willst.

Darf man erfahren was der Sinn dahinter ist? Ich kann mir gerade kein Beispiel vorstellen, in dem es (für mich) Sinn macht, das ich immer Enter drücken muss.

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
Benutzeravatar
__blackjack__
User
Beiträge: 13071
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@haeuslermartin: Wenn Du weisst was eine ``for``-Schleife macht, und weisst was `input()` macht, also nicht nur theoretisch, sondern praktisch angewendet, dann brauchst Du keine Extrabeschreibung mehr wie man `input()` in einer ``for``-Schleife benutzt. Das ergibt sich daraus logisch, und das ist kein komplexer Zusammenhang. Den Hinweis wie man das macht hast Du von /me bekommen. Zitat: „Möchtest du einfach eine Schleife über alle Elemente und innerhalb dieser Schleife ein `input` das dann auf einen Tastendruck wartet, bevor das Programm weiterläuft?“ Da steht wörtlich wie das Programm aussehen muss. Das hat nichts mit Experten und Elfenbeiturm zu tun, das sind die Grundlagen, die Du Dir letztendlich selbst erarbeiten musst. Das kann niemand anderes für Dich übernehmen.

Das ist kein Geheimwissen und hier versucht auch keiner das zu verbergen. Es wurde auf das Tutorial in der Python-Dokumentation hingewiesen. Alternativ gibt es noch eine ganze Menge anderer Quellen für den Einstieg. Auch vieles was qualitativ nicht so gut ist, aber die Grundlagen für die Lösung dieses konkreten Problems sollte man auch aus den schlechten Einführungen in die Python-Programmierung entnehmen können.

Das Du was versucht hast und was genau das war können wir nicht wissen wenn Du das nicht zeigst. Wenn Du keinen konkreten Code zeigst, genau beschreibst was passiert, und wie das von Deinen Erwartungen abweicht, und warum Du da was anderes erwartet hast, weiss hier auch keiner wo der Denkfehler liegt. Warum die zitierte Beschreibung von /me nicht in eine Lösung umgesetzt werden kann, ist für mich beispielsweise nicht wirklich nachvollziehbar. Und nicht nur weil das für mich kein Problem ist, sondern weil ich weiss, das Anfänger das umsetzen können, wenn sie ``for`` und `input()` kennen.

@Dennis89: Vielleicht ist die Ausgabe ja nicht nur diese eine Zahl, sondern ein bisschen mehr. Oder der Benutzer soll sich Gedanken machen wie nächste Zahl aussieht. Oder die Zahlen werden als Eingabe für ein anderes Programm berechnet, wo der Benutzer sie dann der Reihe nach eintragen muss, und man kommt halt leicht durcheinander wenn man zwischen zwei Fenstern hin und her schaut und in einem 20 Zahlen angezeigt werden und man sich merken muss welche man schon verwendet hat und welche noch nicht. Da gibt's schon eine Menge Gründe warum man dem Benutzer immer ein Ergebnis auf Anfrage liefern möchte, nicht alles auf einmal ins Terminal kippt.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
haeuslermartin
User
Beiträge: 66
Registriert: Sonntag 21. April 2013, 10:12

__blackjack__ hat geschrieben: Freitag 30. September 2022, 11:32 @haeuslermartin: Wenn Du weisst was eine ``for``-Schleife macht, und weisst was `input()` macht, also nicht nur theoretisch, sondern praktisch angewendet, dann brauchst Du keine Extrabeschreibung mehr wie man `input()` in einer ``for``-Schleife benutzt. Das ergibt sich daraus logisch, und das ist kein komplexer Zusammenhang. Den Hinweis wie man das macht hast Du von /me bekommen. Zitat: „Möchtest du einfach eine Schleife über alle Elemente und innerhalb dieser Schleife ein `input` das dann auf einen Tastendruck wartet, bevor das Programm weiterläuft?“ Da steht wörtlich wie das Programm aussehen muss. Das hat nichts mit Experten und Elfenbeiturm zu tun, das sind die Grundlagen, die Du Dir letztendlich selbst erarbeiten musst. Das kann niemand anderes für Dich übernehmen.

Das ist kein Geheimwissen und hier versucht auch keiner das zu verbergen. Es wurde auf das Tutorial in der Python-Dokumentation hingewiesen. Alternativ gibt es noch eine ganze Menge anderer Quellen für den Einstieg. Auch vieles was qualitativ nicht so gut ist, aber die Grundlagen für die Lösung dieses konkreten Problems sollte man auch aus den schlechten Einführungen in die Python-Programmierung entnehmen können.

Das Du was versucht hast und was genau das war können wir nicht wissen wenn Du das nicht zeigst. Wenn Du keinen konkreten Code zeigst, genau beschreibst was passiert, und wie das von Deinen Erwartungen abweicht, und warum Du da was anderes erwartet hast, weiss hier auch keiner wo der Denkfehler liegt. Warum die zitierte Beschreibung von /me nicht in eine Lösung umgesetzt werden kann, ist für mich beispielsweise nicht wirklich nachvollziehbar. Und nicht nur weil das für mich kein Problem ist, sondern weil ich weiss, das Anfänger das umsetzen können, wenn sie ``for`` und `input()` kennen.

@Dennis89: Vielleicht ist die Ausgabe ja nicht nur diese eine Zahl, sondern ein bisschen mehr. Oder der Benutzer soll sich Gedanken machen wie nächste Zahl aussieht. Oder die Zahlen werden als Eingabe für ein anderes Programm berechnet, wo der Benutzer sie dann der Reihe nach eintragen muss, und man kommt halt leicht durcheinander wenn man zwischen zwei Fenstern hin und her schaut und in einem 20 Zahlen angezeigt werden und man sich merken muss welche man schon verwendet hat und welche noch nicht. Da gibt's schon eine Menge Gründe warum man dem Benutzer immer ein Ergebnis auf Anfrage liefern möchte, nicht alles auf einmal ins Terminal kippt.
bis hierher:
for number in [2, 33, 14, 25, ]:
print(number)
= input("mit Enter weiter")

hatte ich das auch schon, aber das
"_"

hatte ich nicht auf dem Schirm, ein kleines aber wichtiges Detail, ohne dem halt nicht geht und man verzweifelt sucht ... danke trotz allem, Missverständnisse eingeschlossen ...
Sirius3
User
Beiträge: 17738
Registriert: Sonntag 21. Oktober 2012, 17:20

Das _ ist nichts magisches, das ist eine Variable wie jede andere auch, nur hier möchte ich explizit sagen, dass der Rückgabewert, den input liefert, nicht weiter verwendet wird, weil sonst der nächste Leser sich wundert, warum da ein input steht, aber mit der Eingabe dann nichts gemacht wird. Kann man auch weglassen, dann muß man aber das = auch weglassen.
Benutzeravatar
__blackjack__
User
Beiträge: 13071
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@haeuslermartin: Die Zuweisung des Ergebnisses von `input()` ist kein wichtiges Detail. Das kann man weg lassen, was wohl viele Anfänger einfach machen würden, oder sie würden halt einen anderen sinnlosen Namen verwenden, wenn ihnen nicht klar ist, das man nicht gezwungen ist das Ergebnis an einen Namen zu binden wenn man es nicht braucht.

Wenn Du es bis dahin schon hattest, was ich Dir jetzt einfach mal nicht glaube, hättest dazu konkret halt auch eine Frage stellen können. Eben da wo Du nicht weiter kommst.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
haeuslermartin
User
Beiträge: 66
Registriert: Sonntag 21. April 2013, 10:12

Sirius3 hat geschrieben: Freitag 30. September 2022, 12:19 Das _ ist nichts magisches, das ist eine Variable wie jede andere auch, nur hier möchte ich explizit sagen, dass der Rückgabewert, den input liefert, nicht weiter verwendet wird, weil sonst der nächste Leser sich wundert, warum da ein input steht, aber mit der Eingabe dann nichts gemacht wird. Kann man auch weglassen, dann muß man aber das = auch weglassen.
der Hintergrund ist folgender:

ich habe eine Reihe von tatsächlich in der Spielbank gefallener Roulettezahlen, - keine vom Zufallsgenerator erzeugten. Jetzt will ich damit Roulette spielen, dafür darf ich aber das jeweils nächste Ergebnis nicht kennen,
mit dem input rufe ich die nächste Zahl auf ...
Antworten