Program:

def add(x,y):
    return x+y

def sub(x,y):
    return x-y

def mul(x,y):
    return x*y

def div(x,y):
    return x/y

def main(opt): 
    n1=int(input("Enter 1st Number:"))
    n2=int(input("Enter 2nd Number:"))

    #implementing switch case using Dictionary Mapping
    switcher = {                     
        1: add(n1,n2),
        2: sub(n1,n2), 
        3: mul(n1,n2),
        4: div(n1,n2)
    }  
    return switcher.get(opt, "!!Invalid Option!!") 

# Driver program 
if __name__ == "__main__":
    print("********Select operation*********")
    print("1.Add")
    print("2.Subtract")
    print("3.Multiply")
    print("4.Divide")
    
    opt=int(input("\n\t-->>Enter Option: "))
    print("\n-->>Result=",main(opt) )

Expected O/P:

********Select operation*********
1.Add
2.Subtract
3.Multiply
4.Divide

-->>Enter Option: 1
Enter 1st Number:10
Enter 2nd Number:21

-->>Result= 31
_______________________________________________

********Select operation*********
1.Add
2.Subtract
3.Multiply
4.Divide

-->>Enter Option: 1
Enter 1st Number:10
Enter 2nd Number:21

-->>Result= 31
______________________________________________

********Select operation*********
1.Add
2.Subtract
3.Multiply
4.Divide

-->>Enter Option: 5
Enter 1st Number:12
Enter 2nd Number:2

-->>Result= !!Invalid Option!!

>>>>>2nd Methods>>>>