String in "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
Newcomer
User
Beiträge: 131
Registriert: Sonntag 15. Mai 2011, 20:41

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??
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

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
Newcomer
User
Beiträge: 131
Registriert: Sonntag 15. Mai 2011, 20:41

dakeschön :DDDDD
Newcomer
User
Beiträge: 131
Registriert: Sonntag 15. Mai 2011, 20:41

und wenn ich beispielsweise habe: "(4+3)*8**2". Gibt es da ein modul, das mir solche analysen erstellt, oder muss ich selbst ran????
Newcomer
User
Beiträge: 131
Registriert: Sonntag 15. Mai 2011, 20:41

Kommando zurück, ich kann ja "eval" benutzen...
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

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
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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.
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

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.
Antworten