Hallo zusammen, google hilft mir leider nicht weiter deshalb dachte ich mir ich versuche es hier, vielleicht weis jemand die Lösung.
Ich habe folgende Schleif
For var1 in Ausgabe_Text:
If Bedingung 1 == True:
.....
If Bedingung 2 == True:
.....
else:
Ich möchte am Ende ein "Gesamtergebnis" je If-Bedingung ausgeben. Also wie oft war Bedingung 1 in der Liste, wie oft die 2 usw.
Wie stelle ich das an?
For Schleife -> If zählen
- __blackjack__
- User
- Beiträge: 14065
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Namlus: Variable mit 0 initialisieren: ``some_name = 0``. Den Wert um 1 erhöhen: ``some_name += 1``.
Das ist zwar nur Pseudo-Code, aber trotzdem die beiden Hinweise:
1. Namen werden in Python klein_mit_unterstrichen geschrieben. Ausnahmen sind Konstanten (KOMPLETT_GROSS) und Klassennamen (PascalCase).
2. Man vergleicht nicht mit literalen Wahrheitswerten. Da kommt ja entweder das Ergebnis der Bedingung heraus wenn die Wahr ist oder False wenn die Bedingung unwahr ist, also ist der Vergleich überflüssig. Sollte man mal das Gegenteil von einem Wahrheitswert brauchen, dann gibt es dafür ``not``.
Das ist zwar nur Pseudo-Code, aber trotzdem die beiden Hinweise:
1. Namen werden in Python klein_mit_unterstrichen geschrieben. Ausnahmen sind Konstanten (KOMPLETT_GROSS) und Klassennamen (PascalCase).
2. Man vergleicht nicht mit literalen Wahrheitswerten. Da kommt ja entweder das Ergebnis der Bedingung heraus wenn die Wahr ist oder False wenn die Bedingung unwahr ist, also ist der Vergleich überflüssig. Sollte man mal das Gegenteil von einem Wahrheitswert brauchen, dann gibt es dafür ``not``.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Hallo,
vielen Dank für die Antwort. Ja ich habe letzte Woche mit Python begonnen (und das bis gestern noch falsch geschrieben Phyton....) und murksle mich damit durch.
Kleinschreiben.... ja ich weis, daran muss ich mich noch gewöhnen...
Ja das verstehe ich so weit. Nur wie bekomme ich die Variable aus der For Schleife wieder raus:
some_name = 0
For var1 in Ausgabe_Text:
-> If Bedingung 1 == True:
-> .....
-> some_name += 1
-> If Bedingung 2 == True:
-> .....
-> else:
print(str(some_name))
das habe ich so schon versucht, das funktioniert aber nicht.
vielen Dank für die Antwort. Ja ich habe letzte Woche mit Python begonnen (und das bis gestern noch falsch geschrieben Phyton....) und murksle mich damit durch.
Kleinschreiben.... ja ich weis, daran muss ich mich noch gewöhnen...

Ja das verstehe ich so weit. Nur wie bekomme ich die Variable aus der For Schleife wieder raus:
some_name = 0
For var1 in Ausgabe_Text:
-> If Bedingung 1 == True:
-> .....
-> some_name += 1
-> If Bedingung 2 == True:
-> .....
-> else:
print(str(some_name))
das habe ich so schon versucht, das funktioniert aber nicht.
Doch, tut es.
Code: Alles auswählen
some_name = 0
for i in range(10):
if i %2:
some_name += 1
print(some_name)
Der Zaubercode "some_name += 1" ist auch nur eine Abkürzung für "some_name = some_name + 1" also insofern warst du schon halb richtig.. 

MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
Funktionen muß man auch aufrufen. Und alles was sie brauchen, bekommen sie über ihre Argumente, das Ergebnis ist der Rückgabewert:
Code: Alles auswählen
def funktion(ausfuehrung):
ergebnis = 0
if ausfuehrung == "Fehler":
ergebnis += 1
...
return ergebnis
some_name = funktion("Fehler")
print(some_name)
@Namlus: Bitte poste Code in Code-Tags. Code-Tags werden eingefügt, indem man den </>-Button im "vollständigen Editor" drückt. Zwischen die Tags gehört dein Code.
Es ist dir sicher schon aufgefallen, dass sonst die Einrückungen verloren gehen und dass der Code bei anderen, die hier posten, anders aussieht?
Du solltest ein Python-Tutorial durcharbeiten.
Ich weiß, dass du dich in dem anderen Thread dafür ausgesprochen hast, dass du "quick&dirty"-Lösungen willst, aber das wird nicht funktionieren.
In einem Tutorial wirst du grundlegende Dinge lernen. Etwa wie Funktionen funktionieren und was es für Datenstrukturen gibt und wie man mit ihnen arbeitet.
Und du wirst etwas über die Sichtbarkeit von Variablen lernen. Denn das, was du machen willst funktioniert durchaus. Aber jed Funktion hat einen eigenen Namensraum.
Für Funktionen gilt: Alles was eine Funktion braucht, bekommt sie als Parameter übergeben. Ihr ergebnis gibt sie mit return zurück.
Weiter gilt: Auf Modulebene (also ohne Einrückung) stehen ausschließlich die Importe, die Definition von Konstanten (die heißen so, weil sie sich _nie_ ändern, die Definition von Klassen und Funktionen und die berühmt Weiche um eine Funktion namens "main" aufzurufen. In "main" beginnt dein Programm:
Dann kommst du erst gar nicht auf die Idee, globale Variablen zu verwenden.
Es ist dir sicher schon aufgefallen, dass sonst die Einrückungen verloren gehen und dass der Code bei anderen, die hier posten, anders aussieht?
Du solltest ein Python-Tutorial durcharbeiten.
Ich weiß, dass du dich in dem anderen Thread dafür ausgesprochen hast, dass du "quick&dirty"-Lösungen willst, aber das wird nicht funktionieren.
In einem Tutorial wirst du grundlegende Dinge lernen. Etwa wie Funktionen funktionieren und was es für Datenstrukturen gibt und wie man mit ihnen arbeitet.
Und du wirst etwas über die Sichtbarkeit von Variablen lernen. Denn das, was du machen willst funktioniert durchaus. Aber jed Funktion hat einen eigenen Namensraum.
Für Funktionen gilt: Alles was eine Funktion braucht, bekommt sie als Parameter übergeben. Ihr ergebnis gibt sie mit return zurück.
Weiter gilt: Auf Modulebene (also ohne Einrückung) stehen ausschließlich die Importe, die Definition von Konstanten (die heißen so, weil sie sich _nie_ ändern, die Definition von Klassen und Funktionen und die berühmt Weiche um eine Funktion namens "main" aufzurufen. In "main" beginnt dein Programm:
Code: Alles auswählen
def main():
# das Programm beginnt hier
if __name__ == "__main__":
main()
Vielen Dank.sparrow hat geschrieben: Samstag 7. Januar 2023, 21:17 @Namlus: Bitte poste Code in Code-Tags. Code-Tags werden eingefügt, indem man den </>-Button im "vollständigen Editor" drückt. Zwischen die Tags gehört dein Code.
Es ist dir sicher schon aufgefallen, dass sonst die Einrückungen verloren gehen und dass der Code bei anderen, die hier posten, anders aussieht?
Du solltest ein Python-Tutorial durcharbeiten.
Ich weiß, dass du dich in dem anderen Thread dafür ausgesprochen hast, dass du "quick&dirty"-Lösungen willst, aber das wird nicht funktionieren.
In einem Tutorial wirst du grundlegende Dinge lernen. Etwa wie Funktionen funktionieren und was es für Datenstrukturen gibt und wie man mit ihnen arbeitet.
Und du wirst etwas über die Sichtbarkeit von Variablen lernen. Denn das, was du machen willst funktioniert durchaus. Aber jed Funktion hat einen eigenen Namensraum.
Für Funktionen gilt: Alles was eine Funktion braucht, bekommt sie als Parameter übergeben. Ihr ergebnis gibt sie mit return zurück.
Weiter gilt: Auf Modulebene (also ohne Einrückung) stehen ausschließlich die Importe, die Definition von Konstanten (die heißen so, weil sie sich _nie_ ändern, die Definition von Klassen und Funktionen und die berühmt Weiche um eine Funktion namens "main" aufzurufen. In "main" beginnt dein Programm:
Dann kommst du erst gar nicht auf die Idee, globale Variablen zu verwenden.Code: Alles auswählen
def main(): # das Programm beginnt hier if __name__ == "__main__": main()
Habe es gerade ausprobiert und es funktioniert einwandfrei. Aber wieso versehe ich gerade nicht......
Also wenn "ausführung" den Wert "Fehler" enthält, dann wird "ergebnis + 1 gerechnet". Im return gebe ich "ergebnis" an. Mit Print lese ich aber "some_name = funktion("Fehler") aus. Warum kommt da dann die 1? Wie kommt die 1 dahin, die sollte doch in der variable "ergebnis" liegen oder?
liefert keinen Wert. Die Logik bzw. das System dahinter will sich mir gerade nicht offenbaren....
Das heisst ja ich muss die Funktion 2x ausführen. 1x mit der Berechnung und 1x nur um auszugeben ob es bei der Berechnung einen Fehler gab, oder verstehe ich das komplett falsch?
Also wenn "ausführung" den Wert "Fehler" enthält, dann wird "ergebnis + 1 gerechnet". Im return gebe ich "ergebnis" an. Mit Print lese ich aber "some_name = funktion("Fehler") aus. Warum kommt da dann die 1? Wie kommt die 1 dahin, die sollte doch in der variable "ergebnis" liegen oder?
Code: Alles auswählen
some_name = ergebnis
Das heisst ja ich muss die Funktion 2x ausführen. 1x mit der Berechnung und 1x nur um auszugeben ob es bei der Berechnung einen Fehler gab, oder verstehe ich das komplett falsch?
Dankeschön.Sirius3 hat geschrieben: Sonntag 8. Januar 2023, 10:36 Dann wiederhole ich sparrows Worte mal: Du solltest ein Python-Tutorial durcharbeiten.
Dir fehlen noch so viele Grundlagen, die wir hier im Forum nicht vermitteln können.