Python Functions

JK JK 2038 
Created at
Updated at  
7,102 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,583
  2. Python Conditions and If statements
    7,167
  3. Python Lambda
    7,152
  4. Python Arrays
    7,136
  5. Python Classes/Objects
    7,546
  6. Python Dictionaries
    7,117
  7. Python Sets
    7,144
  8. Python Tuples
    7,241
  9. Python Inheritance
    7,247
  10. Python Iterators
    7,156
  11. Python Comparison Operators
    7,319
  12. Python Arithmetic Operators
    7,120
  13. Printing string n times
    7,103
  14. String concatenation by join()
    7,171
  15. Python Lists
    7,422
  16. Python String Operations
    7,508
  17. Python Data Types
    7,523
  18. Python Polymorphism
    7,130
  19. Python Scope
    7,105
  20. Python Modules
    7,159
  21. Python Variables
    7,482
  22. Python Comments
    7,647
  23. Python Syntax
    7,471
  24. Python Getting Started
    7,537
  25. Python Introduction
    7,144
  26. What is Python?
    7,794
  27. Code Chronicles - A Caffeine-Fueled Journey into Data Software Engineering
    7,434
  28. Machine Learning Types and Programming Languages
    7,308
  29. Python Tutorials for AP Computer Science Principles, Data Projects and High School Internship
    8,019
  30. Mastering Excel Data Manipulation with Python
    7,128
  31. Challenge: One Code Problem Per Day
    1,221
  32. Clean Python Environments: The Power of venv vs. Docker
    1,023
  1. How to Build Llama 3 AI Apps with Python: Setup & User Prompts
    982
  2. Try...Catch Helps Ignoring Data Type Miss-Match Error in Python
    9,420
  3. RegExp example in Python to exclude javascript from HTML code
    7,099
  4. Python code to convert from Lunar to Solar
    7,831
  5. Python example to download webpage
    8,768
Recently updated
  1. Comprehensive Guide to Recent Critical PHP Vulnerabilities
    333
  2. How to Check Your UIUC Graduation Progress Using DARS Audit
    302
  3. Michael Jackson's Billie Jean
    321
  4. Meet A2O Lite: Korea's Newest K-Pop Cuties with Addictively Catchy Melodies
    173
  5. Why You Can't Stop Watching Jack Bryan's Beatbox Gaming Shorts
    215
  6. Song So-hee: The Soulful Voice Touching Hearts Through Korean Music
    248
  7. Watch This Dazzling Dancer’s Mind-Blowing Moves
    265
  8. Bootstrap vs. Tailwind CSS: Origins, Features, Pros & Cons, and How to Choose the Right Framework
    306
  9. The Complete Guide to Golang: History, Features, Real-World Uses, and Code Examples
    920
  10. Telemetry vs. Analytics: Understanding the Difference and Why It Matters
    443
  11. The Evolution and Production Reality of Agentic AI
    356
  12. How to Activate or Waive Your UIUC Student Health Insurance
    451
  13. Complete Guide to Building a Machine Learning Model
    468
  14. My life cuts at Las Vegas during Thanksgiving day holiday
    7,557
  15. The Cybercab Transformation: From Autonomous Taxi to Mobile Base Station
    498
  16. Harness vs. OpenClaw: Two Very Different "Agents"
    1,217
  17. What is Docker? Why is Docker also useful in a development environment?
    749
  18. UIUC 2026-2027 Academic Calendar
    1,861
  19. Open-Source LLMs: The AI Revolution
    913
  20. Resume 2.0: Leveling Up for My First Software Gig
    2,655
  21. Not everyone will understand what this man just did
    2,213
  22. UIUC Dorm Guide: Find Your Perfect Fit !!
    1,761
  23. Unpacking IU's Shopper
    921
  24. Jackie Chan's Police Story: The Action Masterpiece
    792
  25. The IVE Story: Identity, 'I AM' Charts, and Influence
    1,105
  26. Tech Visionaries who graduated at UIUC - You are the Next Turn
    1,320
  27. Open Databases for Sex Crime Occurrences in the U.S.
    876
  28. Automatically copy text to the clipboard when dragging the mouse in the Cursor
    3,074
  29. My First Day at University of Illinois-Urvana Champaign
    1,316
  30. Sand, Sea, and a Splash of Fun at Newport Beach: A Family Adventure
    8,323
  31. Sun, Rocks, and Adventure: A Day at Joshua Tree National Park
    8,407
  32. Sipping the Stars: My Starbucks Adventure
    9,946
  33. Exciting explore at Sequoia National Park
    7,812
  34. My Life Shot at Death Valley
    1,931
  35. Ip Man fights with Muay Thai Master
    1,078
  36. Mad Clown - Don't Die
    1,190
  37. How to get Student Enrollment and Degree Verification at UIUC
    5,420
  38. LAX Thanksgiving Rush: A Joyful Reunion
    1,036
  39. ZO ZAZZ(조째즈) - Don`t you know (모르시나요) (PROD.ROCOBERRY)
    1,280
  40. FISHINGIRLS Unleashes Energetic EP 'Funiverse' Featuring Signature Track 'Fishing King'
    1,105
  41. 10CM - To Reach You (너에게 닿기를)
    1,286
  42. Feeling weak? Transform yourself at the UIUC ARC!
    1,693
  43. BOYNEXTDOOR - If I Say I Love You
    1,308
  44. The Future of Software Engineer - AI Engineering
    1,040
  45. G Dragon x Taeyang (Eyes Nose Lips, Power, Home Sweet Home, GOOD BOY) - LE GALA PIÈCES JAUNES 2025
    1,042
  46. Lie - Legend song by BIGBANG
    7,940
  47. Why ROLLBACK is useful when you work with Google Gemini CLI?
    1,005
  48. Reimbursement after Vaccination at McKinley Health Center
    1,146
  49. Gemini CLI makes a Magic! Time to speed up your app development with Google Gemini CLI!
    1,083
  50. Common Questions from UIUC school life in terms of CS Program
    1,268