Code wiederholen mit input eingabe?

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
cDCI
User
Beiträge: 6
Registriert: Samstag 9. Januar 2021, 16:48

Also bevor ich meine Frage stelle: Ja, ich habe vorher nach ähnlichen Themen gesucht, aber nichts gefunden, was meine Frage beantwortet hat!
So. Es ist nämlich so, dass ich einen Code habe (ich will ihn jetzt noch nicht direkt reinstellen, ansonsten mach ich es noch) und ich es gerne so hätte, dass, bevor der Code ausgeführt wird, einfach in der Konsole gefragt wird wie oft er ausgeführt werden soll, also dass eben eine Zahl eingegeben werden kann, die dann genommen wird um zu bestimmen wie oft er ausgeführt wird. Keine Ahnung ob man den Text verstehen kann... Danke schon mal im Voraus.
(ich benutzte Python 3.9)
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

du packt den Code in eine for oder while Schleife, fragst vorher, wie oft die Schleife durchlaufen werden soll und setzt den Schleifenzähler entsprechend.

Gruß, noisefloor
Benutzeravatar
Dennis89
User
Beiträge: 1155
Registriert: Freitag 11. Dezember 2020, 15:13

Etwa in diese Richtung, wurde nicht getestet auch ist keine Abfrage drin, ob der Benutzer eine Zahl oder sonst etwas eingegeben hat. Das soll nur eine Möglichkeit darstellen:

Code: Alles auswählen

question = input('Wie oft soll sich der Code wiederholen?')

def main():
    x = 0
    while int(x) < int(question):
        print(f'Ich muss {question} mal das Gleiche machen')
        x += 1

if __name__ == '__main__':
    main()
"When I got the music, I got a place to go" [Rancid, 1993]
Benutzeravatar
pillmuncher
User
Beiträge: 1484
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

@Dennis89: Warum steht die Eingabe außerhalb von main()? Warum wandelst du die Eingabe immer wieder in ein int um, statt nur ein einziges Mal vor der Schleife? Warum wandelst du x, ein int, mittels int() in ein int um? Warum gibst du n mal aus, dass du n mal das Gleiche machen musst? Warum benutzt du keine for-Schleife?
In specifications, Murphy's Law supersedes Ohm's.
Sirius3
User
Beiträge: 17749
Registriert: Sonntag 21. Oktober 2012, 17:20

@Dennis89: Bei question erwarte ich keine Anzahl an Wiederholungen. Und `x` ist auch der falsche Name für eine Ganzzahl. Das ist eher ein Name für eine Kommazahl.

Code: Alles auswählen

def main():
    loops = input('Wie oft soll sich der Code wiederholen?')
    for k in range(int(loops)):
        print(f'Ich muss {loops} mal das Gleiche machen.')

if __name__ == '__main__':
    main()
Benutzeravatar
Dennis89
User
Beiträge: 1155
Registriert: Freitag 11. Dezember 2020, 15:13

Oh, ich habe ehrlich gesagt nicht erwartet, das ich bei einem simplen Beispiel so viele Fehler mache :?

@pillmuncher Deine ersten drei Fragen kann ich dir nicht mit einer sinnvollen Antwort beantworten. Das hätte ich selbst merken müssen und gleich richtig machen.
Die sich wiederholende Ausgabe habe ich gemacht, da ich demonstrieren wollte, dass sich der Code so oft wiederholt, wie in 'input' angegeben. Das war der Wunsch des Themenerstellers, wenn ich das richtig verstanden habe.
Zu deiner letzten Frage, bei der Überlegung wie man das Problem lösen könnte, ist mir als erstes meine Lösung eingefallen. An eine for-Schleife habe ich nicht gedacht.

@Sirius3 Ich sehe ein, das 'question' kein gut überlegter Name ist. 'x' habe ich mir als Variable zum zählen angewöhnt, gerade wenn ich nur etwas versuchen oder demonstrieren will. Dass das ein Namen für eine Kommazahl ist, ist mir neu. Werde ich mir aber für die Zukunft merken.

Vielleicht an dieser Stelle noch was zu mir. Ich bin in meinen Python-Anfängen und versuche hier nicht nur zu helfen, sondern sehe die Fragen auch als kleine Übungsaufgaben für mich. Daher bin ich euch über jede Kritik dankbar. Wenn ich euch aber damit unnötig mehr Arbeit mache, weil meine Beiträge nicht wirklich zur Lösung beitragen, sondern eher verwirren, dann teilt mir das bitte mit und ich bleibe stiller Mitleser.

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
Benutzeravatar
pillmuncher
User
Beiträge: 1484
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

@Dennis89: Bu brauchst dich nicht zu schämen. Bedenke: Ein Experte ist jemand, der in seinem Fachgebiet jeden überhaupt möglichen Fehler mindestens einmal gemacht hat.
In specifications, Murphy's Law supersedes Ohm's.
Benutzeravatar
__blackjack__
User
Beiträge: 13103
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Dennis89: Diese Erwartungen an Namen wie `x` kommen aus der Mathematik und da steht das üblicherweise für eine reelle Zahl. Zum Beispiel bei Funktionsargumenten `f(x)` oder wenn es Teil einer Koordinate `(x, y)` ist. Während `i`, `j`, und `k` üblicherweise für ganze Zahlen/Indices verwendet werden. `n` und `m` stehen auch oft für eine ganze Zahl oder Anzahl.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Benutzeravatar
Dennis89
User
Beiträge: 1155
Registriert: Freitag 11. Dezember 2020, 15:13

pillmuncher hat geschrieben: Samstag 9. Januar 2021, 21:42 @Dennis89: Bu brauchst dich nicht zu schämen. Bedenke: Ein Experte ist jemand, der in seinem Fachgebiet jeden überhaupt möglichen Fehler mindestens einmal gemacht hat.
Da ist was dran, sehr guter Spruch :)

@__blackjack__ Okay wenn man es so betrachtet, dann leuchtet es ein. Werde weiterhin versuchen aussagekräftige Namen zu verwenden.

Danke für die Erklärung, mir war zwar bewusst dass das Informatik-Studium auch stark von Mathematik geprägt ist, aber an die Namensgebung habe ich in diesem Zusammenhang nicht gedacht.

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
cDCI
User
Beiträge: 6
Registriert: Samstag 9. Januar 2021, 16:48

Vielen Dank für die ganzen Rückmeldungen, ich werd mal schauen wie ich das integrieren kann
Antworten