Skip main navigation

Scratch and Python Syntax

Explore common concepts in block- and text-based programming.

One aspect of text-based languages that many learners struggle with is understanding the specific syntax (the rules of the language) required. Mistakes in a program are often due to not following these rules, and these mistakes are called syntax errors. Therefore, it is helpful to show the parallels and differences between a language that a learner has already mastered and the one they are trying to learn.

In the next two steps I’ll show you a few Scratch blocks and their equivalent code in Python. The list is far from exhaustive, and is intended as a reference guide rather than an exercise to be worked through.

Variable Assignment

  • In Scratch, a variable needs to be created before it can be assigned a value, whereas in Python, a variable is created when a value is assigned to it.

An image showing the score and welcome variable in the blocks palette of Scratch

    • In Python, it is necessary to surround strings (any text) with either single (') or double (") quotes.

 

 

Two Scratch blocks.<br>set score to 0<br>set welcome to Welcome to the game

 

score = 0
welcome = 'Welcome to the game'

 

Increment Variable

 

 

    • In Scratch, a variable’s value can be increased or decreased. To do this, you use a change block with a variable and the number to increment by, using a negative number to decrease the value.

 

    • To increase or decrease the value of a variable in Python, you must calculate the new value using the value stored in the variable, and assign this new value to the variable.

 

 

A Scratch block: change score by 1

 

score = score + 1

 

Simple Output

 

 

    • In Scratch, you make a sprite talk to provide output to the user of the program.

 

    • Python uses print statements to output text, numbers, or symbols.

 

    • Again in Python, you need to use single or double quotes if you are printing strings.

 

 

Two Scratch blocks:<br>say Your score is amazing!!!<br>say score

 

print('Your score is amazing!!!')
print(score)

 

Conditional Loops

 

 

    • Scratch’s conditional loop repeats until a certain statement is True.

 

    • Python’s conditional loop repeats as long as a certain statement is True.

 

    • There needs to be a colon (:) at the end of the statement in Python.

 

    • Notice that the code that is inside the loop is indented. Indentation is normally four spaces or a single tab. This can be compared to the way the Scratch conditional loop block brackets the code within it.

 

 

repeat until score >10 block with a<br>say playing block within the repeat until block

 

while not score > 10:
 print(playing)

 

 

    • The example above can be simplified in Python though. Using the while loop, it is easier to check that the variable is less than or equal to 10.

 

 

while score <= 10:
 print(playing)

 

Infinite Loops

 

 

    • Scratch has a specific type of loop that is infinite.

 

    • In Python, a conditional loop is used that always evaluates to True.

 

 

A forever block with a change block by 1 block inside it.

 

while True:
 lives = lives + 1

 

Conditional Selection

 

 

    • Scratch has two selection blocks that can be used. If multiple conditions are required, they need to be nested within each other.

 

    • Python has three selection statements: if, elif, and else. Again colons (:) and indentation are needed.

 

 

An if then block with a condition of score variable >10. Inside the if then block is a say block with Well done you are doing a great job!

 

if score > 10:
 print("Well done you are doing a great job!")

 

An if then else block with a condition of score variable >10. Inside the if then is a say block with Well done you are doing a great job!. Inside else is a say block with Keep going try to get to 10 points!

 

if score > 10:
 print ("Well done you are doing a great job!")
else:
 print ("Keep going try to get to 10 points!")

 

An if then else block with a condition of a score variable >10. Inside the if is a say block with Well done you are doing a great job! Inside the else is<br>another if then else block with a condition of a score variable <10. Inside this is a say block with Keep going try to get to 10 points!. Inside the else is a say block with Yes! You have made it to 10 points!

 

if score > 10:
 print ("Well done you are doing a great job!")
elif score < 10:
 print ("Keep going try to get to 10 points!")
else:
 print ("Yes! You have made it to 10 points!")

 

Testing for Equality

 

 

    • In Scratch, you can use a operator block with an equal sign (=) to test if one value is the same as another value.

 

    • In Python, a single equal sign is reserved for variable assignment, so a double equal sign (==) is used to test for equality.

 

 

score = 10 Scratch operator block

 

score == 10

 

Challenge

 

Have a look at the Python code below, then see if you can write the same program in Scratch using the blocks you have seen in this step.

 

score = 0
welcome = "Welcome to the game"
print(welcome)
while score <= 20:
	score += 2
	print("You get 2 bonus points for being under 20!!!")
if score >= 20:
	print("Well done you have completed the game!")
else:
	print("You need to get to 20 to complete the game")

Were there parts of the program which you thought were easier to create in Scratch?

Share your thoughts and Scratch programs by pasting the link to your program in the comments.

This article is from the free online

Scratch to Python: Moving from Block- to Text-based Programming

Created by
FutureLearn - Learning For Life

Our purpose is to transform access to education.

We offer a diverse selection of courses from leading universities and cultural institutions from around the world. These are delivered one step at a time, and are accessible on mobile, tablet and desktop, so you can fit learning around your life.

We believe learning should be an enjoyable, social experience, so our courses offer the opportunity to discuss what you’re learning with others as you go, helping you make fresh discoveries and form new ideas.
You can unlock new opportunities with unlimited access to hundreds of online short courses for a year by subscribing to our Unlimited package. Build your knowledge with top universities and organisations.

Learn more about how FutureLearn is transforming access to education