<jupyter_start><jupyter_text>functional arguments: 1. *args(arguments) 2. **kwargs(keyword arguments)<jupyter_code>def my_func(a,b):
    return sum(a,b)

my_func(2,3)
def my_func(*args):
    return sum(args)

my_func(2,3,4,5)<jupyter_output><empty_output><jupyter_text>*args can be replaced by any other keywords like *sit. however ,conventionally we use args<jupyter_code>#**kwargs
def myfunc(**kwargs):
    print(kwargs)
myfunc(breakfast=30,lunch=40,dinner=60)
def myfunc(**kwargs):
    if 'breakfast' in kwargs:
        print(f"the cost of breakfast is {kwargs['breakfast']}")
    elif'lunch' in kwargs:
        print(f"the cost of breakfast is {kwargs['lunch']}")
    else:
        print(f"the cost of breakfast is {kwargs['dinner']}")
        
myfunc(breakfast=30,lunch=40,dinner=60)
# usings both functional arguments 
def myfunc(*args,**kwargs):
    print('I would like to have {} {}'.format(args[0],kwargs['lunch']))
myfunc(5,7,9,12,breakfast='idli',lunch='paratha')<jupyter_output>I would like to have 5 paratha<jupyter_text>map function<jupyter_code>def mysquare(num):
    return(num**2)
mylist=[1,2,3,4]
# objective is to get square of each object defined in my list
map(mysquare,mylist)
list(map(mysquare,mylist))<jupyter_output><empty_output><jupyter_text>filter function<jupyter_code>def check_even(num):
    if num%2==0:
        return num
filter(check_even,[1,2,3,4])
list(filter(check_even,[1,2,3,4]))<jupyter_output><empty_output><jupyter_text>lambda expressionhow a function is converted to lambda expression step by step<jupyter_code>my_square=lambda num:num**2
my_square(2)
mylist=[1,2,3,4]
list(map(lambda num:num**2,mylist))
list(filter(lambda num:num%2==0,[1,2,3,4]))<jupyter_output><empty_output><jupyter_text>assignment: reverse a string 'silicon' using lambda expression<jupyter_code>x=100
def xyz():
    x=70
    return x

xyz()<jupyter_output><empty_output><jupyter_text>oop<jupyter_code>class student():
    def __init__(self,name,regd):
        self.name=name
        self.regd=regd
x=student('xyz',12345)
x
x.name
x.regd<jupyter_output><empty_output>