An Actual Calculator
RyanMuraliraj (11)

It is mind blowing how no one has created a calculator where you just type in an expression and get the result. All of the calculators I've seen have you type in one number then press enter then type in +, -, / or * then press enter then type your second number. This calculator takes simple expressions and returns the result.

Input:1+1 | Output:2
Input:1000-15 | Output:985
Input:10*10 | Output:100
Input:100/10 | Output:10
Input:2/3 | Output:0.666666
Input:0/0 | Output: Error

*No spaces in expressions
**Can do addition, subtraction, multiplication, and division. Planning to add more operations in the future.
***Has float/int switcher in division. If is not a whole number it is a float, if it is a whole number it is an int.

My Calculator:

Some of the calculators I was talking about:

This calculator does it but uses external modules without actually coding it themself:

Shoutout to the creators of the calculators listed above for the idea and inspiration.

pls upvote

You are viewing a single comment. View All
RyanMuraliraj (11)

@fanjinmeng: That is great, however you used the eval function to do it for you, I hardcoded mine.

RyanMuraliraj (11)

@fanjinmeng: Plus, not to put down someone who might be new to programming, but you can make your calculator even simpler and make it 2 lines. Also, because your code is 4 lines, if someone types in something that is mathematically impossible such as 0/0 the program crashes.

My version that is 2 lines (also crashes when inputted 0/0):

proofofconcept (22)

@ryanmuraliraj: Using list comprehensions you can do it in one line:
[print("Result: "+str(eval(input("Enter expression: " )))) if x else print("Welcome to the single line calculator") for x in range(2)]

Nosrep (13)

@proofofconcept: a simpler one:
print(eval(input('calculation here:')))

Nosrep (13)

@ryanmuraliraj: another version that can do it in 1 line:
print(eval(input("calculation here:")))
non-crashing version:

Rapax_Brak (3)

@fanjinmeng: the eval function is very dangerous as well and someone could do a buffer overflow attack.