2016-11-15 5 views
1

ist es möglich, Variablen mit benutzerdefinierten Namen/Werte zu erstellen und dann den Benutzer verwenden Operationen verwenden, um mit ihnen zu berechnen?Python 2: Berechnung mit benutzerdefinierten/benannten Variablen

Ich habe versucht, Wörterbücher, aber ich möchte, dass die Benutzer in der Lage sein, nur Eingang so etwas wie key1_name + key2_name und dann wieder die Ausgabe einer ausgewählten Operation

So zum Beispiel: 2 Variablen Haben der Benutzer eingeben mit den Namen, die er wählte, lassen dann die Benutzereingabe eine Operation sein, die Namen und das Ergebnis

numbers = {} 
numbers['1'] = 50 
numbers['2'] = 100 
numbers['efg'] = 200 

zurückkehren, wie kann ich eine Funktion erstellen, wo ich die Benutzereingabe zum Beispiel ließ 1 + 2 + efg oder 2 * efg * 2 + 1 und geben Sie dann diezurückErgebnis der Operation?

konnte ich damit der Benutzer zum Beispiel Eingangs efg * 10 und dann die Funktion lassen das Ergebnis der Zahlen zurückkehren [ ‚efg‘] * 10

Ich habe versucht, diese exmaple auf meine Frage klarer so machen dies funktioniert, wenn ich etwas wie name ['exclusedname'] * 10 als Operation eingegeben habe und das korrekte Ergebnis zurückliefert Wie kann ich es mit einer Eingabe wie zBname * 10 arbeiten lassen, wo der Benutzer nur den Schlüsselnamen eingeben muss?

numbers = {} 
name = raw_input('name') 
value = input('value') 
numbers[name] = value 

operation = input('operation') 
print operation 

Antwort

1

Sie können die eingegebenen Variablen transformieren mit regular expressions das numbers Wörterbuch zu verwenden.

import re 
... 
operation = raw_input('operation') 
operation = re.sub(r'([a-zA-Z_0-9]+)', r'numbers["\1"]', operation) 
result = eval(operation) 
print result