Seite 1 von 1

And und or funktioniert nicht, was mache ich falsch?

Verfasst: Samstag 5. Dezember 2020, 11:06
von rennmaus
Hallo zusammen,
Eine kleine blöde Frage:
Wenn ich einen if-'Zweig' mit and oder or machen will, wird bei mir, der Zweig mit and nie ausgeführt, der mit or aber immer, das sieht dann ungefähr so aus:

Code: Alles auswählen

if 2 < 3 and 10 > 5:
     print("Ja")
if 1 ==2 or 3==4:
      print("Ja, or") 
Hoffe es ist verständlich, was ich meine.
(Den Code habe ich hier getippt, deshalb sind die Einrückungen nicht perfekt)

Mfg
Christian

Re: And und or funktioniert nicht, was mache ich falsch?

Verfasst: Samstag 5. Dezember 2020, 11:20
von nezzcarth
Ich sehe keinen Fehler. Der Code tut genau, was man erwarten würde: Die erste Ausgabe erfolgt, die zweite, deren Bedingung nicht zutreffen kann, nicht. Bitte zeig den konkreten Fall, der Probleme macht.

Re: And und or funktioniert nicht, was mache ich falsch?

Verfasst: Samstag 5. Dezember 2020, 11:26
von rennmaus

Code: Alles auswählen

with open('C:/Users/chris/Desktop/PyChris/Adventofcode.txt') as f:
    counter=0
    for line in f.readlines():
        b_counter=0
        line=line.replace('\n', '')
        line=line.replace(':', '')
        line=line.replace('-', ' ')
        line=line.split(' ')
        von=line[0]
        bis=line[1]
        buchstabe=line[2]
        zeile=line[3]
        von=int(von)
        bis=int(bis)
        buchstabe=str(buchstabe)
        zeile=str(zeile)
        for _ in zeile:
            if 'r' in zeile:
                b_counter+=1
        if b_counter>=von and b_counter<=bis:
            counter+=1
            print("vaild")
            print(counter)
        else:
            pass
    print(line, von, bis, zeile, buchstabe)
Der code dürfte gerade bei der for-Schleife mit Fehlern überhäuft sein, da ich gerade voll am testen bin ;)
EDIT:
Ich glaube es liegt an dem restlichen Code, dass ich ein falsches Ergebnis bekomme...

Re: And und or funktioniert nicht, was mache ich falsch?

Verfasst: Samstag 5. Dezember 2020, 11:30
von Sirius3
Welchen Wert hat von, bis und b_counter?

Re: And und or funktioniert nicht, was mache ich falsch?

Verfasst: Samstag 5. Dezember 2020, 11:37
von rennmaus
So sieht das in etwa in meiner Datei aus (insgesamt 1000 Zeilen, die ich nicht alle hier rein schicken werde):
3-7 r: mxvlzcjrsqst
1-3 c: ccpc
6-12 f: mqcccdhxfbrhfpf
14-15 l: llllllllllllldgll
von ist die erste Zahl,
bis die Zweite,
buchstabe der buchstabe vor dem komma,
zeile die restliche zeile ohne komma.
Der Sinn ist, dass der buchstabe mindestens 3 mal und maximal 7 mal in zeile vorkommen darf (an der ersten Zeile)
b_counter zählt die Anzahl der (im ersten Beispiel) r's

Re: And und or funktioniert nicht, was mache ich falsch?

Verfasst: Samstag 5. Dezember 2020, 11:55
von Sirius3
Warum gibst du nicht einfach die Werte aus? Dann siehst du, dass das was du beschreibst und das was du programmiert hast nicht zusammenpasst. Es liegt nicht am if.

Re: And und or funktioniert nicht, was mache ich falsch?

Verfasst: Samstag 5. Dezember 2020, 11:59
von rennmaus
Hm...