Quick Dash Calculator May 2026

# Built-in dash functions if expr.startswith('sum'): nums = [float(x) for x in expr[3:].strip('()').split(',')] return sum(nums) if expr.startswith('avg'): nums = [float(x) for x in expr[3:].strip('()').split(',')] return sum(nums) / len(nums) if nums else 0 if expr.startswith('tip'): # tip(total, percentage) args = expr[3:].strip('()').split(',') total, pct = float(args[0]), float(args[1]) return round(total * pct / 100, 2) if expr.startswith('split'): args = expr[5:].strip('()').split(',') total, people = float(args[0]), int(args[1]) return round(total / people, 2)

# Safe arithmetic using Python's eval (restricted) # In production, use a restricted environment or ast.literal_eval with operators. allowed_names = k: v for k, v in math.__dict__.items() if not k.startswith("__") allowed_names.update("abs": abs, "round": round) try: return eval(expr, {"__builtins__": {}}, allowed_names) except Exception: return "Error: invalid expression" if name == " main ": test_cases = [ "12*3.5+2", "15% of 200", "avg(4,8,12)", "tip(45.80,15)", "split(120,4)" ] for case in test_cases: print(f"case → evaluate(case)") quick dash calculator

if expr.endswith('%'): # relative to last result (simplified: returns % as decimal) return float(expr[:-1]) / 100 # Built-in dash functions if expr

# Handle percentages: "15% of 200" or "200 + 15%" if '% of' in expr: parts = expr.split('% of') percent = float(parts[0]) total = float(parts[1]) return percent / 100 * total percentage) args = expr[3:].strip('()').split('

Top