Hallo liebe Community,
ich bin gerade dabei Python zu lernen und schreibe gerade meine ersten Programme.
Dabei bin ich auf ein problem gestossen, wofür ich gerne eure Hilfe in anspruch nehmen würde.
Ich lasse mir über einen Zufallsgenerator für zwei Variablen (A,B) Werte (bis 20) ermitteln, die ich dann weiterverarbeite. Diese Funktion läuft diverse male.
Möchte am ende des Programmes aber wissen, wie oft der Variablen A und B welcher Wert zugeteilt worden sind.
Aktuell habe ich eine IF abfrage nach folgendem Schema auf gebaut.
Wenn A=1, dann addiere die Variable "Zahl 1" +1, wenn Wenn A=2, dann addiere die Variable "Zahl 2" +1; und so weiter.
Anschließend lasse ich mir die Variable Zahl 1, Zahl 2, Zahl 3, und so wieter ausgeben.
Nun habe ich allerdings eine extrem grosse If-Abfrage die es nicht leichter mach den Code zu lesen.
Gibt es hier schlanke möglichkeiten dafür?
Extrem lange If-Abfragen
-
- User
- Beiträge: 510
- Registriert: Mittwoch 13. November 2019, 08:38
Vorschlag: Statt A und B jedes mal einen neuen Wert zuzuweisen, nimmst du Listen und hängst den Zufallswert an. Dann kannst du auch zählen wie oft welche Zahl vor kam.
Aber ich vermute fast, dass den Beispiel nur abstrahiert ist und schließe mich __deets__ Vorschlag an.
Code: Alles auswählen
import random
from collections import Counter
a = [random.randint(0, 20) for _ in range(20)]
print(Counter(a))
- Max07t
- User
- Beiträge: 6
- Registriert: Montag 21. Juni 2021, 15:23
- Wohnort: Frankfurt am Main
- Kontaktdaten:
Hallo,
ich habe eben das Programm so geschrieben, wie ich es schreiben würde. Hierbei habe ich bewusst keine Module (außer das random Modul) verwendet, damit alles nachvollziehbar ist. Außerdem habe ich (fast) jede Zeile kommentiert, damit alles nachvollziehbar ist. Solltest du Fragen haben, dann kannst du jederzeit nachfragen.
~ Liebe Grüße und einen schönen Abend.
ich habe eben das Programm so geschrieben, wie ich es schreiben würde. Hierbei habe ich bewusst keine Module (außer das random Modul) verwendet, damit alles nachvollziehbar ist. Außerdem habe ich (fast) jede Zeile kommentiert, damit alles nachvollziehbar ist. Solltest du Fragen haben, dann kannst du jederzeit nachfragen.
Code: Alles auswählen
import random # Importiert das Modul 'random'
werte_bei_jedem_durchlauf = [] # Definiert eine leere Liste
for durchlauf in range(20): # Führt sich selbst 20 Mal aus
variable_a = random.randint(1, 20) # Weist einen zufälligen Wert der Variable zu
variable_b = random.randint(1, 20) # Weist einen zufälligen Wert der Variable zu
werte_bei_jedem_durchlauf.append({ # Fügt das folgene dict zu der liste hinzu
"durchlauf": durchlauf, # Speichert, welcher Durchlauf gerade ist
"werte": [ # Definiert eine Liste in dem dict
{
"variable_a": variable_a, # Speichert den Wert von 'variable_a' für diesen Durchlauf
"variable_b": variable_b # Speichert den Wert von 'variable_b' für diesen Durchlauf
}
]
}) # Schließt die Klammer der appen()-Funktion
print(werte_bei_jedem_durchlauf)