Learn practical skills, build real-world projects, and advance your career
import jovian
import math
paris= [200,20,200]
london=[250,30,120]
dubai= [370,15,80]
mumbai=[450,10,70]

print("return flight | {} | hotel | {} | car | {} |" .format(paris[0],paris[1],paris[2]))
print("return flight | {} | hotel | {} | car | {} |" .format(london[0],london[1],london[2]))
print("return flight | {} | hotel | {} | car | {} |" .format(dubai[0],dubai[1],dubai[2]))
print("return flight | {} | hotel | {} | car | {} |" .format(mumbai[0],mumbai[1],mumbai[2]))

print("\n \n")

for i in range(10):
    print((paris[0]  + paris[1] *i*7 + paris[2]*i),
          (london[0] + london[1]*i*7 + london[2]*i),
          (dubai[0]  + dubai[1] *i*7 + dubai[2]*i),
          (mumbai[0] + mumbai[1]*i*7 + mumbai[2]*i) , "\n")

paris.append(math.ceil(paris[2]/7))
london.append(math.ceil(london[2]/7))
dubai.append(math.ceil(dubai[2]/7))
mumbai.append(math.ceil(mumbai[2]/7))

print("return flight | {} | hotel | {} | car/day | {} |" .format(paris[0],paris[1],paris[3]))
print("return flight | {} | hotel | {} | car/day | {} |" .format(london[0],london[1],london[3]))
print("return flight | {} | hotel | {} | car/day | {} |" .format(dubai[0],dubai[1],dubai[3]))
print("return flight | {} | hotel | {} | car/day | {} |" .format(mumbai[0],mumbai[1],mumbai[3]))

print("\n \n")

for i in range(20):
    print((paris[0]  + paris[1] *i + paris[3]*i),
          (london[0] + london[1]*i + london[3]*i),
          (dubai[0]  + dubai[1] *i +  dubai[3]*i),
          (mumbai[0] + mumbai[1]*i + mumbai[3]*i) , "\n")

return flight | 200 | hotel | 20 | car | 200 | return flight | 250 | hotel | 30 | car | 120 | return flight | 370 | hotel | 15 | car | 80 | return flight | 450 | hotel | 10 | car | 70 | 200 250 370 450 540 580 555 590 880 910 740 730 1220 1240 925 870 1560 1570 1110 1010 1900 1900 1295 1150 2240 2230 1480 1290 2580 2560 1665 1430 2920 2890 1850 1570 3260 3220 2035 1710 return flight | 200 | hotel | 20 | car/day | 29 | return flight | 250 | hotel | 30 | car/day | 18 | return flight | 370 | hotel | 15 | car/day | 12 | return flight | 450 | hotel | 10 | car/day | 10 | 200 250 370 450 249 298 397 470 298 346 424 490 347 394 451 510 396 442 478 530 445 490 505 550 494 538 532 570 543 586 559 590 592 634 586 610 641 682 613 630 690 730 640 650 739 778 667 670 788 826 694 690 837 874 721 710 886 922 748 730 935 970 775 750 984 1018 802 770 1033 1066 829 790 1082 1114 856 810 1131 1162 883 830
def vp(weeks = 0 , days = 0 ,bgt = 0):
    ''' this function takes 3 arguments but just pass one at a time (weeks or days or budget)
                                              or pass (weeks and days)
                                              or pass budget ,
                                              
        parameters have their default values set to 0'''

    if weeks > 0 and days == 0 :
        return(min((paris[0] + paris[1]*weeks*7 + paris[2]*weeks),
                 (london[0] + london[1]*weeks*7 + london[2]*weeks),
                 (dubai[0] + dubai[1]*weeks*7 + dubai[2]*weeks),
                 (mumbai[0] + mumbai[1]*weeks*7 + mumbai[2]*weeks)))
    
    elif days>0 and weeks==0:
        return(min((paris[0] + paris[1]*days + paris[3]*days),
                 (london[0] + london[1]*days + london[3]*days),
                 (dubai[0] + dubai[1]*days + dubai[3]*days),
                 (mumbai[0] + mumbai[1]*days + mumbai[3]*days)))
    
    elif days > 0 and weeks > 0:
        return(min((paris[0] + paris[1]*weeks*7 + paris[2]*weeks + paris[3]*days),
                  (london[0] + london[1]*weeks*7 + london[2]*weeks + london[3]*days),
                  (dubai[0] + dubai[1]*weeks*7 + dubai[2]*weeks + dubai[3]*days),
                  (mumbai[0] + mumbai[1]*weeks*7 + mumbai[2]*weeks + mumbai[3]*days)))
    
    elif bgt>0 and weeks==0 and days==0:
        max_stay = math.floor(max(( bgt-paris[0])  / (paris[1]  + paris[3]),
                        (bgt-london[0]) / (london[1] + london[3]),
                        (bgt-dubai[0])  / (dubai[1]  + dubai[3]),
                        (bgt-mumbai[0]) / (mumbai[1] + mumbai[3]) ))
        if max_stay < 8 :
            return("{} days at paris".format(max_stay))
            
        elif max_stay >= 8 and max_stay <12:
            return("{} days at dubai".format(max_stay))
            
        else:
            return("{} days at mumbai".format(max_stay))
print(vp(weeks = 1))
print(vp(days = 4))
print(vp(days = 10))
print(vp(weeks = 2))
print(vp(bgt = 1000))
print(vp(bgt = 600))
print(vp(bgt = 1500))
print(vp(bgt = 2000))
540 396 640 730 27 days at mumbai 8 days at dubai 52 days at mumbai 77 days at mumbai
jovian.commit(project = 'Exercise - Data Analysis for Vacation Planning',enviroment = None)
[jovian] Attempting to save notebook..