Kann String nicht in Int ändern

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Manuel22
User
Beiträge: 17
Registriert: Donnerstag 12. November 2015, 23:31

Hallo,

ich will mit int(get.label) Eine Zahl aus einem Label holen und diese Zahl dann mit einer anderen Zahl vergleichen.
Aber aus irgendeinem Grund bekomm ich dann immer die Fehlermeldung, dass der String nicht umwandelbar ist.
In einem anderen Teil meines Codes hat das Problemlos funktioniert, deswegen verstehe ich es nicht.

Mit freundlichen Grüßen
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

@Manuel22: wie glaubst Du, kann irgendwer mit den Angaben in Deinem Text das verstehen? Schreib ein möglichst kurzes lauffähiges Programm, das den Fehler zeigt und poste den Fehler inklusive Stacktrace.
Benutzeravatar
snafu
User
Beiträge: 6741
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

@Manuel22
Du machst bestimmt etwas falsch. Die Lösung ist, deinen Code so zu ändern, dass dein Programm wie gewünscht funktioniert.

Das war jetzt in etwa das Niveau der Fragestellung (die streng genommen nicht mal eine Frage beinhaltet hat). Vielleicht merkst du ja was...
Benutzeravatar
darktrym
User
Beiträge: 784
Registriert: Freitag 24. April 2009, 09:26

Ich nehme mal an da fehlen auch die Klammern für den Funktionsaufruf.
„gcc finds bugs in Linux, NetBSD finds bugs in gcc.“[Michael Dexter, Systems 2008]
Bitbucket, Github
BlackJack

@darktrym: Welcher Funktionsaufruf? Beim `int()` waren sie doch da und das ``get.label`` ist sicher nicht das was tatsächlich im Programm steht oder stand, denn ein Objekt `get` mit einem `label`-Attribut? Das glaube/hoffe ich ja nicht.

@Manuel22: Wieso willst Du überhaupt Daten aus einem Label holen? Die sind zum Anzeigen da und nicht um Daten darin zu speichern. Die notwendigen Daten sollten getrennt von der GUI in der Programmlogik hinterlegt werden.
Manuel22
User
Beiträge: 17
Registriert: Donnerstag 12. November 2015, 23:31

@blackjack du hast völlig recht danke:)
War einfach nur zur verdeutlichung.
Okay, ich kommuniziere in meinem code zwischen threads und hatte damit bisschen Probleme und da ich die Zahlen eh anzeigen lassen will hole ich sie mir eben in einem anderen threds indem ich damit weiterarbeiten will wieder raus. Das funktioniert auch bei einer Zahl perfekt nur eben bei der 2. Zahl nicht...
Vielleicht weil die erste zahl ohne Komma ist und die 2. Eine Kommastelle hat.
Oder sollte ich lieber mit queues arbeiten?
BlackJack

@Manuel22: Du versuchst also eine Zeichenkette die Zeichen enthält die nicht zu einer ganzen Zahl gehören in eine ganze Zahl umzuwandeln. Das ist doch irgendwie logisch dass das so nicht gehen kann. Und ist ein schönes Beispiel warum man Daten die man schon mal als richtigen Typen vorliegen hatte nicht über die Anzeige in eine Zeichenkette und von dort dann wieder in den gewünschten Typ wandeln sollte.
Manuel22
User
Beiträge: 17
Registriert: Donnerstag 12. November 2015, 23:31

Okay, und wie sollteich dann zwischen den Threads kommunizieren? Queues? Weil das klappt irgendwie auch nicht so richtig..
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

@Manuel22: wenn Du nicht in der Lage bist, Fragen zu stellen, dann bringt das hier nichts. Ja Threads kommunizieren per Queue. Das klappt so.
Manuel22
User
Beiträge: 17
Registriert: Donnerstag 12. November 2015, 23:31

Also tut mir leid ich muss jetzt leider mal was loswerden!!!!!
Ist ja möglich dass uch mich schlecht artikuliere oder unverständlich schreibe oder von mir aus auch keine Frage stelle aber was sollen diese ganzen schwachsinigen Kommentare????
Ich weiß ja nicht aber kommt mir so vor als ob blackjack der einzige ist der hier helfen will und siehe da er versteht es auch!!
Also entweder schreibt bitte etwas hilfreiches oder überlest den Beitrag einfach!!!!!
Finde ich unnötig unqualifizierte Kommentare über Neulinge abzulassen.
Kann jetzt auch gerne rausgeschmissen werden oder sonst was aber siwas finde ich nicht in Ordnung!!!!!

Danke für die Aufmerksamkeit!

In dem oben stehenden Beitrag wurde keine Frage gestellt. Für Irrtümer trage ich keine Haftung.
chpo7234
User
Beiträge: 35
Registriert: Dienstag 29. September 2015, 10:19

Moin Manuel,

wie von BlackJack schon erwähnt, hast du versucht deine Zeichenkette in eine Zahl umzuwandeln. Das hat so nicht funktioniert, da der Typ Integer nur für ganze Zahlen zuständig ist. Da es sich hierbei allerdings um eine Komma-Zahl handelt, macht das keinen Sinn mehr.

Um einen string in eine Gleitkommazahl umzuwandeln verwende doch den Datentyp float.

>>> a = "545.2222"
>>> float(a)
545.22220000000004
>>> int(float(a))
545
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Manuel22 hat geschrieben:In dem oben stehenden Beitrag wurde keine Frage gestellt.
Das ist genau der Punkt: Wenn du keine Frage stellst, kann man keine Frage beantworten.
Wenn du keinen Code lieferst, kann man nicht sagen wo und warum er nicht funktioniert.
Wenn du nur vage Konzepte herumwirfst und Informationsbrocken, kann man dir auch nur mit Platitueden und Gerate "helfen".
Manuel22
User
Beiträge: 17
Registriert: Donnerstag 12. November 2015, 23:31

Vielen Dank chpo7234 versuche es mal
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

Täusche ich mich? Oder mehren sich Threads von denen, die Hilfe erwarten, diese aber dann nicht hören wollen? Oder ist das einfach gerade nur die Vorweihnachts-Super-Empfindsam-Zeit?
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
Manuel22
User
Beiträge: 17
Registriert: Donnerstag 12. November 2015, 23:31

Mutetella wie du HOFFENTLICH bemerkt hast nehme ich die Hilfe von denen, die mir wirklich helfen wollen gerne an!
War ja klar das wieder so ein Kommentar kommen muss.
:(
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

@Manuell22: Ich denke hier wollen wirklich viele helfen - aber dazu braucht man eben auch genügend Information! Es mag sein, dass die ersten Antworten auf Dich wenig hilfsbereit wirken, aber da täuschst Du Dich! Schau Dir Dein erstes Posting noch einmal genau an und versuche Dich in Menschen hinein zu versetzen, die weder Deinen Code noch den Kontext (was ist denn ein ``label`` für ein Typ?) kennen. Da wirst Du hoffentlich einsehen, dass die Infos einfach zu wenig waren! Wichtig wäre offenbar gewesen, *wie* der String aussieht, der nicht wandelbar ist. Hätten wir die *exakte* Fehlermeldung mit dem Wert des Strings sofort gezeigt bekommen, hättest Du mit nahezu 100% Gewissheit bereits in der ersten Antwort einen Hinweis darauf bekommen, dass das eben kein Integerwert im String ist, sondern ein Fließkommawert und man den entsprechend *anders* (``float()``) parsen muss.

Ich denke Du solltest einen Gang zurück schalten und die Schuld für Metadiskussionen nicht bei anderen suchen, sondern bei Dir ;-)

So, und nun herrscht hier gefälligst wieder Harmonie, sonst lege ich Wham auf... :twisted:
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
bwbg
User
Beiträge: 407
Registriert: Mittwoch 23. Januar 2008, 13:35

@Hyperion: Du erhält den chinesischen Ehrentitel "Dum Sao" für die erfolgreiche Implantation eines schmerzenden Ohrwurms. :roll:
"Du bist der Messias! Und ich muss es wissen, denn ich bin schon einigen gefolgt!"
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

:mrgreen:
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Antworten