दिलचस्प पोस्ट
आईओएस 6 चाहिएआयातकोर: फोन नहीं किया जा रहा है java.lang.NoSuchMethodError फ्लिंक में चेक बॉक्स वरीयता को अनुकूलित करें कैसे कॉन्फ़िगर मार्ग प्रदाता और locationProvider में angularJS? JNI में जावा स्ट्रिंग को आगे और पीछे कैसे पास करें? विशिष्ट क्लाइंट को socket.io और node.js के साथ संदेश भेजें कई मेवेन परियोजनाओं के बीच साझा गुण कैसे साझा करें? सीमाके में शामिल नहीं / पुस्तकालय शामिल हैं HTML बटन के साथ एक खोल स्क्रिप्ट चलाएं एक HTML स्थान% 20 के बजाय% 2520 के रूप में दिखा रहा है कम सीएसएस: घोंसले के शिकार के दौरान और ऑपरेटर को अपमानित करना? एंटीवायरस मेरे निष्पादन योग्य में गलत सकारात्मक सादा अंग्रेजी में मोनाद? (ओपी प्रोग्रामर के लिए कोई एफपी पृष्ठभूमि नहीं) jquery चर सिंटैक्स जावास्क्रिप्ट: LINK पर लोड ईवेंट कैप्चर करना

पायथन :: ऑपरेटर में स्ट्रिंग चालू करें

मैं ऑपरेटर प्लस में "+" जैसे स्ट्रिंग कैसे बदल सकता हूं? धन्यवाद!

वेब के समाधान से एकत्रित समाधान "पायथन :: ऑपरेटर में स्ट्रिंग चालू करें"

लुकअप तालिका का प्रयोग करें:

import operator ops = { "+": operator.add, "-": operator.sub } # etc. print ops["+"](1,1) # prints 2 
 import operator def get_operator_fn(op): return { '+' : operator.add, '-' : operator.sub, '*' : operator.mul, '/' : operator.div, '%' : operator.mod, '^' : operator.xor, }[op] def eval_binary_expr(op1, oper, op2): op1,op2 = int(op1), int(op2) return get_operator_fn(oper)(op1, op2) print eval_binary_expr(*("1 + 3".split())) print eval_binary_expr(*("1 * 3".split())) print eval_binary_expr(*("1 % 3".split())) print eval_binary_expr(*("1 ^ 3".split())) 

आप eval () का उपयोग करने की कोशिश कर सकते हैं, लेकिन यह खतरनाक है अगर तार आपके पास नहीं आ रहे हैं अन्यथा आप एक शब्दकोश बनाने पर विचार कर सकते हैं:

 ops = {"+": (lambda x,y: x+y), "-": (lambda x,y: xy)} 

आदि … और फिर बुला

 ops['+'] (1,2) 

या, उपयोगकर्ता इनपुट के लिए:

 if ops.haskey(userop): val = ops[userop](userx,usery) else: pass #something about wrong operator 

मेरी राय में, अम्नोन द्वारा प्रस्तावित उत्तर सही है

हालांकि, आपको गणितीय पार्सर के बारे में इस लेख से भी रुचि हो सकती है: http://effbot.org/zone/simple-top-down-parsing.htm

प्रत्येक ऑपरेटर के लिए एक जादू पद्धति है

 OPERATORS = {'+': 'add', '-': 'sub', '*': 'mul', '/': 'div'} def apply_operator(a, op, b): method = '__%s__' % OPERATORS[op] return getattr(b, method)(a) apply_operator(1, '+', 2) 

आप इस तरह eval उपयोग कर सकते हैं:

 eval("+")