DEV Community

Cover image for Day 4 :Everything You Need to Know About Functions in Python
Praneeth
Praneeth

Posted on

Day 4 :Everything You Need to Know About Functions in Python

Definition and Defining Functions

A function represents some part of the code which can be executed only when required .In python, user defines the function by using def.

def sum(a,b):
  print(a+b)
Enter fullscreen mode Exit fullscreen mode

in this example we have performed a sum of two integers a,b. so.. whenever we require to sum two numbers, we can directly use the function sum(a,b).

Calling a Function

In Python, calling a function means executing the code defined inside a function block by using the function's name followed by parentheses. Here is an example for how calling is done in python:

def sum(a,b):
  print(a+b)

sum(1,3)
Enter fullscreen mode Exit fullscreen mode

here,

  • a and b are the parameters in the function definition.
  • 1, 3 are the arguments passed to the function.
  • sum is the name of the function

Generally, there are 4 types of Arguments:

1.Required Arguments

Required arguments are the parameters that a function must receive when it is called. If you do not provide the required arguments in a function call, Python will raise a TypeError because the function will not have the necessary information to execute.

sum(a,b):
  print(a+b)
sum(1,3)

sum()
Enter fullscreen mode Exit fullscreen mode

Output: 4
TypeError

Here:

  • a and b are required arguments because they do not have a default value.
  • So, when you call sum without an argument, Python raises an error.

2. Keyword Arguments

Keyword arguments allow you to pass arguments to a function by explicitly specifying the parameter names.

new_print(a,b):
   print("{a} is a friend of {b}")
new_print(b="Alice" ,a="Bob")
Enter fullscreen mode Exit fullscreen mode

Output: Bob is a friend of Alice
Here:

  • Since the Arguments are mentioned beforehand, in spite of wrong order, this code will produce this kind of result.

3. Default Arguments

Default arguments in Python allow you to define a function with default values for certain parameters. If a value for a parameter with a default is not provided during the function call, Python automatically assigns the default value. This makes functions more flexible and reduces the need to specify every parameter explicitly.

sum(a=0, b=0):
   print(a+b)
sum()
sum(1,3)
Enter fullscreen mode Exit fullscreen mode

Output: 0\n 4
In this example, even though, we have not assigned any variable to a, b since the a and b are assigned to a default value, it will give an output 0

4. Variable Length Arguments

Python provides a way to define functions that can accept a variable number of arguments. Variable-length arguments are handled using:

  1. *args (for non-keyword arguments)
  2. **kwargs (for keyword arguments)

1. *args:

*args allows a function to accept any number of positional arguments. Inside the function, these arguments are accessible as a tuple.

sum (*numbers):
   sum=0
   for i in numbers:
     sum+=i
   print(sum)
sum(1,2,3,4)
Enter fullscreen mode Exit fullscreen mode

Output: 10

2. **Kwargs:

**kwargs allows a function to accept any number of keyword arguments (arguments passed as key=value pairs). These are stored in a dictionary.

sum(**numbers):
  sum=0
  for keys,values in numbers:
     print("{keys}={numbers}")
     sum+= values
Enter fullscreen mode Exit fullscreen mode

💡Trick of the Day: 4 ways to swap the numbers

way 1:

P=5
Q=4
temp = P  
P = Q  
Q = temp 
Enter fullscreen mode Exit fullscreen mode

way 2:

P=5
Q=4
P,Q=Q,P
Enter fullscreen mode Exit fullscreen mode

way 3:

P=5
Q=4
P = P ^ Q  
Q = P ^ Q  
P = P ^ Q
Enter fullscreen mode Exit fullscreen mode

way 4:

P=5
Q=4
P = P + Q    
Q = P - Q   
P = P - Q 
Enter fullscreen mode Exit fullscreen mode

Heroku

This site is built on Heroku

Join the ranks of developers at Salesforce, Airbase, DEV, and more who deploy their mission critical applications on Heroku. Sign up today and launch your first app!

Get Started

Top comments (1)

Collapse
 
meybe profile image
wz liu • Edited

It's very well written. In addition please allow me to add a knowledge point, that is, there is an independent * in the function parameters, indicating that * is followed by named keyword parameters, which must be called with the parameter name when the function is called

def test(a,b,*,c)
    print(a,b,c)

>> test(1,2,3)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: test() takes 2 positional arguments but 3 were given

>> test(1,2,c=3)
1 2 3
Enter fullscreen mode Exit fullscreen mode

The Most Contextual AI Development Assistant

Pieces.app image

Our centralized storage agent works on-device, unifying various developer tools to proactively capture and enrich useful materials, streamline collaboration, and solve complex problems through a contextual understanding of your unique workflow.

👥 Ideal for solo developers, teams, and cross-company projects

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay