Functions#
Introduction#
Functions are a fundamental component of Python programming, packaging code snippets in to reusable, efficient sections of code designed to perform a specific task. Functions can be called multiple times within a program, making code organization easier, and helping to avoid repeated code. Functions also make code easier to debug.
Important: Defining a function alone doesn’t make it run. Use start_thread
to start running a function right when your project begins, instead of waiting for an event or callback.
def
defines a function.return
sends the function’s output back to the main program.
Usage:
def function_name(parameters):
# Code to execute when the function is called
return result # Optional, used to return a value
Parameters |
Description |
---|---|
|
A name you give to your function. |
|
Optional. Variables that accept input values when the function is called, allowing data to be passed into the function. |
|
Optional. Let the function send a result back to the caller. If a function does not include a return statement, it will return |
Note: A function must always be defined before it is called.
Defining and Calling Functions#
Functions with No Parameters#
If a function does not require input, you can define it without parameters.
def greeting():
console.print("Hello!")
def main():
# Call the greeting function
greeting()
# Start threads — Do not delete
start_thread(main)
Functions with Parameters#
You can also add parameters to functions, which let you pass in information the function needs to work.
# Build Used: Super Code Base 2.0
def move_square(moves):
for index in range(moves):
drivetrain.drive_for(FORWARD, 150)
drivetrain.turn_for(RIGHT, 90)
def main():
# Call the move_square function
move_square(4)
# Start threads — Do not delete
start_thread(main)
Functions with Default Arguments#
A default argument is a parameter that assumes a default value if a value is not provided in the function call for that argument.
# Build Used: Super Code Base 2.0
def move_square(moves=4):
for index in range(moves):
drivetrain.drive_for(FORWARD, 150)
drivetrain.turn_for(RIGHT, 90)
def main():
# Call the move_square function
move_square()
# Start threads — Do not delete
start_thread(main)
Return Values from Functions#
Functions can send data back to the caller using the return
keyword. This allows you to capture and use the output in your program.
def times_two(number):
return number * 2
def main():
# Display the return value
console.print(times_two(2))
# Start threads — Do not delete
start_thread(main)
start_thread#
start_thread
calls a function so it begins running right away at the start of the project.
If more than one start_thread
is used, the functions will happen at the same time.
Usage:
start_thread(function)
Parameter |
Description |
---|---|
|
The name of a previously defined function. |
# Build Used: Super Code Base 2.0
def move_square():
# Move in a square path
while True:
drivetrain.drive_for(FORWARD, 150)
drivetrain.turn_for(RIGHT, 90)
def led_lights():
# Blink LED lights
while True:
bumper.set_color(GREEN)
wait(0.5, SECONDS)
bumper.set_color(RED)
wait(0.5, SECONDS)
# Start threads — Do not delete
start_thread(move_square)
start_thread(led_lights)