Skip main navigation

New offer! Get 30% off one whole year of Unlimited learning. Subscribe for just £249.99 £174.99. New subscribers only. T&Cs apply

Find out more

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

Reach your personal and professional goals

Unlock access to hundreds of expert online courses and degrees from top universities and educators to gain accredited qualifications and professional CV-building certificates.

Join over 18 million learners to launch, switch or build upon your career, all at your own pace, across a wide range of topic areas.

Start Learning now