Creating Python Programs

You now have a basic understanding of Python and the REPL, the latter can be very useful. However, as you noticed in the last example, the REPL has its limits. It’s nice for quick experiments, but:

  • It’s really hard to enter more than a few lines!
  • And what if we want to store our program?

The answer is simple: if we want to store our program, we can simply:

  1. create a file,
  2. enter the code in that file,
  3. save it,
  4. … and execute it!

“Wait, what? How!”

No worries, we’ll go over it step by step.

1. Create a Python file

We need to create a so-called plain text file, meaning there’s nothing special about this file. It’s just text. Sounds simple, but it’s not. For example, if you start Word or a similar program, enter some text, and save it, you don’t end up with plain text.

Text processing software like Word will add all kinds of extra codes to define the markup, allow for images to be included, etcetera.

If you’re on Windows, try ‘Notepad.’ It’s a plain text editor that does not add any markup. It’s a horrible way to create Python programs, but we’ll explore better options later on.

If you’re on Linux or a Mac, open a terminal and try a text editor like nano or vim (the last one is hard to use if you haven’t read the manual, though).

2. Enter the code

Now it’s time to enter some code. We’ll keep it super simple for now. Just enter something like:

print("Hello world")

It should look like this:

Entering Python code in a new, plain-text file
Entering Python code in a new, plain-text file

3. Save the file

Save the file. The most important thing to look out for is the file extension. Python files end with the .py extension. Call your file helloworld.py. In Notepad, you need to click the dropdown list called ‘Save as type’ and select All files (*.*):

Saving a Python file with Notepad (there are much better ways that you'll learn soon)
Saving a Python file with Notepad (there are much better ways that you’ll learn soon)

4. Execute a Python program file

Now that you saved the file, we can execute it. There are two options, and most often you want to go for option one:

  1. Open a terminal or command prompt, go to the file’s directory, and execute it with the python3 command
  2. Find the file with Windows explorer, right click, open with ‘Python 3.X’.

If you try option two, you’ll find out that the program flashes on the screen shortly, and you won’t see the output because the window closes itself directly after the text is printed to the screen. So now you know why you want option one! If you create more advanced programs that keep running instead of quitting directly, option two can be an OK way to start a Python script.

Note: I’ll demonstrate using Windows, but this works the same on Linux and MacOS. Instead of opening a Command Prompt or Windows Terminal, you open a MacOS terminal or Linux terminal.

  1. Open the start menu and type ‘Command Prompt.’ It might be named differently if your OS is configured with another language than English. Hint: Create a new profile with English settings. It may be helpful because most examples on the web and in books assume English settings.
  2. cd to the directory where you stored your file. In my case, it’s C:\python.land
  3. Run the program with the command python3 helloworld.py

The output should look like this:

Running a Python program file from the command prompt or terminal
Running a Python program file from the command prompt or terminal

Congrats, You did it. You wrote your first actual program, saved it to a file, and executed it like a boss! Don’t celebrate too hard, though. You don’t want to develop Python software using Notepad or other simple text editors. What you really want is an IDE: an Integrated Development Environment. Sounds scary, but it’s not!

Please help us and share this article

About the author

Erik is the owner of Python Land and the author of many of the articles and tutorials on this website. He's been working as a professional software developer for 25 years, and he holds a Master of Science degree in computer science. His favorite language of choice: Python!