Unicode zu int

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
ChriGru
User
Beiträge: 3
Registriert: Dienstag 26. August 2014, 15:57

Guten Tag zusammen,

ich habe ein Objekt, an dem mir type() verrät, dass es unicode ist und ich kann es mir ausgeben lassen:

Code: Alles auswählen

 
>> print ding
u'2.22600338959746E-02'
Der Versuch, das ding gemäß Google-Vorschlägen zu int zu machen schlug eher fehl

Code: Alles auswählen

>> ding1 = sdev.encode('ascii')
'2.22600338959746E-02'

Kann mir jemand dabei helfen so eine schöne Zahl ins int-format zu bekommen, damit ich mit der noch etwas Mathematik betreiben kann?
Ich bedanke mich bereits.
/ChriGru
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Äh... also das mag ein Unicode-String sein, aber der enthält zum einen keinen Integer-Wert und zum anderen hilft ein Encodieren in einen Byte-String ja mal gar nichts in diesem Kontext!

Probier's mal mit der ``float``-Funktion ;-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Durch encode bekommst du eine Byte-Sequenz. Mal abgesehen davon ist das kein Wert aus dem man eine Integer-Zahl machen könnte. Du kannst aber einen Fließkommawert daraus machen und daraus dann ein Integer.

Code: Alles auswählen

>>> int(u'2.22600338959746E-02')

Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    int(u'2.22600338959746E-02')
ValueError: invalid literal for int() with base 10: '2.22600338959746E-02'
>>> float(u'2.22600338959746E-02')
0.0222600338959746
>>> int(float(u'2.22600338959746E-02'))
0
Man findet solche Funktionen übrigens recht gut in der Dokumentation (int, float, str.encode). Du könntest auch einfach erst mal über das Tutorial einsteigen.
ChriGru
User
Beiträge: 3
Registriert: Dienstag 26. August 2014, 15:57

Der Nebel ist gelichtet.

Code: Alles auswählen

>>> float(u'2.22600338959746E-02')
0.0222600338959746

Das war sehr dumm von mir, da hab' ich mich verrannt. Ich entschuldige mich.
Vielen Dank für die raschen und kompetenten Antworten!
/ChriGru
Antworten