Mir wird dieser Fehler angezeigt:
if Speicher_1 >= speicher_2:
TypeError: unorderable types: int() >= str()
Was könnte ich falsch gemacht haben und was bedeutet das überhaupt?
Was bedeutet das?
Die Fehlermeldung sagt das doch ganz deutlich: du versuchst eine Zahl mit einer Zeichenkette zu vergleichen. Und das ist nicht sinnvoll möglich. Oder wie würdest du die Frage “Ist ‘Haus’ größer 10” beantworten?
Ich nehme an du hast eine Eingabe, die die vergleichen willst. Dann musst du die zuerst in eine Zahl wandeln. Also zB int(“10”). Oder int(speicher_12353467171910) für Leute, die Variablen gerne komisch durchnummerieren.
Ich nehme an du hast eine Eingabe, die die vergleichen willst. Dann musst du die zuerst in eine Zahl wandeln. Also zB int(“10”). Oder int(speicher_12353467171910) für Leute, die Variablen gerne komisch durchnummerieren.
-
- User
- Beiträge: 31
- Registriert: Sonntag 26. November 2017, 11:57
Ja, das war mir auch klar, aber die Variable wurde nie als input verwendet.
Ich kann ja nur raten woher die kommt. Schreibst du ja nicht. Und die Fehlermeldung ist, was sie ist. Ob du den Inhalt eingelesen hast, oder hingeschrieben, oder was auch immer - eine Variable enthält eine Ganzzahl, die andere einen String.
-
- User
- Beiträge: 31
- Registriert: Sonntag 26. November 2017, 11:57
Ah ok, vielen Dank
Ich mache so etwas schon mal ganz gern:
Das Einrahmen einer Variable mit eckigen Klammern, lässt dich in der Konsole sehr genau erkennen, was genau da in der Variable enthalten ist.
Code: Alles auswählen
>>> speicher_1 = "1"
>>> speicher_2 = 2
>>> print([speicher_1], [speicher_2])
['1'] [2]
Code: Alles auswählen
>>> print(speicher_1, speicher_2)
1 2
Du sollst ja acuh nicht print machen. Sondern nur die Werte. Dann spuckt der Interpreter die „repr“-Form aus. Womit das auch generell geht, ohne Liste drumherum:
print(repr(v))
Groß kürzer als dein Vorgehen ist das natürlich nicht.
print(repr(v))
Groß kürzer als dein Vorgehen ist das natürlich nicht.
repr() kannte ich noch nicht; die Werte allein ausgeben - ohne print -, dürfte im normalen Programmfluss schwierig sein, letztlich bestehen - zumindest bei mir - bestimmte Variablen-Zuweisungen nur zur Laufzeit...
Danke für den Hinweis!
Danke für den Hinweis!
- DeaD_EyE
- User
- Beiträge: 1205
- Registriert: Sonntag 19. September 2010, 13:45
- Wohnort: Hagen
- Kontaktdaten:
Nutzt ihr nicht die interaktive REPL?
python -i programm.py
Wenn man nur den Namen eines Objektes eingibt, wird die Repräsentation des Objektes automatisch angezeigt. Nutzt man print, wird zuerst versucht das auszugeben, was die methode __str__() zurück liefert. Wenn diese Methode nicht definiert ist, wird automatisch __repr__() verwendet, was die Repräsentation des Objektes ist. Deswegen wird z.B. das Datetime-Objekt formatiert, sobald man es mit print ausgibt. Gibt man nur den Namen des DT-Objektes an, wird einem im Terminal die Repräsentation gezeigt. Die Funktion repr() gibt explizit die Repräsentation wieder. Mit der format methode lässt sich definieren, ob die Repräsentation oder der String verwendet werden soll.
python -i programm.py
Wenn man nur den Namen eines Objektes eingibt, wird die Repräsentation des Objektes automatisch angezeigt. Nutzt man print, wird zuerst versucht das auszugeben, was die methode __str__() zurück liefert. Wenn diese Methode nicht definiert ist, wird automatisch __repr__() verwendet, was die Repräsentation des Objektes ist. Deswegen wird z.B. das Datetime-Objekt formatiert, sobald man es mit print ausgibt. Gibt man nur den Namen des DT-Objektes an, wird einem im Terminal die Repräsentation gezeigt. Die Funktion repr() gibt explizit die Repräsentation wieder. Mit der format methode lässt sich definieren, ob die Repräsentation oder der String verwendet werden soll.
Code: Alles auswählen
print(f'{datetime.datetime.now()}') # implizit str
print(f'{datetime.datetime.now()!s}') # explizit str
print(f'{datetime.datetime.now()!r}') # explizit repr
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Danke für den Hinweis, es könnte sein, dass ich mein Scrapen vereinfachen kann und es mir bislang noch gar nicht aufgefallen war...