Seite 1 von 1

String in "int"

Verfasst: Dienstag 6. Dezember 2011, 17:17
von Newcomer
Ich hab beispielsweise:
a = "8+5"
und jetzt will ich, dass a in ein int umwandeln, quasi in 8+5. Ich weiß aber nicht wie das gehen soll... Habt ihr ne idee??

Re: String in "int"

Verfasst: Dienstag 6. Dezember 2011, 17:28
von /me
Newcomer hat geschrieben:a = "8+5"
und jetzt will ich, dass a in ein int umwandeln, quasi in 8+5.
- String in seine Bestandteile zerlegen
- Integerwerte aus den Teilen machen
- Zusammenrechnen

Code: Alles auswählen

a = '8+5'
result = sum(map(int, a.split('+')))
print result

Re: String in "int"

Verfasst: Dienstag 6. Dezember 2011, 17:29
von Newcomer
dakeschön :DDDDD

Re: String in "int"

Verfasst: Dienstag 6. Dezember 2011, 17:33
von Newcomer
und wenn ich beispielsweise habe: "(4+3)*8**2". Gibt es da ein modul, das mir solche analysen erstellt, oder muss ich selbst ran????

Re: String in "int"

Verfasst: Dienstag 6. Dezember 2011, 17:44
von Newcomer
Kommando zurück, ich kann ja "eval" benutzen...

Re: String in "int"

Verfasst: Dienstag 6. Dezember 2011, 17:47
von gkuhl
Und nochmal zurück: `eval` sollte man nur verwenden, wenn man der Eingabe 100% vertrauen kann, da `eval` eine riesige Sicherheitslücke auftut.

Grüße
Gerrit

Re: String in "int"

Verfasst: Dienstag 6. Dezember 2011, 17:50
von Hyperion
Newcomer hat geschrieben:und wenn ich beispielsweise habe: "(4+3)*8**2". Gibt es da ein modul, das mir solche analysen erstellt, oder muss ich selbst ran????
Da gibt es Module... schau Dir doch mal sympy an.

Re: String in "int"

Verfasst: Dienstag 6. Dezember 2011, 19:42
von /me
Newcomer hat geschrieben:Kommando zurück, ich kann ja "eval" benutzen...
Das habe ich für solche Zwecke auch schon verwendet. Allerdings habe ich vorher sichergestellt, dass ausschließlich Zahlen und erlaubte Operatoren in der Eingabe enthalten waren. Alles andere reißt eine riesige Sicherheitslücke ins Programm.