मुझे अभिव्यक्ति के मूल्य को वापस करने में मदद चाहिए (अभिव्यक्ति फ़ंक्शन का पैरामीटर है)।

मैंने अब तक यही कोशिश की है। यह एक यादृच्छिक समीकरण के साथ सिर्फ एक उदाहरण है, मेरी योजना यह समझने की होगी कि इसे सही तरीके से कैसे हल किया जाए ताकि मैं बाद में इसे एक फ़ंक्शन में बदल सकूं

sum = 0
eq = '2+4-5'
string = ""
for x in eq:
    if x in ('+', '-'):
        if x == '+':
            sum += int(string)
        elif x == "-":
            sum -= int(string)
        string = ""
    else:
        string += x
sum += int(string)
print(sum)
"1+2" => 3   # input  =  "1+2" and the output of the function would be 3
"-1+21" => 20
"+1-1" => 0
1
user12117753 1 अक्टूबर 2019, 17:28

2 जवाब

Eval() फ़ंक्शन देखें:

>> eq = "2+4-5"
>> eval(eq)
1

जैसा कि टिप्पणियों में कहा गया है eval() पायथन कोड के रूप में पारित स्ट्रिंग का मूल्यांकन करता है जो संभावित रूप से खतरनाक है।

3
Yujin Kim 1 अक्टूबर 2019, 17:43

इसको आजमाओ:

import re
eq = '+1-1'
ls = [int(i) for i in re.findall('[-+]?[0-9]+', eq)]
res = sum(ls)
print(res)
2
elomat 1 अक्टूबर 2019, 18:03