Forum: PC-Programmierung Python Datentyp ändern


von Ralf (Gast)


Lesenswert?

Hallo,

bitte nicht direkt steinigen. Ich habe etwas Probleme mit der Anpassung 
von Datentypen in Python. Genauer bekomme ich einen Integerwert rein, 
den ich gerne als Hex-Wert interpretieren würde. Aus "10" soll also 0x10 
oder eben dezimal 16 werden.

Nun dachte ich, ich könnte einfach zu einem String casten und die 0x 
voranstellen, um dann wieder ein int daraus zu machen.
Geht aber leider nicht:
1
>>> a=str(0x10)
2
>>> b="0x"+str(10)
3
>>> type(a)
4
<type 'str'>
5
>>> type(b)
6
<type 'str'>
7
>>> a
8
'16'
9
>>> b
10
'0x10'
11
>>> int(b)
12
Traceback (most recent call last):
13
  File "<stdin>", line 1, in <module>
14
ValueError: invalid literal for int() with base 10: '0x10'

Kann mir jemand die Augen öffnen? :-(

von Soeren K. (srkeingast)


Lesenswert?

int(b,16)

von Ralf (Gast)


Lesenswert?

Ja das geht, vielen Dank
..sehr frustrierend.

von Soeren K. (srkeingast)


Lesenswert?

Ralf schrieb:
> Ja das geht, vielen Dank
> ..sehr frustrierend.

Geht dann aber auch mit
1
c = 10
2
int(str(10), 16)
3
4
# oder
5
6
d = '10'
7
int(d, 16)

Viel Spaß!

von Bernd Wiebus sein Geist (Gast)


Lesenswert?

Soeren K. schrieb:
>> int(b,16)

Ralf schrieb:
> Ja das geht, vielen Dank
> ..sehr frustrierend.

Nicht unbedingt. Es ist aber schwer für jemanden, der mal C/C++ gelernt 
hat, von seinem verdrehten, komplizierten Denken wieder herunter zu 
kommen.

<weghusch>

SCNR

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.