Übereinstimmung eines Wortes / Zahl

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hey,

    ich bin gerade dabei ein Script zu programmieren. Es ist ein RFID Reader. Ich habe beim einlesen eines RFID Chips folgende Werte dir mir ausgegeben werden. Einmal die "ID" des Chips und der Inhalt des Chips. Also z.b ein Text.

    Nun möchte ich gerne Abfragen ob "Text" also was auf dem Chip gespeichert wurde. In diesem Falle das Wort "Hallo" übereinstimmt mit einer anderen Variable die ebenfalls das Wort "Hallo" beinhaltet.

    Ich weiß nicht ob ich da jetzt irgendwas Falsch mache, oder aufgrund das es ein RFID Chip ist, anders vorgehen muss, jedenfalls habe ich die Abfrage folgendermaßen gemacht if text == check:

    Der komplette Code sieht so aus.


    Leider passiert in diesem Code nichts. Obwohl ich vorher auf den Chip das Wort "Hallo" reingeschrieben habe.

    Ich habe es auch mit if(text == check): probiert. Wenn ich "text" normal printe mit print(text), kommt "Hallo" raus.

    Hat jemand eine Idee wie das anders funktioniert?
    Ich übersehe irgendetwas.


    Lieben Gruß

    Marvin

  • MarvinTLA Und Du wunderst Dich nicht über die Ausnahme und den Traceback die Du jedes mal bekommst, wenn Du das laufen lässt?

    Oder wo kommt `GOIO` her?

    Sollte das im Original richtig geschrieben sein, oder auch beim Import schon falsch geschrieben sein: Dir ist klar was das Aufräumen mit `cleanup()` praktisch bedeutet?

    “Dawn, n.: The time when men of reason go to bed.” — Ambrose Bierce, “The Devil's Dictionary”

  • Sie funktioniert wunderbar und geht auch an wenn ich einen anderen Code nutze.

    Wenn ich z.b anstatt if text == check: folgenden Code nutze if(check in text): dann funktioniert es wunderbar Und die LED leuchtet auch. Es geht mir nur darum das er nicht erkennt das "text" den selben Inhalt hat wie "check".

  • MarvinTLA Na dann haben `check` und `text` halt nicht den gleichen oder gar selben Inhalt, sondern `check` ist eine Teilzeichenkette von `text`, das heisst `check` kommt in `text` vor, `text` hat aber noch mehr Inhalt. Mach mal ``print(f"{check!a} == {text!a}")``. Was wird da ausgegeben?

    “Dawn, n.: The time when men of reason go to bed.” — Ambrose Bierce, “The Devil's Dictionary”

  • Aktuell kommt ein Syntaxfehler bei der Zeile. Ich kann den auch nicht Beheben, da ich nicht weiß wie die Zeile anders aufgebaut wird.

    Jedenfalls Zeigt der den Syntaxfehler hinten bei den Anführungszeichen.

    • Offizieller Beitrag

    Jedenfalls Zeigt der den Syntaxfehler hinten bei den Anführungszeichen.

    Verwende Python3 python3 und nicht wie aktuell Python2 python!


  • Ahh okay. Hat geklappt.
    Wie es aussieht startet Geany das ganze mit Python2.

    Hab das ganze jetzt jedenfalls mit Python3 gestartet.

    Er gibt bei dieser Zeile: print(f"{check!a} == {text!a}")

    Diese gibt folgendes aus 'Hallo' == 'Hallo Ich nehme an es liegt daran das am Ende der Zeile das " ' " Zeichen fehlt.

    Was mich allerdings wundert, woran dies liegt.

  • MarvinTLA Das ist nicht die gesamte Ausgabe denn da kann das '-Zeichen nicht fehlen, das ist *garantiert* irgend wo. Wie lang ist denn `text`? kann es sein, dass da einfach noch Unmengen an Leerzeichen oder so folgen? Es wird ja nirgends angegeben wie viel da gelesen werden soll.

    “Dawn, n.: The time when men of reason go to bed.” — Ambrose Bierce, “The Devil's Dictionary”

  • MarvinTLA Nein, Text ist nicht einfach nur "Hallo", wenn es das wäre, würde der Vergleich funktionieren und in der Ausgabe mit !a wäre nach dem o ein '-Zeichen. Mach ein ``print(len(text))`` und Du wirst sehen da kommt nicht 5 bei heraus sondern eine grössere Zahl.

    “Dawn, n.: The time when men of reason go to bed.” — Ambrose Bierce, “The Devil's Dictionary”

  • Also.
    Ich habe alles mal getestet. __blackjack__ es sind tatsächlich 48 Zeichen.

    KKoPi ich habe das mit pprint versucht. Hat auch geklappt.

    Also. Es ist definitiv das Wort enthalten und alles weitere wurde mit Leerzeichen aufgefüllt.

    Hat da jemand eine Idee woran das liegt? Oder wie man das Beheben kann?

    • Offizieller Beitrag

    Während Villarriba schon feiert, wird in Villabajo noch geschruppt. :lol:

    Hier das Spülmittel:

    Ungetestet!

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!