दिलचस्प पोस्ट
अजगर में बाइट सरणी के लिए हेक्साडेसिमल स्ट्रिंग ऑब्जेक्ट 'डीएफ __ *' कॉलम '*' पर निर्भर है – इंट को बदलने से दोगुना हो सकता है RuntimeException के अलावा अन्य अपवाद इट इन स्विफ्ट के लिए अग्रणी शस्त्र क्रोम, जावास्क्रिप्ट, विंडो। नए टैब में खोलें Sed -E और sed -e के बीच अंतर क्या है स्थानीय होस्ट पर रीकैपचा उपयोग करना हमारे एंड्रॉइड ऐप से अन्य एप्लिकेशन कैश कैसे हटाना है? JSON प्रतिक्रिया में ZF2 दृश्य कैसे प्रस्तुत करना है? एक अलग फ़ाइल अजगर से ग्लोबल वैरिएबल जीआईटी में क्या मतलब है? एक ऊँचाई डिवी में खड़ी रूप से केंद्र डिवीजन? कोणीय और यूआई-राउटर, एक गतिशील टेम्पलेट यूआरएल कैसे सेट करें प्रत्येक पट्टी पर pyplot.barh () के साथ बार के मान को कैसे प्रदर्शित किया जाए? नेटबींस के साथ निर्यात जार

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

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

Solutions Collecting From Web of "पायथन :: ऑपरेटर में स्ट्रिंग चालू करें"

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

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("+")