Python Functions

JK JK 2026 
Created at
Updated at  
7,068 0 0

A function is a block of code which only runs when it is called.

You can pass data, known as parameters, into a function.

A function can return data as a result.


Creating a Function

In Python a function is defined using the def keyword:

def my_function():
  print("Hello from a function")

 

Calling a Function

To call a function, use the function name followed by parenthesis:

def my_function():
  print("Hello from a function")

my_function()

 

Arguments

Information can be passed into functions as arguments.

Arguments are specified after the function name, inside the parentheses. You can add as many arguments as you want, just separate them with a comma.

The following example has a function with one argument (fname). When the function is called, we pass along a first name, which is used inside the function to print the full name:

def my_function(fname):
  print(fname + " Refsnes")

my_function("Emil")
my_function("Tobias")
my_function("Linus")

 

Parameters or Arguments?

The terms parameter and argument can be used for the same thing: information that are passed into a function.

 

Number of Arguments

By default, a function must be called with the correct number of arguments. Meaning that if your function expects 2 arguments, you have to call the function with 2 arguments, not more, and not less.

def my_function(fname, lname):
  print(fname + " " + lname)

my_function("Emil", "Refsnes")

 

Arbitrary Arguments, *args

If you do not know how many arguments that will be passed into your function, add a * before the parameter name in the function definition.

This way the function will receive a tuple of arguments, and can access the items accordingly:

def my_function(*kids):
  print("The youngest child is " + kids[2])

my_function("Emil", "Tobias", "Linus")

 

Keyword Arguments

You can also send arguments with the key = value syntax.

This way the order of the arguments does not matter.

def my_function(child3, child2, child1):
  print("The youngest child is " + child3)

my_function(child1 = "Emil", child2 = "Tobias", child3 = "Linus")

 

Arbitrary Keyword Arguments, **kwargs

If you do not know how many keyword arguments that will be passed into your function, add two asterisk: ** before the parameter name in the function definition.

This way the function will receive a dictionary of arguments, and can access the items accordingly:

def my_function(**kid):
  print("His last name is " + kid["lname"])

my_function(fname = "Tobias", lname = "Refsnes")

 

Default Parameter Value

The following example shows how to use a default parameter value.

If we call the function without argument, it uses the default value:

def my_function(country = "Norway"):
  print("I am from " + country)

my_function("Sweden")
my_function("India")
my_function()
my_function("Brazil")

 

Passing a List as an Argument

You can send any data types of argument to a function (string, number, list, dictionary etc.), and it will be treated as the same data type inside the function.

E.g. if you send a List as an argument, it will still be a List when it reaches the function:

def my_function(food):
  for x in food:
    print(x)

fruits = ["apple", "banana", "cherry"]

my_function(fruits)

 

Return Values

To let a function return a value, use the return statement:

def my_function(x):
  return 5 * x

print(my_function(3))
print(my_function(5))
print(my_function(9))

 

The pass Statement

function definitions cannot be empty, but if you for some reason have a function definition with no content, put in the pass statement to avoid getting an error.

def myfunction():
  pass

 

Recursion

Python also accepts function recursion, which means a defined function can call itself.

Recursion is a common mathematical and programming concept. It means that a function calls itself. This has the benefit of meaning that you can loop through data to reach a result.

The developer should be very careful with recursion as it can be quite easy to slip into writing a function which never terminates, or one that uses excess amounts of memory or processor power. However, when written correctly recursion can be a very efficient and mathematically-elegant approach to programming.

In this example, tri_recursion() is a function that we have defined to call itself ("recurse"). We use the k variable as the data, which decrements (-1) every time we recurse. The recursion ends when the condition is not greater than 0 (i.e. when it is 0).

To a new developer it can take some time to work out how exactly this works, best way to find out is by testing and modifying it.

def tri_recursion(k):
  if(k > 0):
    result = k + tri_recursion(k - 1)
    print(result)
  else:
    result = 0
  return result

print("\n\nRecursion Example Results")
tri_recursion(6)

 

Below YouTube content is also helpful for better understanding:

Tags Python Python Functions Recursion Facebook X
Comments 0
Similar posts
  1. Python While Loops/For Loops
    7,519
  2. Python Conditions and If statements
    7,136
  3. Python Lambda
    7,110
  4. Python Arrays
    7,095
  5. Python Classes/Objects
    7,487
  6. Python Dictionaries
    7,069
  7. Python Sets
    7,107
  8. Python Tuples
    7,181
  9. Python Inheritance
    7,200
  10. Python Iterators
    7,114
  11. Python Comparison Operators
    7,254
  12. Python Arithmetic Operators
    7,087
  13. Printing string n times
    7,077
  14. String concatenation by join()
    7,142
  15. Python Lists
    7,354
  16. Python String Operations
    7,441
  17. Python Data Types
    7,456
  18. Python Polymorphism
    7,095
  19. Python Scope
    7,067
  20. Python Modules
    7,114
  21. Python Variables
    7,424
  22. Python Comments
    7,566
  23. Python Syntax
    7,415
  24. Python Getting Started
    7,473
  25. Python Introduction
    7,109
  26. What is Python?
    7,748
  27. Code Chronicles - A Caffeine-Fueled Journey into Data Software Engineering
    7,381
  28. Machine Learning Types and Programming Languages
    7,250
  29. Python Tutorials for AP Computer Science Principles, Data Projects and High School Internship
    7,915
  30. Mastering Excel Data Manipulation with Python
    7,084
  31. Challenge: One Code Problem Per Day
    1,133
  32. Clean Python Environments: The Power of venv vs. Docker
    886
  1. How to Build Llama 3 AI Apps with Python: Setup & User Prompts
    858
  2. Try...Catch Helps Ignoring Data Type Miss-Match Error in Python
    9,243
  3. RegExp example in Python to exclude javascript from HTML code
    7,061
  4. Python code to convert from Lunar to Solar
    7,751
  5. Python example to download webpage
    8,639
Recently updated
  1. Why You Can't Stop Watching Jack Bryan's Beatbox Gaming Shorts
    108
  2. Song So-hee: The Soulful Voice Touching Hearts Through Korean Music
    105
  3. Watch This Dazzling Dancer’s Mind-Blowing Moves
    145
  4. Michael Jackson's Billie Jean
    211
  5. Bootstrap vs. Tailwind CSS: Origins, Features, Pros & Cons, and How to Choose the Right Framework
    179
  6. The Complete Guide to Golang: History, Features, Real-World Uses, and Code Examples
    587
  7. Telemetry vs. Analytics: Understanding the Difference and Why It Matters
    301
  8. The Evolution and Production Reality of Agentic AI
    268
  9. How to Activate or Waive Your UIUC Student Health Insurance
    345
  10. Complete Guide to Building a Machine Learning Model
    378
  11. My life cuts at Las Vegas during Thanksgiving day holiday
    7,462
  12. The Cybercab Transformation: From Autonomous Taxi to Mobile Base Station
    404
  13. Harness vs. OpenClaw: Two Very Different "Agents"
    1,045
  14. What is Docker? Why is Docker also useful in a development environment?
    664
  15. UIUC 2026-2027 Academic Calendar
    1,682
  16. Open-Source LLMs: The AI Revolution
    810
  17. Resume 2.0: Leveling Up for My First Software Gig
    2,367
  18. Not everyone will understand what this man just did
    1,981
  19. UIUC Dorm Guide: Find Your Perfect Fit !!
    1,645
  20. Unpacking IU's Shopper
    820
  21. Jackie Chan's Police Story: The Action Masterpiece
    705
  22. The IVE Story: Identity, 'I AM' Charts, and Influence
    1,008
  23. Tech Visionaries who graduated at UIUC - You are the Next Turn
    1,229
  24. Open Databases for Sex Crime Occurrences in the U.S.
    759
  25. Automatically copy text to the clipboard when dragging the mouse in the Cursor
    2,779
  26. My First Day at University of Illinois-Urvana Champaign
    1,244
  27. Sand, Sea, and a Splash of Fun at Newport Beach: A Family Adventure
    8,192
  28. Sun, Rocks, and Adventure: A Day at Joshua Tree National Park
    8,275
  29. Sipping the Stars: My Starbucks Adventure
    9,741
  30. Exciting explore at Sequoia National Park
    7,718
  31. My Life Shot at Death Valley
    1,781
  32. Ip Man fights with Muay Thai Master
    988
  33. Mad Clown - Don't Die
    1,083
  34. How to get Student Enrollment and Degree Verification at UIUC
    5,052
  35. LAX Thanksgiving Rush: A Joyful Reunion
    958
  36. ZO ZAZZ(조째즈) - Don`t you know (모르시나요) (PROD.ROCOBERRY)
    1,175
  37. FISHINGIRLS Unleashes Energetic EP 'Funiverse' Featuring Signature Track 'Fishing King'
    1,028
  38. 10CM - To Reach You (너에게 닿기를)
    1,201
  39. Feeling weak? Transform yourself at the UIUC ARC!
    1,610
  40. BOYNEXTDOOR - If I Say I Love You
    1,221
  41. The Future of Software Engineer - AI Engineering
    964
  42. G Dragon x Taeyang (Eyes Nose Lips, Power, Home Sweet Home, GOOD BOY) - LE GALA PIÈCES JAUNES 2025
    956
  43. Lie - Legend song by BIGBANG
    7,860
  44. Why ROLLBACK is useful when you work with Google Gemini CLI?
    887
  45. Reimbursement after Vaccination at McKinley Health Center
    1,064
  46. Gemini CLI makes a Magic! Time to speed up your app development with Google Gemini CLI!
    1,002
  47. Common Questions from UIUC school life in terms of CS Program
    1,168
  48. UIUC Immunization Compliance
    1,261
  49. LEE CHANHYUK's songs really resonate with my soul - Time Stop! Vivid LaLa Love, Eve, Endangered Love ...
    1,139
  50. LEE CHANHYUK - Endangered Love (멸종위기사랑)
    1,132