### Programming with Python

Python is a programming language. That means it’s a way of writing code, instructions that both computers and humans can read. Other languages that you may have heard of include JavaScript, C++, Java, and Ruby.

Some Python programs are very big, and programs written in Python can be found in many places.

• If you play games on your personal computer, you've probably played games that were written in Python.
• Right now, you’re interacting with the Brilliant.org website or the Brilliant.org app. We're keeping track of some of your account information and progress through this course with the help of Python programs.
• The last time you read about some scientific result in physics or biology that used computers or large amounts of data, there’s a good chance a Python program was used somewhere in that scientific process.

Some Python programs are very small. Here’s a Python program that’s twenty-six characters long!

print("Welcome to Python")
Python 3
You need to be connected to run code

This Python program contains one command, print("Welcome to Python"). This command causes the words Welcome to Python (without the quotes) to be added to the program's output. Press the "Run code" button above to see this.

Here’s a slightly longer Python program. Try to predict what this program will output before you hit “Run code”.

print("Python")
print("Time")
Python 3
You need to be connected to run code

Commands like print() that produce text output are a little bit boring!

Instead, we'll learn Python with the help of a turtle.

We won’t actually be interacting with any reptiles! "Turtle drawing" is a way of creating pictures where we act as if our program is giving commands to a meticulous, patient, and obedient turtle. The turtle walks around the canvas dragging a paintbrush behind her.

Our drawings are a result of the turtle's movements, viewed from above.

Python automatically has the ability to print out text with print(), but Python doesn't automatically have the ability to draw pictures with turtle drawing.

You add new abilities to programs in Python (or in other programming languages) by using libraries. For now, you can think of a library as something that gives your Python program new superpowers. One of those libraries, named turtle, gives your program the ability to create turtle drawings.

People have written turtle drawing libraries for many languages, not just Python. Turtle drawing has been used to explore programming since the 1960s!

Sometimes, a program can be big enough that it’s hard to see the forest for the trees. When this happens, we’ll use our code tool to help walk you through the important parts of our code.

Even though this program has just three lines, stepping through this line-by-line explanation will help make the process more familiar when you encounter it again later.

from turtle import *
forward(300)
bye()

This line accesses the turtle library, a process called importing.

Without this line, we can't use any of the commands that control our turtle.

The forward() command is provided by the turtle library. This command tells the turtle to walk forward 300 steps.

The bye() command tells the turtle she is done, and causes the turtle's image to be saved. If you don't run this command, there won't be any picture to see!

Unlike the print() and forward() commands, the bye() command doesn't have any arguments. The Python language requires you to include the parentheses anyway.

Python 3
You need to be connected to run code

You can see the notes again by pressing the "Show notes" button that is next to the "Run code" button.

The turtle appears in the animation as a small triangle. Be sure you can see the animation of the "turtle" starting in the center and moving! If you don't see the animation, run the code again.

Based on this animation, what direction is the turtle facing when the program begins?

Reading and interpreting code is a difficult but important skill. Take a look at the following code and try to decide on the best English description of what it does.

from turtle import *

forward(200)
left(90)
forward(100)

bye()
Python 3
You need to be connected to run code

This program includes a new command, left(90), that you haven't seen before. Despite the presence of this new command, don’t be afraid to make a guess before you’ve run your code! At the same time, don’t be afraid to run your code to check your guesses.

When we think about reading and communicating Python, we have some decisions to make! Most of the time, the same chunk of code can be explained in different ways. For example, consider this code:

from turtle import *

forward(200)
left(90)
forward(200)
left(90)
forward(200)
left(90)
forward(200)

bye()
Python 3
You need to be connected to run code

This code could be reasonably described in English in any of the following ways:

• “Go forward, then turn left. Repeat that two more times. Then go forward one more time.”
• “Go east 200 steps, then go north 200 steps, then go west 200 steps, then go south 200 steps.”
• “Draw a square.”

Depending on the situation, any of these descriptions might be "good," and any of them might be "bad." Thinking about code is like thinking about other forms of human communication: you have to be sensitive to the way that the author understands her code, the way the author intends her readers to understand her code, and the way that you, the reader, want to understand the code.

A code comment is a piece of a computer program that is only designed for humans. Python does not look at comments or treat them as commands.

We write a comment in Python by using the hash sign # followed by some explanatory text. Everything between the # and the end of that line is a comment.

A code comment, along with helpful use of blank lines, is a good way to take a confusing series of commands and make them clear and contained.

from turtle import *

# Draw a hexagon
forward(150)
left(60)
forward(150)
left(60)
forward(150)
left(60)
forward(150)
left(60)
forward(150)
left(60)
forward(150)

bye()
Python 3
You need to be connected to run code

Take a look at the code below. It contains new things you haven't seen before, like for, range, and i.

Don't worry about understanding the details of this unfamiliar part of the program right now. Instead, with the help of the comment, try to understand what the code does before you run it.

from turtle import *

forward(200)

# Make a diameter 200 semicircle, curving down
for i in range(100):
forward(3.1416)
right(1.8)

forward(200)

bye()
Python 3
You need to be connected to run code

Did the output when you pressed “Run code” match what you imagined? If so, that’s terrific! If not, go back and try to re-read the code again based on what you know now.

Reading code is a difficult skill. Even the best programmers needed time and patience to learn how to read code well.

The chapters of this course will walk you through how to read and write Python. You'll learn about the "vocabulary" of Python: strings, integers, commands, and variables. You'll also learn about Python's "grammar": functions, conditional statements, and loops.