The Python Papers

The Python Papers

Share this post

The Python Papers
The Python Papers
Creating a Desktop Calculator with wxPython
Copy link
Facebook
Email
Notes
More

Creating a Desktop Calculator with wxPython

Mike Driscoll's avatar
Mike Driscoll
Jun 20, 2023
∙ Paid
1

Share this post

The Python Papers
The Python Papers
Creating a Desktop Calculator with wxPython
Copy link
Facebook
Email
Notes
More
Share

A lot of beginner tutorials start with "Hello World" examples. There are plenty of websites that use a calculator application as a kind of "Hello World" for GUI beginners. Calculators are a good way to learn because they have a set of widgets that you need to lay out in an orderly fashion. They also require a certain amount of logic to make them work correctly.

For this calculator, let's focus on being able to do the following:

  • Addition

  • Subtraction

  • Multiplication

  • Division

I think that supporting these four functions is a great starting place and also give you plenty of room for enhancing the application on your own.

Figuring Out the Logic

One of the first items that you will need to figure out is how to actually execute the equations that you build.

For example, let's say that you have the following equation:

1 + 2 * 5

What is the solution? If you read it left-to-right, the solution would seem to be 3 * 5 or 15. But multiplication has a higher precedence than addition, so it would actually be 10 + 1 or 11. How do you figure out precedence in code? You could spend a lot of time creating a string parser that groups numbers by the operand or you could use Python's built-in eval function. The eval() function is short for evaluate and will evaluate a string as if it was Python code.

A lot of Python programmers discourage the user of eval().

Let's find out why.

Keep reading with a 7-day free trial

Subscribe to The Python Papers to keep reading this post and get 7 days of free access to the full post archives.

Already a paid subscriber? Sign in
© 2025 Mike Driscoll
Privacy ∙ Terms ∙ Collection notice
Start writingGet the app
Substack is the home for great culture

Share

Copy link
Facebook
Email
Notes
More