2016-06-01 7 views
0
>>> x='2,33' 
>>> type(x) 
<type 'str'> 
>>> y=int(x) 

Traceback (most recent call last): 
    File "<pyshell#2>", line 1, in <module> 
    y=int(x) 
ValueError: invalid literal for int() with base 10: '2,33' 
>>> 

Ich habe das Problem, wenn versuchen, eine Rückgabe von einer anderen Funktion in int für Berechnungszwecke zu konvertieren. Das Problem ist mit "," in dieser Zeichenfolge vorhanden, jede Idee, wie Sie es entfernen.ungültiges Literal für int() mit Basis 10: wenn mit einem Wert mit "," in ihm

+0

Welchen Integer in der Zeichenfolge möchten Sie in eine 'Int' umgewandelt werden? – martineau

Antwort

0

Es hängt davon ab, was Sie erreichen möchten. Wenn Sie entweder 2 oder 33 in Ihrem Beispiel halten möchten, können Sie verwenden:

>>> y = int(x.split(',')[0]) 
>>> y 
2 
>>> type(y) 
<type 'int'> 

Wenn Sie beide Werte wollen verkettet werden, können Sie verwenden:

>>> z = int(x.replace(',', '')) 
>>> z 
233 
>>> type(z) 
<type 'int'> 
+0

Danke für Hilfe 3kt – thebadguy

0

Angenommen, möchten Sie die Integer-Teil nur, können Sie versuchen, das Teil nach dem Komma zu strippen, zB:

int(x[:x.find(',')])