Untitled
unknown
plain_text
10 months ago
1.5 kB
6
Indexable
def turn_to_list(a): # Find all matches of the pattern in the input string pattern = r'(\d+|[-+*/])' tokens = re.findall(pattern, a) return [int(token) if token.isdigit() else token for token in tokens] def devide_and_concer(arr): # this function do the divesion and multiplication #make a list of every string t = turn_to_list(arr) i = 0 while i < len(t): if str(t[i]) == '*': s = t[i-1] * t[i+1] t.pop(i-1) t.pop(i) t.pop(i-1) t.insert(i-1,s) elif str(t[i]) == '/': s = t[i-1] / t[i+1] t.pop(i-1) t.pop(i) t.pop(i-1) t.insert(i-1,int(s)) else : i+=1 return ''.join([str(a) for a in t]) def sum_and_sub(x): ''' this function return the sum of string number input ''' s = x.replace(" ", "") o = [] j = 0 for i in range(len(s)): if not s[i].isdigit(): o.append(int(s[j:i])) j = i if i == len(s)-1: i+=2 o.append(int(s[j:i])) return sum(o) def calculate_all(x): # to do the multiplicatin and sum by order t = devide_and_concer(x) s = sum_and_sub(t) return s # program main function to execute def main(): x = input('Enter numbers to calculate: ') d = calculate_all(x) print(d) if __name__ == '__main__': main()
Editor is loading...
Leave a Comment