Swapnil Saurav

##### Learning Python with Sahasra – 2023

Follow Python installation steps from here:   https://learn.swapnil.pw/python/pythoninstallation/

`print("HELLO")# 1. INSTALLATION - getting your computer ready# a. you can practice online at Google Colab (colab.reaserch.google.com)# b. install all software on your machine -## i. install Python : python.org and download the version of your choice## ii. you can program on Python but its very easy to do## iii. Another software to make it user friendly - IDE## integrated development environment - you can practice##  eg Pycharm (jetbrains.com), VS Code , Notebooks like Jupyter, etcprint("Hello how are you?")print('uyuyuiiugiub7y7 7t6t6vt87tovtotff87yvpyv')print(5+11)print('5+11=',5+11)num1 = 5  #num1 are called variablesnum2 = 11 #variable names are case sensitive, name should not start with a digit    #alphabets, numbers and underscore(_) - only these are allowedprint(num1 + num2)`

var1 = 5 #let’s take a variable called var1 and make it equal to 5
# number without decimal point – integer
#var1 is a variable of type integer
print(“var1”)
print(var1)
print(type(var1))

var1 = 5.0 #float – -inf to +inf with decimal point
print(type(var1))

var1 = 5j #complex (imaginary) – i
# square root of -25 = sq rt(25* -1) = 5j
print(type(var1))
print(5j * 5j)

# string – text (str)
var1 = “hello”
print(type(var1))

#5th basic data types – bool (boolean – 2 values: True / False)
var1 = True
print(type(var1))

#Functions for explicit conversion – convert data from given type to this:
# int(), float(), complex(), str(), bool()
var1 = int(“5”)
print(type(var1))

quantity =49
cost_pc = 51.89
total_cost = quantity * cost_pc
print(“Total quantity bought is”,quantity,”each one at a cost of”,cost_pc,”so the total cost is”,total_cost)
print(f”Total quantity bought is {quantity} each one at a cost of {cost_pc:.1f} so the total cost is {total_cost}”)

pl=”Rohit”
cn=”India”
pos=”captain”
print(f”Player {pl:<12} plays for {cn:^12} and is {pos:>20} of the team!”)

pl=”Mabwange”
cn=”Zimbabwe”
pos=”Wicket-keeper”
print(f”Player {pl:<12} plays for {cn:^12} and is {pos:>20} of the team!”)

num1 = int(input(“Enter first number to be added: “)) #default input will read as str
print(type(num1))
num2 = int(input(“Enter second number to be added: “))
print(type(num2))
print(num1+num2)

`var1 = 5var2 = 5.0var3 = "Hello"var4 = Truevar5 = 5j#arithmetic operationsvar1 = 15var2 = 4print(var1 + var2) #8print(var1 - var2) #print(var1 * var2)print(var1 / var2)print(var1 // var2)  #integer divison, the integer part of the divisonprint(var1 % var2) #modulo - remainderprint(var1 ** var2)# a,b = 30,6      30 % 20#Comparison operators: is ?? and answer will be boolvar1 = 15var2 = 4var3 = 15print(var1 > var2)print(var1 >= var3) #is it greater than or equal toprint(var1 < var2)print(var2 <= var3)print(var1 == var2)print(var1 != var2)#logical operators: input and output both are bool#and, or, notprint(var1 == var2  and var1 != var2)print(False and False)  #Falseprint(False and True)  #Falseprint(True and False)  #Falseprint(True and True)  # Trueprint(False or False)  #Falseprint(False or True)  #Trueprint(True or False)  #Trueprint(True or True)  # Truevar1 = 15var2 = 4var3 = 15print(var1 > var2 and var1 >= var3 or var1 < var2 or var2 <= var3 and var1 == var2 and var1 != var2)#T or Fprint("Hello \nHow are you \nI am fine thank you")# \n is for newlineprint("\\n is for newline")print("\\\\n is for newline")print("Hello",end=" ")print("How are you",end=" ")print("I am fine thank you",end="\n")#Conditional statementsnum1=0if num1 > 0:    print("Positive")    print("This is a positive number")    print("my 3rd line for positive number")elif num1 < 0:    print("Negative")    print("This is a negative number")    print("my 3rd line for negative number")else:    print("Its neither positive or nagtive")print("Thank you for using IF")num1 = int(input("Enter a number to be tested: "))if num1 %3==0:    print("Its divisible by 3")else:    print("Its not divisible by 3")`
`avg = 89if avg>=50:    print("Result: Pass")    #85: Grade A, 75> Grade B, >60: C, > 50-D    if avg>=85:        print("Grade: A")        if avg>=90:            print("Please collect your merit certificate!")            if avg>=95:                print("You win President's medal")    elif avg>=75:        print("Grade: B")    elif avg>=60:        print("Grade: C")    else:        print("Grade: D")else:    print("Result: Fail")# a & b=> which is greatera=45b=95if a>b:    print("A is greater than B")elif b>a:    print("B is greater than A")else:    print("They are equal")`

#Assignment:  take three numbers a,b,c and arrange them in increasing order without using any inbuilt function.

[Hint: Build on the last example shared]

`#INPUT: a,b,c=20,60,30#OUPUT: 20,30,60  (increasing order)a,b,c=80,60,30# a>b, b>c => clear# a>b, c>b => wrote additional code to find#b>a,`
`a, b, c=50,30,30  #increasing orderif a<b:    #print (f"{b} {a}")    if c<b: #b is greatest        if a<c:            print(f"{a}, {c}, {b}")        else:            print(f"{c}, {a}, {b}")    else: #c is greatest        print (f"{a}, {b}, {c}")else: #b<a    if c<b: #b is greatest        print(f"{c}, {b}, {a}")    else: #b is lowest        if a<c:            print (f"{b}, {a}, {c}")        else:            print(f"{b}, {c}, {a}")# 30<50=50# LOOPS - repeation#FOR loop - when we know exactly how many times to execute###  Range(a,b,c): generates values from a (inclusive) to b (exclusive) at steps of c# range(2,12,3): 2,5,8,11# range(3,12,3): 3,6,9# range(6,10): a&b. c is default 1:#range(5): b & a,c are deafult 0 and 1 respectively => 0,1,2,3,4for i in range(5):    print("Hello",i)for i in range(3,12,3):    print("Hi there", i)for i in range(2,12,3):    print("Hello there", i)print()for i in range(5):    print("*",end=" ")print()'''* * * * * * * * * * * * * * * * * * * * * * * * * '''for j in range(5):    for i in range(5):        print("*",end=" ")    print()#While Loop = based on condition- executes till its True#print("Hello")`
`# loops - for & while## For loop is used when you know exactly how many times to run the loopfor i in range(2,10,2):    print("* ",i)print("-------------")'''* * * * * * * * * * * * * * * * * * * * * * * * * '''for j in range(5):    for i in range(5):        print("*",end=" ")    print()print("-------------")for i in range(5):    print("* "*5)print("-------------")'''*  * * * * * * * * * * * * * * '''for j in range(5):    for i in range(j+1):        print("*",end=" ")    print()print("-------------")'''* * * * * * * * * * * * * * * '''for j in range(5):    for i in range(5-j):        print("*",end=" ")    print()print("-------------")'''* * * * *  * * * *   * * *    * *     * '''for j in range(5):    for x in range(j):        print(" ",end="")    for i in range(5-j):        print("*",end=" ")    print()print("--- Assignment ----------")'''    *     * *   * * *  * * * * * * * * * '''`
`#WHILEi=0while i<5:    print("hello")    i+=1print("Thank you")cont='y'while cont=='y' or cont=='Y':    print("Ok, printing some values...")    cont = input("Do you want to continue? (y for yes)")cont='y'while cont=='y' or cont=='Y':    sum=0    for i in range(3):        marks = int(input("Enter the marks: "))        sum+=marks    print("Total marks is",sum,"and average is",sum/3)    cont = input("Do you want to continue? (y for yes)")`
`import turtle#screen = turtle.getscreen()plot = turtle.Turtle()  #creates screenscreen = turtle.Screen()turtle.Screen().bgcolor("yellow")plot.forward(100)turtle.color("red")plot.right(90)plot.forward(100)plot.right(90)plot.forward(100)plot.right(90)plot.forward(100)##plot.right(45)plot.forward(100)plot.right(45)plot.forward(100)plot.right(135)plot.forward(100)plot.right(45)plot.forward(100)plot.backward(100)plot.left(45)plot.backward(100)plot.left(45)plot.forward(100)plot.right(45)plot.forward(100)## circleplot.circle(50)width = screen.window_width()height = screen.window_height()plot.penup()plot.goto(width/2,height/2)plot.pendown()plot.dot(30,"red")turtle.mainloop()  #keep displaying the screen# Forward, Backward, Left, Right`
`#When the value is = to 16 and you want to add 5, you add 5 units to 16num1 = 18num2 = 5num3 = num1 + num2num4 = num1 * num2num5 = num1 / num2num6 = num1 - num2# 3 square + 4 square + 5 square + 6 square + 7 squarenum1 = 3num2 = 4num3 = 5num4 = 6num5 = 7result = num1 * num1 + num2*num2 + num3*num3 + num4*num4 + num5*num5print ("Final result = ",result)#read 2 values from the user and display val1 square + val2 squareval1 = input("Enter val1: ")val1 = int(val1)val2 = int(input("Enter val2: "))#when you read using input by default values are of type stringprint("Type = ", type(val1))print("Result=", val1*val1+val2*val2)#solve:  2x.x + 9x - 5 = 0# 1. Calculate Descriminant: b.b - 4.a.c = 81+40=121# 2. Root of D = 121 ** 0.5 = +/- 11# 3. x = (-b +/-D) / 2.a = (a) (-9+11)/4 = 0.5  (b) (-9-11)/4 = -5print("Solving a quadratic equation for x:")a=4b=2c=-6D = b**2 - 4*a*cprint("Finding Discriminant = ",D)if D==0:    print("This equation has only 1 solution and x = ",(-b/(2*a)))elif D<0:    print("This equation has imaginary solution")else:    sol1 = (-b+D**0.5)/(2*a)    sol2 = (-b - D ** 0.5) / (2 * a)    print(f"Solutions are: {sol1} and {sol2}")## x.x + 4.5x - 2.5 = 0 / (x+p)(x+q): p.q = -2.5 and p+q = 4.5#If the number given divides into 2 whole numbers, then it is even. If it is divided by two and it is a decimal or fraction, then it is odd.#If the number is divided by 5 and the value is a whole number, than it is a multiple of 5`
`# if <> - elif <> - elsenum = -35if num>0:    print("Its positive")    print("Its inside num > 0 condition")else:    print("Its not positive")    print("What else")print("This is another statement")# In a block (only IF, IF-ELSE or IF-ELIF-ELSE)num2 = -10if num2==0:    print("Its zero")elif num2<0:    print("Its negative")else:    print("Its positive")# WAP to check if a number is odd or even (I will do now)#Modify the above program to give a message is number is less than 0# Msg - "Invalid numbernum3 = -11if num3 %2==0:    print("Its even number")else:    print("Its odd number")`
num = 112
if num >0:
if num%2==0:
print(“Its positive and even”)
if num%4==0:
print(“Number is divisible by 4 also”)
else:
print(“Its negative and odd”)
elif num<0:
print(“Its negative”)
else:
print(“Neither positive nor negative”)

#loops
# for loop
#range(start, stop, increment)
#range(5,25,5) = 5,10,15,20
#counter = 51
#print(counter in range(5,25,5))
for counter in range(5,25,5):
print(counter)
##range(5,10) = (start=5,end=10, default increment=1) 5,6,7,8,9
#range(5) = (default start=0, end=5, default increment=1) = 0,1,2,3,4
num=10
for j in range(num):
for i in range(num):
print(“*”,end=” “)
print()

for j in range(num):
for i in range(j+1):
print(“*”,end=” “)
print()

for j in range(num):
for i in range(10-j):
print(“*”,end=” “)
print()

num=5
for j in range(1,11):
for i in range(1,11):
print(f”{i:<2} * {j:<2} = {j*i:<2},end=” “)
print()

# while
#WAP to input 5 numbers and find sum

sum=0
for i in range(5):
num = int(input(“Enter the number: “))
sum=sum+num
print(“Sum is “,sum)

#WAP to input numbers from the user till they want and find sum
sum=0
ch=‘y’
while ch==‘y’:
num = int(input(“Enter the number: “))
sum = sum + num
ch=input(“Enter y to accept more values, anyother key to stop:”)

print(“Sum is”,sum)

#Another implementation:
#WAP to input numbers from the user till they want and find sum
sum=0
while True:
num = int(input(“Enter the number: “))
sum = sum + num
ch=input(“Enter y to accept more values, anyother key to stop:”)
if ch!=‘y’:
break #command that will throw you out of the loop

print(“Sum is”,sum)

## DAY 1 Intro Video

`print('5+3=',5+3)  #comment 1#practice day 1var1 = 45print(type(var1))  #<class 'int'> integer# we have 5 basic types of data (datatypes)var1=55.0print(type(var1))  #<class 'float'>var1 = 3jprint(type(var1))  #<class 'complex'>print(3j * 3j)  #(-9+0j)var1="Hello"print(type(var1))  #<class 'str'>  stringvar1=True  #Falseprint(type(var1))quantity = 53price = 119.77total_cost = quantity * price#The total cost of 50 pens costing 119 is total_costprint("The total cost of",quantity,"pens costing",price,"is",total_cost)#format string - f stringprint(f"The total cost of {quantity} pens costing {price} is {total_cost:.2f}")name1 ="Rohit";country="India"position="Captain"print(f"Player named {name1:.<12} plays for {country:X^15} and he is {position:>15} of the team")name1 ="Mangwabate"country="Zimbabwe"position="Wicket-keeper"print(f"Player named {name1:<12} plays for {country:^15} and he is {position:>15} of the team")var1,var2 = 50, 60`

## VIDEO 2 Basic Python Programming

`print("I am here");print("Hello \\\n Ok \tfine",end=". ")print("How are you?"     );#str, float, int, bool, complex# \ is called escape characternum1 = 55name1 = "Sachin"#whenever you read as input, the data type will always be stringname2 = input("Enter your name: ")print(name2)num2 = input("Enter radius: ")num2 = int(num2)print(num2)area = 3.14*num2*num2print("Area = ",area)# + / - *#  // (integer division - this will give you only integer part of the division)# **  power# %(modulo -remainder)num1 = 13num2 = 5#Arithematic/math operationsprint(num1 + num2)print(num1 - num2)print(num1 * num2)print(num1 / num2) #output wll always be floatprint(num1 // num2) #output will always be intprint(num1 ** num2)  # 10 to the power 5print(num1 % num2)  #modulo -`

## VIDEO DAY 3 PYTHON

`#logical operators: Input is bool values and output is also bool: and or not#and - even if one value is false it will give you false#or - even if one value is True it will give you true#not - opposite: not True = Falseprint(True and False)print(False or False)print(not False)num1 = 9num2 = 13print("Logical operator")print(num1 > num2 or num1 < num1 and num2 == num1 or num1 != num2 or num1!=num2)#(T)#comaprison operators: < > <=  >=  ==  !=  : True/Falsenum1 = 9num2 = 13print("is num1 equal to num2? ",num1==num2)print("is num1 not equal to num2? ",num1!=num2)print("is num1 greater than num2? ",num1>num2)print("is num1 greater than or equal to num2? ",num1>=num2)print("is num1 less than num2? ",num1<num2)print("is num1 less than or equal to num2? ",num1<=num2)r=5pi=3.14print("Radius = ",pi*r**2)# is 71 divisible by 9 ?print(71%9)#####################is x divisible by y or not?#conditions - they are used to check if its condition 1 or 2# if to check conditions followed by Conditional or logical- they only# give you True or False as outputx = 72y = 9if x%y==0:    print(f"{x} is perfectly divisible by {y}")    print("PERFECT DIVISIBLE")else:    print(f"{x} is NOT divisible by {y}")`

## DAY 4 Video

`num1 = 0if num1 >0:    print("Its positive")else:    print("Its not positive")num1 = 0if num1 >0:    print("Its positive")elif num1<0:    print("Its negative")else:    print("Its not positive")sum=448avg=sum/5print("AVG = ",sum/5)#if avg>90 - grade A# 80-90 - grade B # 70-80 - grade C # 60-70 - grade D# 50-60 - grade E #40-50" grade F  #<40 - Failif avg>=90:    print("PASS")    print("Grade = A")elif avg>=80:    print("PASS")    print("Grade = B")elif avg >=70:    print("PASS")    print("Grade = C")elif avg >= 60:    print("PASS")    print("Grade = D")elif avg >=50:    print("PASS")    print("Grade = E")elif avg>=40:    print("PASS")    print("Grade = F")else:    print("Grade = Failed")#Nested conditionsif avg>=40:    print("PASS")    if avg >= 90:        print("Grade = A")        if avg>=95:            print("You win President's medal!")    elif avg >= 80:        print("Grade = B")    elif avg >= 70:        print("Grade = C")    elif avg >= 60:        print("Grade = D")    elif avg >= 50:        print("Grade = E")    else:        print("Grade = F")else:    print("Grade = Failed")num1,num2,num3=10,15,20if num1>=num2:    print(f"{num1} >= {num2}")else:    print(f"{num2} >= {num1}")`

## VIDEO DAY 5

`#Repeating - loops in programming language# range(a,b,c): a-start number (including), b-end number (excluding), c-incrementrange(3,15,4) # 3, 7, 11,range(3,7)  # c is default 1: 3,4,5,6range(4) #a is default 0, c is default 1:  0,1,2,3# there are 2 ways loops are implemented in Python: FOR  / WHILE#for - when you know exactly how many times to runfor counter in range(1,11):    print(counter)#odd numbers between 1 and 10for i in range(1,11,2):    print(i)# even numbers between 1 and 10for i in range(2, 11, 2):    print(i)for i in range(5):    print("*")for i in range(5):    print("*",end=' ')print("\n\n")'''* * * * ** * * * ** * * * ** * * * ** * * * *'''for j in range(5):    for i in range(5):        print("*",end=' ')    print()'''*  * * * * * * * * * * * * * *'''for j in range(5):    for i in range(j+1):        print("*",end=' ')    print()'''* * * * ** * * * * * ** **'''for j in range(5):    for i in range(5-j):        print("*",end=' ')    print()'''    *     * *   * * *  * * * * * * * * *'''for j in range(5):    for i in range(5-j-1):        print(" ",end='')    for k in range(j + 1):        print("*", end=' ')    print()'''* * * * * * * * *   * * *   * *    *''''''1* 1=1   2* 1=2 ... 10*1=10...1*10=10  2* 10=20 ...  10*10'''for n in range(1,11):    for m in range(1,11):        print(f"{m:>2} * {n:>2} = {n*m:>3}",end="  ")    print()#while - when you until what condition`

## DAY 6 Video

`num = 51isPrime = Truefor i in range(2, num):    if num % i == 0:        isPrime = False        breakif isPrime:    print("Its  a prime number ")else:    print("Its not a prime number ")# print prime numbers between 1000 and 5000start, end = 1000, 5000for k in range(start, end + 1):    isPrime = True    for i in range(2, k):        if k % i == 0:            isPrime = False            break    if isPrime:        print(k, end=" , ")### WHILE LOOP#print numbers from 1 to 10i = 1while i <=10:    print(i)    i+=1choice = Truewhile choice:    print("Hello")    ch = input("Press n to stop")    if ch=='n':        choice = Falsewhile True:    print("Hello")    ch = input("Press n to stop")    if ch == 'n':        break`

## DAY 7 - While example

`#Stringsstr1 = 'Hello'str2 = "Hi there"str3 = '''Hi there how are youWhere are you?'''str4 = """I am fineI am hereHow are you"""print(str4)print(str1 + str2)print(str1 *3)for i in str1:    print(i)print(str1[2])#str1[1] = "B"print(str1[4], str1[-1])print(str1[0],str1[-5])print(str1[:3])print(str1[-3:])str1= "Hello How ARE YOU"print(str1.isalnum())num1 = input("Enter a number: ")if num1.isdigit():    int(num1)    print(num1)else:    print("Invalid number")str2= '     'print(str2.isspace())print(str2.islower())print(str2.isupper())str3 = "Hello HI There"print(str3.lower())print(str3.upper())print(str3.title())str4 = str3.replace("h","ABC",1)print(str4)str4 = str3.split('e')print(str4)str5 = "e".join(str4)print(str5)print("HI" in str3)print(str3.find("HI"))print(str3.count('e'))`

## Video 8: String Tutorial

`#Sets#data structures - collections: String, List, Tuple, Dictionary#SETS - A B M O C - there is no order# doesnt allow duplicateset1 = {2,4,6,8}print(set1)#union intersection minusset2 = {6,8,10,12}#unionprint(set1.union(set2))print(set1 | set2)#intersectionprint(set1.intersection(set2))print(set1 & set2)#differenceprint(set1.difference(set2))print(set1 - set2)print(set2.difference(set1))print(set2 - set1)#symmetric difference#union of 2 differencesprint(set1.symmetric_difference(set2))print(set1 ^ set2)print(set1, set2)#update doesnt give new set, it changes the main setset1.update(set2)#union -> update# {intersection_update, difference_update, symm_diff_update}print(set1, set2)set3 = {2,4,10,12}# sets to list and to tupleset1 = tuple(set1)list(set1)set()`

## SET DISCUSSION VIDEO

`#List - linear ordered mutablelist1 = []print(list1)print(type(list1))list1 = [2,4,6.5,"Hello",True,[2,8,12]]print("Number of elements = ",len(list1))print(list1[1])print(type(list1[-2]))print(type(list1[-1]))#sum and avg of 5 markslist_of_marks=[]sum = 0for i in range(0):    m=int(input("Enter marks: "))    list_of_marks.append(m)    sum+=mprint("Sum = ",sum)print("List of marks = ",list_of_marks)## 2 ways to add values to an existing list: append, insertlist_of_marks.insert(1,100)#index, valueprint("List of marks = ",list_of_marks)list_of_marks.insert(1,80)print("List of marks = ",list_of_marks)list_of_marks.insert(1,90)print("List of marks = ",list_of_marks)list_of_marks.insert(1,30)print("List of marks = ",list_of_marks)list_of_marks.insert(1,40)print("List of marks = ",list_of_marks)list_of_marks.sort(reverse=True)print("(Sort)List of marks = ",list_of_marks)list_of_marks.reverse()print("(Reverse)List of marks = ",list_of_marks)num_to_delete = 80if num_to_delete in list_of_marks:    list_of_marks.remove(num_to_delete)print("(remove)List of marks = ",list_of_marks)list_of_marks.pop(3)print("(pop)List of marks = ",list_of_marks)num_to_delete = 80if list_of_marks.count(num_to_delete) >0:    list_of_marks.remove(num_to_delete)print("(remove)List of marks = ", list_of_marks)list1 = [10,3,4,5,3,4,6,3,7,8,3,6]print(list1.count(3))print(list1.index(3))  #index(element,start,end)#index of all the values in the list:element_search = 3inx_found=0for i in range(list1.count(element_search)):    print(list1.index(element_search, inx_found), end=" ,")    inx_found = list1.index(element_search, inx_found) + 1print()list1 = [1,3,5,7]list2 = list1   #they are same , just have 2 nameslist3 = list1.copy() #copy - creates a different copyprint("1. List 1 = ",list1)print("1. List 2 = ",list2)print("1. List 3 = ",list3)list1.append(15)list2.remove(5)list3.append(19)print("2. List 1 = ",list1)print("2. List 2 = ",list2)print("2. List 3 = ",list3)# TUPLE - immutable form of Listt1 = ()print(type(t1))t1 = (1,)print(type(t1))t1=list(t1)t1.append(40)t1 = tuple(t1)#list, tuple and sets are all 3 inter convertible#advantage of tuple -its fast to accesst2 = (1,2,3)  #packinga,b,c = t2  #unpackingprint(a,b,c)#Dictionary - uses its own key to track values`

## LIST AND TUPLE DISCUSSION VIDEO

`#list, tuple, sets - linearlist1 = [2,3,4,5,2,3,4,2,3,2]list1=list(set(list1))print(list1)#Dictionary: key:value pairsd1 = {}print(type(d1))d1 = {4,5}print(type(d1))d1 = {4:"Sachin","Matches":5}print(type(d1))print(d1)print("Keys: ",d1.keys())print("Values: ",d1.values())print("(Key, Value): ",d1.items())print(d1['Matches'])d2={'City':'Mumbai'}d1.update(d2)print(d1)d2={'City':'Hyderabad'}d1.update(d2)print(d1)#deep v shallow copyd3 = d1  # deep - creates another name for d1d4 = d1.copy()print("D1 = ",d1)print("D3 = ",d3)print("D4 = ",d4)d1.update({'Sports':'Cricket'})print("D1 = ",d1)print("D3 = ",d3)print("D4 = ",d4)#remove a member: pop(), popitem()d1.pop(4)  #pop takes key as inputprint("D1 after pop: ", d1)d1.popitem() #last added value is removed - remeber last added is not same as last updatedprint("D1 after popitem: ", d1)print(" iterating through keys: ")for i in d1.keys():    print(i)print("  iterating through values: ")for i in d1.values():    print(i)print(" iterating through items")for i in d1.items():    print(i)for i,j in d1.items():    print(f"Keys = {i} and value = {j}")women = {101:"Renuka", 103:"Smriti",105:"Harmanpreet",107:"Deepti"}men = {102:"Sachin",104:"Virat",106:"Rohit"}all ={211:'Steve',222:'Warner'}all.update(women)all.update(men)print(all)for key,val in all.items():    if key in women.keys():        print(f"{val} plays in women's team")    elif key in men.keys():        print(f"{val} plays in men's team")    else:        print(f"{val} neither part of mens or womens team")`

## Dictionary tutorial video

`# SET - sets - linear unordered mutable collection - doesnt allow duplicateset1 = {'Apple','Grapes','Banana','Orange'}print(type(set1))set1.add('Cherry')set2 = {"Pineapple","Mango","Apple","Orange"}# two ways to removeset1.remove("Banana")set1.discard("Apple")#set1.remove("Rose") - if value isnt there throws errorset1.discard("Rose")  #doesnt throw errorprint("1. Set1: ",set1)set1.pop()set1.update(set2)  #unionprint("2. Set1: ",set1)set1.clear()print("3. Set1: ",set1)### SET FUNCTIONS  ####set1 = {'Apple','Grapes','Banana','Orange'}set2 = {"Pineapple","Mango","Apple","Orange"}#UNIONprint("UNION")print(set1 | set2)print(set1.union(set2))print("INTERSECTION")print(set1 & set2)print(set1.intersection(set2))print("DIFFERENCE")print(set1 - set2)print(set1.difference(set2))print(set2 - set1)print(set2.difference(set1))print("SYMMETRIC DIFFERENCE")print(set1 ^ set2)print(set2 ^ set1)print(set1.symmetric_difference(set2))#update() will update the values of main set# set1.union(set2) - this gives a new set as output# set1.update(set2) - set1 is updated with the values# union - update()set1.update(set2)print(set1)# intersection: intersection_update()set1.intersection_update(set2)print(set1)# difference_update()set1.difference_update(set2)print(set1)#symmetric_difference_update()set1.symmetric_difference_update(set2)print(set1)# set, list, tuple => they are inter-convertiblelist1 = [3,6,9,12,3,6,9,3,6,3]list1 = list(set(list1))print(list1)set1 = {'Apple','Grapes','Banana','Orange'}set1 = list(set1)set1.index("Grapes")set1 = set(set1)set1 = tuple(set1)set1 = set(set1)print(set1.issubset(set2))#list1 = [3,6,9,12,3,6,9,3,6,3]list2 = [3,6,9,12,15]#does all the elements of list2 present in list1?t_list1 =set(list1)if set(list1).issuperset(set(list2)):    print("yes, list2 value exists in list1")else:    print("No, list2 has additional elements")`

`# Basic data types (stores only 1 value) - int, float, str,bool and complex# Collections (stores multiple values - 1D) - list, tuple,dictionary, set# functions - own functions - user defined functions# print(), input(), type(), int(), str(), len() : in-built functions (developers of python have already written for us)# we will learn to write our own functions#first part of writting function is to Define the meaning- functiondef mytext(val1, val2,val3):#required positional argument    print("Hello How are you today?")    print("Where are you going?")    print("I am fine.",val1)def mytext2(val1=0, val2=0,val3=9):#default positional argument    print("Hello How are you today?")    print("Where are you going?")    print("I am fine.",val1)    print("Values are: ",val1,val2,val3)#demo keyword (non-positional) argumentsdef mytext3(val1, val2,val3):#default positional argument    print("Hello How are you today?")    print("Where are you going?")    print("I am fine.",val1)    print("Values are: ",val1,val2,val3)#default argument (non-required) & keyword argument (non-positional)mytext(5,10,0)print("Done with one time calling now calling second time")mytext2(20,4,10)mytext2(20,4)mytext2(10,5,1)mytext3(val3=10,val1=9,val2=8)mytext3(100, val3=9,val2=8)#print()# numpy, pandas (Multi-D)def isPositive(val1):    #result = "Positive"  # "+ve" / 1    if val1 >0:        return 1    else:        return 0  #print("Its not Positive")res = isPositive(100)if res==1:    print("Its positive, now lets go ahead building our logic")else:    print("STOP! STOP! STOP!")isPositive(-100)isPositive(90)`

## Function Video 1

`def myfun1(val1):  #Required positional argument    print(val1)myfun1(10)def myfun2(val1,val2,val3):  #Required positional argument    print(val1, val2,val3)myfun2(10,30,20)# Default argumentdef myfun3(val1,val2=100,val3="New York"):  #Required positional argument    print(val1, val2,val3)    return val1+val2myfun3(10,30)## keywords - (non-positional)result = myfun3(val2=99,val3=77,val1=44)print("Result = ",result)## single function to perform perimeter of triangle, square, pentagon, hexagondef calcPerimeter(s1=0,s2=0,s3=0,s4=0,s5=0,s6=0):    if s1==0:        return "You have not provided any value!"    elif s2==0:        return "Perimeter of a line is the same value which is "+str(s1)    elif s3==0:        print("We cant have a closed shape with 2 only sides!")    elif s4==0:        print("Its a Triangle! Perimeter is",s1+s2+s3)    elif s5==0:        if s1==s2 and s2==s3 and s3==s4:            print("its a square with perimeter",s1*4)        elif s1==s2 and s4==s3:            print("Its a rectangle with Perimeter",2*(s1+s3))        else:            print("Its an irregular 4 sides shape with perimeter",s1+s2+s3+s4)    elif s6==0:        print("Its a pentagon with perimeter",s1+s2+s3+s4+s5)    else:        print("Its a hexagon with perimeter",s1+s2+s3+s4+s5+s6)result = calcPerimeter()print(result)result = calcPerimeter(5)print(result)calcPerimeter(6,8)calcPerimeter(8,7,5,4,3,3)def checkNum(val1):    if val1 <0:        return -1  #for negative    elif val1==0:        return 0  #zero value    else:        return 1  #positiveres = checkNum(100)if res==-1:    print("Negative")elif res==0:    print("Zero")else:    print("Positive")res = checkNum(-100)if res==-1:    print("Negative")elif res==0:    print("Zero")else:    print("Positive")`

## Function video 2

list1 = []

class Book:

num_books = 0 #class level variable

# object level method
def say_hi(self,n):
self.name=n #self. indicates name is specific to object
print(“Hi…”)
Book.num_books+=1

# class level variable
# class level method
# object level variable

b1 = Book()
b2 = Book()
b1.say_hi(“Python”)
b2.say_hi(“Django”)
print(b1.num_books)
print(b2.num_books)
print(Book.num_books)
print(“b1.name = “,b1.name)
print(“b2.name = “,b2.name)
#Book.name

## Class Tutorial - Video 1

class Library:
def __init__(self, library):
self.library = library
def _method2(self): #declared as protected
return “I am in Library!!!”
def __method3(self): #private declaration – cant be accessed outside of this class
return “I am in Library by method 3!!!”
def get_libname(self):
return self.library
class Books(Library): #Books is a derived class of Library class (base class)
title_count = 0
#__init__ – this is automatically called when object is created
def __init__(self, title, author,libname=“XYZ Library”):
Library.__init__(self,libname)
self.title = title
self.author = author

Books.title_count+=1

#get author – object
def get_author(self):
return self.author
def get_title(self):
return self.title

#count of the book
@classmethod
def get_bookcount(cls):
return cls.title_count
class Sample:
def sample_method(self):
Library._method2(self) #protected will not show up but still callable
#protected concept exists but not strictly implemented

def sample_method3(self):
Library.__method3(self) #private members are not accessible

b1 = Books(“Python Programming”,“Swapnil”)
b2 = Books(“Data Science Programming”,“Snehil”,“PQR Library”)
b3 = Books(“Blockchain”,“Ojass”)
print(“Number of books in the library = “,b1.get_bookcount())
print(“Number of books in the library = “,b3.get_bookcount())
print(“Title of the book = “,b1.get_title())
print(“Title of the book = “,b2.get_title())
l1 = Library(“ABC Local Library”)
print(“Library name = “,l1.get_libname())
print(“B1 Library is: “,b1.get_libname())
print(“LIBNAME = “,b1.get_libname())
print(“Method2 by Books: “,b1._method2())
s1 = Sample()
print(“Call by Sample: “,s1.sample_method())
#print(“Call by Sample: “,s1.sample_method3()) – throws error
# as private members cant be accessed

#print(“Method2 by Books: “,b1.__method3())- throws error
# as private members cant be accessed

## Class Tutorial Video 2

MASTERLIST = [{“ItemCode”: 101,“Item”:“Shirt”,“Price”:28.2},
{“ItemCode”: 102,“Item”:“Bag”,“Price”:18.2},
{“ItemCode”: 103,“Item”:“Book1”,“Price”:38.2},
{“ItemCode”: 104,“Item”:“Watch”,“Price”:58.2},
{“ItemCode”: 105,“Item”:“Shoes”,“Price”:128.2},
{“ItemCode”: 106,“Item”:“Laptop”,“Price”:1028.2}]
class ShoppingCart:
def __init__(self):
self.myshoppingcart = []

each_item = {}
item_name = input(“Enter the product Name: “)
not_in_list = True
for items in MASTERLIST:
if item_name==items[“Item”]:
not_in_list = False
if not_in_list:
print(“Sorry, That Item is Out of Stock!”)
else:
item_size = input(“Enter the product Size: “)
item_color = input(“Enter the product Color: “)
item_quantity = int(input(“Enter the product Quantity: “))
each_item ={“Item”:item_name,“Size”:item_size,“Color”:item_color,“Quantity”:item_quantity}
self.myshoppingcart.append(each_item)
#print(self.myshoppingcart)
def display_prod(self):
print(“Item Size Color Quantity”)
for i in self.myshoppingcart:
for k,j in i.items():
print(f”{j:<10}, end=” “)
print()

def remove_prod(self):
item_name = input(“Enter the product name to remove: “)
not_in_list = True
for items in self.myshoppingcart:
if item_name == items[“Item”]:
self.myshoppingcart.remove(items)
not_in_list = False

if not_in_list:
print(“Sorry, That Item is not in your shopping cart!”)
else:
print(“Item is now removed from your shopping cart!”)

def generate_receipt(self):
print(“Item Size Color Quantity Price”)
print(“=======================================================”)
item_cost = 0
price = 0
grand_total = 0
for i in self.myshoppingcart:
for k,j in i.items():
for master_list in MASTERLIST:
if j==master_list[“Item”]:
price=master_list[“Price”]

print(f”{j:<10}, end=” “)
if k==“Quantity”:
item_cost = j*price
grand_total+=item_cost
print(f”{round(item_cost):<10}, end=” “)
print()
print(“——————————————————-“)

print(” TOTAL: \$”+str(round(grand_total)))
print(“=======================================================”)

if __name__==“__main__”:
sc1 = ShoppingCart()
sc2 = ShoppingCart()
while True:
print(“1. View my cart \n2. Add to my cart\n3. Remove from my cart\n4. Generate My Receipt\n5. Exit”)
if ch==“1”:
if len(sc1.myshoppingcart)==0:
else:
sc1.display_prod()
elif ch==“2”:
elif ch==“3”:
sc1.remove_prod()
elif ch==“4”:
if len(sc1.myshoppingcart)==0:
else:
sc1.generate_receipt()
elif ch==“5”:
break
else:
print(“Invalid option”)

## DESCRIPTIVE STATISTICS

Descriptive Statistics – Types of Data

Quantitative Data
Numeric Data
Continuous
(Weight, Temperature,
etc)
Ratio
Interval
Data
Discrete
Qualitative Data
Categorical
Nominal
(There is no order in the values): {M, F} {N,S,E,W}
Ordinal
(There is an order): {1,2,3,4,5} {Good, Average, Bad}
Text
Data
Audio

Video

UNIVARIATE – One Variable

## Day 1 Video

##### Lecture Notes – I
`text1 = 'Hello' \        'World'text2 = "hi there"text3 = '''How are youwhere are youwhat do you want?'''text4 = """I am fine"""#I am just trying to run few programsprint(text1,end=' ')  #printing first text  print("Hello")print(text2)print(text3)print(text4)'''this is a multi line textplease ignore'''print(type(True))cost = 60quantity = 212total_cost = cost * quantityprint("Cost of each pen is \$",cost,"so for ",quantity,"pens, its going to be \$",total_cost)print(f"Cost of each pen is \$ {cost} so for  {quantity} pens, its going to be \$ {total_cost}")print("Hellon\nhow are you?\nI am fine")`
`txt1 = "Hello"a1 = 5b1 = False#user input- will provide the valueinp1 = input("Enter your name:")print(inp1)inp2 = int(input("Enter your age:"))print(type(inp2))print(inp2)num1 = 10num2 = 20#ArithmeticOperationsprint(num1 + num2)print(num1 - num2)print(num1 * num2)print(num1 / num2)print(num1 // num2)  #integer division - ignores the decimal partprint(num1 ** num2)  #power - exponentprint(num1 % num2)   #mod (modulus) - remainder#Comparison operators:   <  >   <=   >=   ==  !=#          :input is anything but output is always bool value#Logical operations:  and  or not#          :both input and output are bool value`
`#comparison operators - output is always Bool##  >  <  >=  <=  ==  !=num1 = 56num2 = 56num3 = 57print(num1 <= num2) # less than or equal - Tprint(num1 <= num3) # Tprint(num1 < num2) # Fprint(num1 >= num2)  #Tprint(num1 > num2) #Fprint(num1 > num3) #Fprint(num1 == num2)  #Tprint(num1 != num2) #F#Logical operators# Today we will do operators and conditions# I do only operators## Today we will do operators or conditions# I do only operators# and or notnum1 = 56num2 = 56num3 = 57print(num1 <= num2 and num1 <= num3 or num1 < num2 and num1 >= num2 or num1 > num2 and num1 > num3 or num1 == num2 and num1 != num2)#T#print()num1 = int(input("Enter a number: "))print(type(num1))## 1. Calculate area and perimeter of a rectangle with given sides# 2. Calculate area and circumference of a circle with radius as input from the user#conditional statementsnum1        = -56#ask you is it a positive number ?if num1>0:    print("hello")    print("Yes its positive")elif num1 <0:    print("Its negative")else:    print("Its neither positive nor negative")avg = 76'''avg>85 : Grade Aavg>70: Grade B:avg >60: Grade Cavg >40: Grade D<40: Grade E'''if avg >=85:    print("Grade A")    if avg >= 90:        print("You win special certificate")        if avg>95:            print("You get President's meddal")elif avg>70:    print("Grade B")elif avg>60:    print("Grade C")elif avg>40:    print("Grade D")else:    print("Grade E")#get input of 3 numbers and find the largest and the smallest number#loops - Keep repeating# FOR   - when you know how many times# WHILE - untill the condition is true#range(a,b,c): start = a, go upto b (excluding), c = increment#range(3,19,4) = 3, 7, 11,15,##range(3,9) (increment by default 1) - 3, 4,5,6,7,8## range(4) (by default start=0, increment = 1)- 0,1,2,3for i in range(5):    print("*",end=" ")print("\n --------------  \n\n")'''* * * * * * * * * * * * * * * * * * * * * * * * * '''for j in range(5):    for i in range(5):        print("*",end=" ")    print()`
`print("\n --------------  \n\n")'''* * * * * * * * * * * * * * * * * * * * * * * * * '''for j in range(5):    for i in range(5):        print("*",end=" ")    print()print("\n --------------  \n\n")'''* * * * * * * * * * * * * * * '''for j in range(5):    for i in range(j+1):        print("*",end=" ")    print()print("\n --------------  \n\n")'''* * * * * * * * ** * ** ** '''for j in range(5):    for i in range(5-j):        print("*",end=" ")    print()print("\n --------------  \n\n")'''* * * * *  * * * *  * * *   * *    * '''for j in range(5):    for i in range(j):        print("",end=" ")    for i in range(5-j):        print("*",end=" ")    print()'''   *  *  * * ** **      *'''sum=0while True:    num1 = int(input("Enter a number (-999 to stop):"))    if num1==-999:        break  #throw us out of the current loop    sum+=num1print("Sum of the given numbers are: ",sum)## check if prime numberwhile True:    num1 = int(input("Enter a number (0 to stop/negative numbers not allowed): "))    if num1 == 0:        break    if num1<0:        print("Invalid number")        continue    isPrime = True    for i in range(2,num1//2+1):        if num1 % i==0:            isPrime=False            break    if isPrime:        print(f"{num1} is a Prime number")    else:        print(f"{num1} is not a Prime number")## generate if prime numbernum1=0while True:    #num1 = int(input("Enter a number (0 to stop/negative numbers not allowed): "))    num1+=1    if num1 == 0:        break    if num1<0:        print("Invalid number")        continue    isPrime = True    for i in range(2,num1//2+1):        if num1 % i==0:            isPrime=False            break    if isPrime:        print(f"{num1}")        ch=bool(input())        if ch!=False:            break#read the marks of 5 subjects and print total and averagetotal = 0while True:    for i in range(5):        marks = int(input("Enter the marks in subject "+str(i+1)+": "))        total+=marks    print(f"Total marks is {total} and average is {total/5:.2f}")    ch=bool(input())    if ch:        break`
`### Enter marks for 5 subjects for as long as user wants to repeatwhile True:    sum = 0    for i in range(5):        marks = int(input("Enter your marks in subject "+str(i+1)+": "))        sum+=marks    print("Total marks obtained = ",sum)    ch=bool(input("Enter any key to stop:"))    #converting empty string to bool will result in    # False, anything will result in True    if ch:        break############################str1 = 'HELLO'str2 = "I am fine"str3 = '''Where are you going?How long will you be here?What are you going to do?'''str4 = """I am hereI will be here for next 7 daysI am going to just relax and chill"""print(type(str1),type(str2),type(str3),type(str4))print(str1)print(str2)print(str3)print(str4)# What's you name?str5 = "What's your name?"print(str5)#He asked,"Where are you?"str6 = 'He asked,"Where are you?"'print(str6)#He asked,"What's your name?"#escape sequence  \print('''He asked,"What's your name?"''')print("He asked,\"What's your name?\"")print('nnnnn\nnn\tnn')print("\FOlder\\newfolder")# \n is used to print newline in pythonprint("\\n is used to print newline in python")# \\n will not print newline in pythonprint("\\\\n will not print newline in python")str1 = "Hello You"str2 = "There"print(str1 + str2)print(str1 *5)for i in str1:    print("Hello")#indexingprint(str1[2])print("last element: ",str1[4])print("last element: ",str1[-1])print("second element: ",str1[-8])print("ell: ",str1[1:4])print("ell: ",str1[-8:-5])print("First 3: ",str1[:3])print("First 3: ",str1[:-6])print("Last 3: ",str1[6:])print("Last 3: ",str1[-3:])`
`#Methods - exactly same as your functions - only difference is they are linked to a classimport timestr1 = "HELLO"print(str1.replace("L","X",1))sub_str = "LL"str2 = "HELLO HOW WELL ARE YOU LL"cnt = str2.find(sub_str)print("Count = ",cnt)if cnt<0:    print("Sorry, no matching value hence removing")else:    print("Value found, now replacing")    for i in range(5):        print(". ",end="")        time.sleep(0.5)    print("\n")    print(str2.replace(sub_str,"OOOO"))out_res = str2.split("LL")print("Output Result = ",out_res)out_str = "LL".join(out_res)print(out_str)print(str2.title())print(str2.lower())print(str2.upper())str3 = 'hello how well are you ll'print(str3.islower())print(str3.isupper())num1 = input("Enter a number: ")if num1.isdigit():    num1 = int(num1)else:    print("Invaid input")ename = input("Enter your first name: ")if ename.isalpha():    print("Your name is being saved...")else:    print("Invaid name")#WAP to count of vowels in a sentencepara1 = "Work, family, and endless to-do lists can make it tough to find the time to catch up. But you'll never regret taking a break to chat with your friend, Frost reminds us. Everything else will still be there later."sum=0for l in para1:    if l=='a' or l=='A' or l=='e' or l=='E' or l=='i' or l=='I' or l=='o' or l=='O' or l=='u' or l=='3':        sum+=1print("Total vowesl = ",sum)sum=0for l in para1.lower():    if l=='a' or l=='e'  or l=='i' or l=='o' or l=='u':        sum+=1print("Total vowesl = ",sum)sum=0for l in para1.lower():    if l in 'aeiou':        sum+=1print("Total vowesl = ",sum)##########  LIST#LIST#collection of linear ordered itemslist1 = [1,2,3,4,5]print(type(list1))print("Size = ",len(list1))print(list1[0])print(list1[-1])print(list1[3])print(list1[:3])print(list1[-3:])print(list1[1:4])for i in list1:    print(i)print([2,3,4]+[6,4,9])print([2,3,4]*3)str2 = "A B C D A  B C A B A "print(str2.count("D"))print(list1.count(3))`
`l1 = [2,4,6,8]print(l1.append(12))print(l1)l1[0]=10print(l1)l1.insert(2,15)print(l1)# Queue: FIFO# Stack: LIFOif 16 in l1:    l1.remove(16) #takes in value to removel1.remove(15)print(l1)l1.pop(1) #indexprint(l1)#################while False:    print("Queue is: ",l1)    print("1. Add\n2. Remove\n3. Exit")    ch=input("Enter your choice: ")    if ch=="1":        val = input("Enter the value: ")        l1.append(val)    elif ch=="2":        l1.pop(0)    elif ch=="3":        break    else:        print("Try again!")while False:    print("Stack is: ",l1)    print("1. Add\n2. Remove\n3. Exit")    ch=input("Enter your choice: ")    if ch=="1":        val = input("Enter the value: ")        l1.append(val)    elif ch=="2":        l1.pop(-1)    elif ch=="3":        break    else:        print("Try again!")l2 = l1  #they become samel3 = l1.copy()print("1. List1 = ",l1)print("1. List2 = ",l2)print("1. List3 = ",l3)l1.append(33)l2.append(44)l3.append(55)print("2. List1 = ",l1)print("2. List2 = ",l2)print("2. List3 = ",l3)l1.extend(l3)print(l1)print(l1.count(6))sum=0marks=[]for i in range(3):    m = int(input("Enter marks in subject "+str(i+1)+": "))    marks.append(m)    sum+=mprint("Sum is ",sum, "and average is ",sum/3)print("Marks obtained is ",marks)#THREE STUDENTS AND THREE SUBJECTS:allmarks=[]for j in range(3):    sum=0    marks=[]    for i in range(3):        m = int(input("Enter marks in subject "+str(i+1)+": "))        marks.append(m)        sum+=m    print("Sum is ",sum, "and average is ",sum/3)    print("Marks obtained is ",marks)    allmarks.append(marks)print("All the marks are: ",allmarks)# All the marks are:  [[88, 66, 77], [99, 44, 66], [44, 99, 88]]# find the highest marks of each subject`
`#num = 51isPrime = Truefor i in range(2,num):    if num%i==0:        isPrime = False        breakif isPrime:    print("Its a Prime number")else:    print("Its not a prime number")###start1,end1= 500,5000for j in range(start1,end1+1):    isPrime = True    for i in range(2, j):        if j % i == 0:            isPrime = False            break    if isPrime:        print(j,end=", ")# while loop#While loopi=1while i<=10:    print(i)    i+=1ch=Truewhile ch:    num=int(input("Enter a number: "))    if num%2==0:        print("Its an even number!")    else:        print("Its an odd number")    choice=input("Do you want to continue (press n to stop):")    if choice=='n':        ch=Falsewhile True:    num=int(input("Enter a number: "))    if num%2==0:        print("Its an even number!")    else:        print("Its an odd number")    choice=input("Do you want to continue (press n to stop):")    if choice=='n':        breakimport randomn=1total_attempts = 0max=0min=99999999for i in range(n):    comp_num = random.randint(1,100)    print("Random: ",comp_num)    attempt = 0    while True:        guess = int(input("Guess the number: "))        #guess = random.randint(1, 100)        attempt+=1        if guess == comp_num:            print("Congratulations! You have guessed it correctly. Attempts = ",attempt)            total_attempts+=attempt            if attempt>max:                max=attempt            if attempt <min:                min=attempt            break        elif comp_num > guess:            print("Sorry! You have guessed low!")        else:            print("Sorry! You have guessed high")print("Avg attempts = ",total_attempts/n)print("Max attempts =",max,"and Minimum attempts = ",min)'''Avg attempts =  99.384Max attempts = 529 and Minimum attempts =  1'''#######import randomn=500total_attempts = 0max=0min=99999999for i in range(n):    comp_num = random.randint(1,100)    print("Random: ",comp_num)    attempt = 0    low,high=1,100    while True:        #guess = int(input("Guess the number: "))        guess = random.randint(low, high)        attempt+=1        if guess == comp_num:            print("Congratulations! You have guessed it correctly. Attempts = ",attempt)            total_attempts+=attempt            if attempt>max:                max=attempt            if attempt <min:                min=attempt            break        elif comp_num > guess:            print("Sorry! You have guessed low!")            low= guess+1        else:            print("Sorry! You have guessed high")            high=guess-1print("Avg attempts = ",total_attempts/n)print("Max attempts =",max,"and Minimum attempts = ",min)'''Avg attempts =  7.522Max attempts = 15 and Minimum attempts =  1'''`
`txt1 = "HELLO"txt2 = 'How are yOU?'# what's your name?print("what's your name?")print('He asked,"Where are you?"')#He asked,"What's your name?"print('''He asked,"What's your name?"''')print("He asked,\"What's your name?\"")txt3 = '''How are you?Where are you?what do you want?'''txt4 = """I am fineI am hereI want nothing"""print(txt4)for ch in txt1:    print(ch)print(txt1+" "+txt2)print(txt1*10)#indexingprint(txt1[0])print(txt1[4])length = len(txt1)print("Total characters = ", length)print(txt1[length-1])print(txt1[-1])print(txt1[length-2])print(txt1[length-3])print(txt1[-3])print(txt1[0]+txt1[1]+txt1[2])print(txt1[0:3])print(txt1[0:4])print(txt1[1:4])print(txt1[2:5])print(txt1[-3:])print(txt1[:])#METHODS ARE INBULT FUNCTIONS OF A CLASSprint(txt1.lower())print(txt2.upper())`
`#String - class# functions specific to classes are called methodsstr1 = "O I see I am fine see you are NICE"str2 = "hello hi"print(str1.islower())print(str2.islower())str3 = str2.upper()print(str3)print(str3.isupper())num1 = input("Enter a number: ")if num1.isdigit():    num1=int(num1)else:    print("Invalid number as input, setting it it zero")    num1 = 0print("Num1 = ",num1)#create username with only alphabets and numbersusername = input("Enter your username: ")if username.isalnum():    print("Username accepted")else:    print("Invalid Username!")print(str1.upper())print(str1.lower())print(str1.title())str1 = "O I see I am fine I see I you are NICE"print("i" in str1)print(str1.find('I'))print(str1.count('I'))print(str1.find('I',3))print(str1.find('I',9))char = "ee"num_pos = str1.count(char)print("Total times char is present = ",num_pos)print("Their positions are: ",end="  ")start_pos = 0for i in range(num_pos):    nxt_val = str1.find(char,start_pos)    print(nxt_val,end= " , ")    start_pos = nxt_val+1print(str1.replace("ee","EE"))words = str1.split("I")print(words)str6 = "I".join(words)print(str6)`
`#LISTl1 = [5,4,"Hello",99,False,100,[20,10, 5]]print(type(l1))print(len(l1))l2 =l1[-1]print(l2[1])print(l1[-1][2])print(l1[1:4]) #4, "hello" 99print("Only Integer values fom List")for i in l1:    if str(i).isdigit():        print(i)print(l1+l2)print(l2*5)`
`list1 = [2,4,6,8,10]list1.insert(2,33)list1.remove(10)  # remove asksprint(list1)# let's simulate Queue behavior: FIFOlist2 = []while True:    print("1. Add Value to the Stack")    print("2. Remove Value from the Stack")    print("3. Exit from the Stack")    ch=input("Enter the operation you want to perform: ")    if ch=="1":        value = input("Enter the member to be added: ")        list2.append(value)        print("Printing the stack:",list2)    elif ch=="2":        list2.pop(0)  # position is entered        print("Printing the stack:", list2)    elif ch=="3":        print("Removing all the values from the queue and terminating it!")        list2.clear()        break    else:        print("Invalid options")#STACK - FILOlist2 = []while True:    print("1. Add Value to the Queue")    print("2. Remove Value from the Queue")    print("3. Exit from the queue")    ch=input("Enter the operation you want to perform: ")    if ch=="1":        value = input("Enter the member to be added: ")        list2.append(value)        print("Printing the queue:",list2)    elif ch=="2":        list2.pop(0)        print("Printing the queue:", list2)    elif ch=="3":        print("Removing all the values from the queue and terminating it!")        list2.clear()        break    else:        print("Invalid options")#WAP to input marks in 3 subjects for 3 students# [[1,2,3], [10, 20,30], [5,0,15]]num_students = 3num_subjects = 3all_data=[]for i in range(num_students):    t_list = []    for j in range(num_subjects):        val = input("Enter the marks in subject "+str(j+1)+" and student "+str(i+1)+": ")        t_list.append(val)    all_data.append(t_list)print("Display all data: ",all_data)l1 = [1,3,6,5,7,7,7]#List is mutablel1[2]=50print(l1)count = l1.count(7)print("Count = ", count)print("Index = ", l1.index(7))#deep copy v shallow copyprint("1. Before")print(l1)l2 = l1   # deep copyl3 = l1.copy()#shallow copyprint("1. AFTER")print("Values in Chapter 1 and Room 1:", l1)print("Values in Chapter 1 and Room 1:", l2)print("Values in Chapter 1 and Room 1:", l3)l1.append(50)l3.insert(100,200)l2. insert(45,20)print("2. AFTER")print("Values in Chapter 1 and Room 1:", l1)print("Values in Chapter 1 and Room 1:", l2)print("Values in Chapter 1 and Room 1:", l3)l1 = [10,40,60,20,40,80]l1.sort()print("Sort: ",l1)l1.reverse()print("Reverse: ",l1)l3=[3]l3.extend(l1) # l3 = l3 + l1print(l3)#l3 = l1 +l2#Assignment: Read marks in 3 subjects for 3 students and find the highest marks in each subject`

## START PLANNING ON BELOW PROJECT WORK

Ignore the libraries to be used instructions above, instead, use Connecting to Database and save and retrive data from the database. You can use SQLITE3 or MYSQL or any database of your choice. You need to implement all the features mentioned.

`#TUPLE - immutabe form of Listt1 = (2,4,6,8,10,12,14,16,18,20)  #packingprint(type(t1))print(t1[4])t2=()print(type(t2))t3=(3,)print(type(t3))for i in t1:    print(i, end="  , ")print()t1 = list(t1)print(type(t1))t1.append(99)t1=tuple(t1)t2 = (3,6,9,12)a,b,c,s = t2print(a)t4=(5,99)t5=(5,99)if t4>t5:    print(t4, "greater")elif t5>t4:    print(t5, "greater")else:    print("Both are same")##Dictionary: there is no defaut order# each member has its own keydict1 ={"Name": "Rohit","Sport":"Cricket",1:"Captain",1:100}print(type(dict1))print(dict1['Name'])print(dict1[1])#Immutable: String, Tuple#Mutable:  List, Dictuinary, Setst_dict = {'City':'Mumbai'}dict1.update(t_dict)print(dict1)dict2 = dict1dict3 = dict1.copy()print("1. Dictionaries")print(dict1)print(dict2)print(dict3)dict1.pop(1)dict3.popitem()print("2. Dictionaries")print(dict1)print(dict2)print(dict3)print("Items (Key,value): ",dict1.items())print("Values: ",dict1.values())print("Keys: ",dict1.keys())dict1.clear()print(dict1)marks_dict={}for i in range(2):    name1 = input("Enter the students name: ")    t_list = []    for j in range(3):        m=int(input("Enter marks: "))        t_list.append(m)    marks_dict.update({name1:t_list})print("Marks details: ")for i,j in marks_dict.items():    print(f"{i} obtained marks: {j}")    list_temp= ['Maths','Science','Social Studies']all_marks = {}student1 = {}.fromkeys(list_temp,-9)all_marks.update(student1)print("All marks: \n",all_marks)for i in all_marks.keys():    marks = int(input("Enter the marks for "+i+" : "))    all_marks[i]=marksprint("All marks are: ",all_marks)`
`#Basic data typesval1 = 5  #intprint(type(val1))val1 = '5'  #strprint(type(val1))val1 = 5.0  #floatprint(type(val1))val1 = True  #bool - True / Falseprint(type(val1))val1 = 5j  #complex - j (square root of -1)print(type(val1))val1 = 4## comparison operators - takes num as input but gives bool as output## logical operators: take bool value as input and gives bool as output# AND: All the values have to be True to be True else its False# True and True = True# T and T and T and T and T and T and F = False# OR: All the values have to be False to be False otherwise its True##  True or False = True## control structure with logical operators, you mean multiple conditionsval1 = 185if val1>0 and val1 <100:    print("Value is between 0 and 100")## Basic graphics, sets, functions,list1 = [5, 5,5,8.3, False,"Hello",[1,6,9]]tup1 = (5, 8.3, False,"Hello",[1,6,9])  #list and tuple have auto index: 0...dict1 = {5:"Hello","Name":"Sachin"}# SET -set1 = {"Apple","Banana"}print(type(set1))print(set1)# sets - union, intersection, difference, symmetric differenceset1 = {2,4,6,8}set2 = {1,3,5,7,6,8}# union - it puts all the values togetherset3 = set1.union(set2)print("Set 3 = ", set3)`
`#SETSset1 = {1,2,3,10,20}set2 = {1,2,3, 50,60}print("UNION: ")#unionset3 = set1.union(set2)print(set3)print(set1 | set2)print("INTERSECTION: ")#set3 = set1.intersection(set2)print(set3)print(set1 & set2)print("DIFFERENCE: Set1 - Set2")#set3 = set1.difference(set2)print(set3)print(set1 - set2)print("DIFFERENCE: Set2 - Set1")#set3 = set2.difference(set1)print(set3)print(set2 - set1)print("SYMMETRIC DIFFERENCE")#set3 = set2.symmetric_difference(set1)print(set3)print(set2 ^ set1)#### update, difference_update, intersection_update, symmetric_difference_update)#without update, the operations result in new sets but with update, existing set is updated### Functions - giving a name to a block of codedef mystatements():  # user defined functions    print("Whats your name?")    print("Where are you going?")    print("How are things?")mystatements()mystatements()mystatements()#below is an example of udf which doesnt take any argument nor does it return any valuedef add_2_num():    num1 = input("Enter a number: ")    num2 = input("Enter another number: ")    sum = num1 + num2    print("total value is",sum)#add_2_num()#this is an example of function returning a value (still no arguments)def add_2_num_ret():    num1 = input("Enter a number: ")    num2 = input("Enter another number: ")    sum = num1 + num2    #print("total value is",sum)    return sum#result = add_2_num_ret()#print("After return value is", result)#example of function that takes argument#TYPE 1 Required positional argumentsdef add_2_num_arg(num1, num2):    sum = num1 + num2    #print("total value is",sum)    return sum#TYPE 2: Default (opp of Required) positional argumentsdef add_2_num_arg1(num1, num2="19"): #num2 is default    sum = num1 + num2    #print("total value is",sum)    return sum#values are mapped from left to rightoutput = add_2_num_arg1("15","89")print("Result from  add_2_num_arg1: ",output)output = add_2_num_arg1("15")print("Result from  add_2_num_arg1: ",output)# TYPE 3: Keyword arguments (non-Positional)output = add_2_num_arg1(num2 = "15",num1 = "89")print("Result from  add_2_num_arg1: ",output)# TYPE 4: Variable length argumentsdef myfun1(*var1, **var2):    print("Var 1 = ",var1)    #Tuple    print("Var 2 = ", var2)   #Dictionarymyfun1(2,4,99,"hello",False,[2,3,4],num2 = "15",num1 = "89")`
`#WAP to count positive numbers entered by a userdef checkPositive(*num): #variable length arguments    total=0    for i in num:        if i >0:            total+=1    return totaldef checkPositive2(num): #variable length arguments        if num >0:            print("Positive")        else:            print("Not Positive")def checkPositive3(num):  # variable length arguments    if num > 0:        return 1    else:        return 0val1 = [13,35,90,-9,0,8]tot = checkPositive(13,35,90,-9,0,8,-8,-6,6)print("Number of positive values = ",tot)val2 = -9result = checkPositive3(val2)if result==1:    print("Number is positive")else:    print("Number is not positive")total = 0val1 = [13,35,90,-9,0,8]for i in val1:    total += checkPositive3(i)print("Total positive values = ",total)#######################def myfactorial(n):    if n<=1:        return 1    else:        return n * myfactorial(n-1)result = myfactorial(-5)print("Factorial is ",result)# return 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1# 2 = 2 * 1!# 1 * 0!`

## Refer Below Youtube channel for details

`val = 5aList = [2,4,5,3,5,6,7,5]count = 0for item in aList:    if item==val:        count=count+1print("Count = ",count)'''import randoma = random.random()  # random value between 0 and 1print(a)b = random.randint(1,3)print(b)a <- 5 #assignment in APSC exam language, in Python: a =5a = 5 # is a equal to 5? in Python a ==5aList <- [2,4,6,8]DISPLAY aList[1]a <- aList[3]aList[2] <- 10  # [2,10,6,8]INSERT(aList, 2,10)  # [2,10,4,6,8]APPEND(aList,20)   # [2,10,4,6,8,20]REMOVE(aList,4)  # [2,10,4,8,20]LENGTH(aList)  #len(aList) - python# In Python we say:for item in alist:    pass#in APSC langFOR EACH item in aLists{}def fun1(n1,n2):    return 1PROCEDURE fun1(n1,n2){    RETURN (1)}'''`
##### Learn Python

DAY 1

`#interpreter - Python, R#compiler - Java, C C++print(5-3)  #adding 5 and 3print()print("5+3=",5+3,"and 5*6=",5*6) #you can use " or 'print(5/0)print("48578wefoiwefue89guaiuodgjadfgj")# comments sdjfhasdufasodihs# mistake#syntax - grammar##mistake`
`print('Hello '      'Good evening')   #single line textprint("Hi")print('''How  are you?''')print("""I am fine""")    #multi linenum1 = 4print("Data type of num1 is ",type(num1))'''variable names has to begin with either an alphabetor with _. It can contain, numbers, alphabets and _ '''num2 = 3print(4+3)print("5+4=",5+4)''' howareyoui am fine'''# Five basic datatypes in Pythonnum1 = 4print("Data type of num1 is ",type(num1))num1 = 4.0print("Data type of num1 is ",type(num1))num1 = 4jprint("Data type of num1 is ",type(num1))num1 = "4"print("Data type of num1 is ",type(num1))num1 = Trueprint("Data type of num1 is ",type(num1))cost = 25.897896876;quant = 50;total = cost * quant;print("Cost of each book is \$",cost,"so for",quant,"copies, the total cost is \$",total)print(f"Cost of each book is \${cost:.3f} so for {quant} copies, the total cost is \${total:.1f}")#format stringpl = "Virat"count = "India"position="captain"print(f"{pl:<15} is {position:.^15} of {count:>15} and plays cricket")pl = "Bywangengeger"count = "Zimbabwe"position="Wicket-keeper"print(f"{pl:<15} is {position:.^15} of {count:>15} and plays cricket")#WAP to input l and b of a rectangle and calculate area and perimeter#WAP to input s of a square and calculate area and perimeter#WAP to input r of a circle and calculate area and circumference#\ is called excape sequence#\n within the quotation will break into different line#\t - tab space - give tab spaceprint("Cost of each book is \$ 25.897896876 \nso for 50 copies, the total cost is \$ 1294.8948438")print("\\n is for newline")`
`#Arithemtic operations - mathematical operations: + - * / //  **  %num1 = 10   #Assignment operatornum2 = 20print(num1 + num2)print(num1 - num2)print(num1 * num2)print(num1 / num2)print(num1 // num2) #integer divisionprint(num1 ** num2) # exponent-powerprint(num1 % num2)  # modulus - remainder#Comparison operators - can take any value but output is always bool# ==  != <   >    <=   >=num1 = 10num2 = 20print(num1 == num2)  #Fprint(num1 != num2)  #Tprint(num1 > num2)   #Fprint(num1 < num2)   #Tprint(num1 >= num2)  #Fprint(num1 <= num2)  #T#logical operators: input is boolean and output is also bool##  and  or  not##and will give False even if one value is False rest everything True##or will give True even if one value is True rest everything Falseprint(True and False)print(True or False)print(num1 == num2 or num1 != num2 and num1 > num2 or num1 < num2 and num1 >= num2 or num1 <= num2)#T# 2 +8 +21+10 = 41avg=4if avg>=50:    print("Result: PASS")    print("i m still in if")else:    print("Result: FAIL")num1 = -99if num1 >0:    print("Its a positive number")elif num1<0:    print("Its a negative number")else:    print("Its a zero")print("Thank you")avg = 65'''avg>=90: Grade Aavg>=80: Grade Bavg>=70: Grade Cavg>=60: Grade Davg>=50: Grade Eavg<50: Grade F'''`
`a,b,c = 10,12,8if a>=b:    #either a is greater or equal    if a>=c:        print(f"{a} is greatest value")    else:        print(f"{c} is greatest value")else:    #b is greater    if b>=c:        print(f"{b} is greatest value")    else:        print(f"{c} is greatest value")#Assignmnt : Modify the above program to display 3 number is descending order#loops - repeating#FOR - how many times#range(a,b,c) - generates value from a upto b and increasing by c#range(5,19,4) - 5, 9,13,17#range(4,19,5) - 6,11,17#WHILE - repeating based on condition`
`#IF ELIF ELSEavg = 78'''>90 - Grade A, 80-90: B, 70-80: C, 60-70: D  50-60: E  40-50: F<40: Failed'''if avg>=90:    print("Grade A")elif avg>=80:    print("Grade B")elif avg>=70:    print("Grade C")elif avg>=60:    print("Grade D")elif avg>=50:    print("Grade E")elif avg>=40:    print("Grade F")else:    print("Grade: Fail")#if you get more than 40: print - Passavg=55if avg>=40:    print("Pass")    if avg >= 90:        print("Grade A")        if avg>=95:            print("You win President's medal!")    elif avg >= 80:        print("Grade B")    elif avg >= 70:        print("Grade C")    elif avg >= 60:        print("Grade D")    elif avg >= 50:        print("Grade E")    else:        print("Grade F")else:    print("Grade: Fail")# LOOPS - repeating same statements more than onceprint("Hello")# print(), type(), input(), int()- str(), bool(),float()sum = 5+3print(type(sum))sum = str(sum)print(type(sum))#range(a,b,c) = a:start number (including) b:ending (excluding) c:incrementrange(3,9,2) # 3,5,7range(3,7)  # c is default =1:  3,4,5,6range(4)  #a=0, c=1 (default): 0,1,2,3#For: exactly how many timesfor i in range(3,9,2):    print(i, 'hello')for i in range(3, 6):    print(i, 'hello')for i in range(3):    print(i, 'hello')for i in range(1,6,2):    print(i)for i in range(5):    print("*",end=" ")print()'''* * * * * * * * * * * * * * * * * * * * * * * * * '''for j in range(5):    for i in range(5):        print("*",end=" ")    print()'''*  * *  * * *  * * * *  * * * * * '''for j in range(5):    for i in range(j+1):        print("*",end=" ")    print()#While: dont know how many times but you the condition`
`for counter2 in range(5):    for counter in range(5):        print("*",end=" ")    print()'''* * * * * * * * * * * * * * *'''for counter2 in range(5):    for counter in range(counter2+1):        print("*",end=" ")    print()'''* * * * * * * * * * * * * * * '''for counter2 in range(5):    for counter in range(5-counter2):        print("*",end=" ")    print()'''    *    * *   * * *  * * * * * * * * *'''for counter2 in range(5):    for counter in range(5-counter2):        print(" ",end="")    for counter3 in range(counter2+1):        print("*",end=" ")    print()for j in range(1,11):    for i in range(1,11):        print(f"{i:<2} * {j:<2} ={j*i:>3}", end="   ")    print()`
`for j in range(1,11):    for i in range(1,11):        print(f"{i:>2} * {j:>2} = {j*i:>3}", end="  ")    print()#While loop:#print values from 1 to 10i=1while i<=10:    print(i)    i+=1 #i=i+1i=1ch="y"while ch=="y":    print(i)    i+=1 #i=i+1    ch=input("Hit y to continue or anyother key to stop: ")total = 0for i in range(3):    marks = int(input("Enter marks: "))    total+=marksprint("Total marks = ",total,"and average is: ",total/3)#ch="y"total=0counter = 0while ch=="y":    marks =int(input("Enter the marks: "))    counter+=1    total+=marks    ch=input("Enter y to continue")print("Total marks = ",total,"and average is: ",total/counter)#total=0counter = 0while True:  #infinite    marks =int(input("Enter the marks: "))    counter+=1    total+=marks    ch=input("Enter y to continue")    if ch!='y':        breakprint("Total marks = ",total,"and average is: ",total/counter)#total=0counter = 0while True:  #infinite    marks =int(input("Enter the marks: "))    if marks<0:        continue    counter+=1    total+=marks    ch=bool(input("Enter anykey to stop"))    if ch:        breakprint("Total marks = ",total,"and average is: ",total/counter)`
`#Stringsstr1 = "Hello"str2 = 'hi there'print(str1)print(str2)str3 = '''good eveninghow are you?hows going?are you alright?'''str4 = """take care"""print(str3)print(str4)str2 = 'hi there'print(str1 + str2)print(str1*4)#read a portion of the textprint(str2[3])print(str2[0:4])print(str2[:4])print(str2[-1])print(str2[-3])print("Total: ", len(str2))print(str2[-3:])for i in str1:    print(i)str1 = "I am DOing well"print(str1.lower())print(str1.upper())print(str1.title())#strings are immutable - you cant edit them, you can overwrite#str1[1] = "K"str1 = "hello"print(str1.islower())print(str1.isdigit())num1 = input("Enter a number: ")if num1.isdigit():    num1 = int(num1)    print(num1)else:    print("Invalid number")txt1 = "hello123"print(txt1.isalnum())#split, search, join`
`str1 = 'HELLO How ARE YOU'str2 = "hello"#Strings are immutable - they cant be editedprint(str1.lower())print(str1.upper())print(str1.title())print(str2.isalnum())num1 = input("Enter your age: ")if num1.isdigit():    num1 = int(num1)else:    print("Invalid number, try again!")val2=" a "print(val2.isspace())print(val2.isalpha())# islower(), isupper(), istitle()print(val2[1])#val2[1]="A" - not possible as strings are immutablestr3 = "how are you oops I mean you yOu"print("check: ", 'w a' in str3)print(str3.count('you'))print(str3.index('you'))#res=str3.split("o")print("split: ",res)txt = "o".join(res)print(txt)`
`# List - store multiple values -# they need not be of same datatypel1 = [5,10,15,"Hello", False, [4,5,6]]  #listprint(type(l1))print(l1[1])  #second memberprint(l1[3][1])print([1,2,3] + [4,5,6])print([3,6,9] * 3)print("Length of List = ",len(l1))for i in l1:    print(i)l2 = [12,34,23,54,89,76,49,29]sum=0for i in l2:    sum+=iprint("Sum of the values in the list = ",sum)`
`l2 = [12,34,23,54,55,76,55,29]l2[1]=55print(l2)print(l2.count(55))ind=0print("Indices: ",end=" ")for i in range(l2.count(55)):    index = l2.index(55,ind)    print(index,end=" , ")    ind = index+1print()l3 = l2 # copy by = DEEP COPYl4 = l2.copy()  #copy by copy method - SHALLOW COPYprint("1. Copying")print("L2: ",l2)print("L3: ",l3)print("L4: ",l4)l2.append(99) #append adds element at the endl2.insert(0,9) #insert adds element at the given position (pos,element)print("2. Copying")print("L2: ",l2)print("L3: ",l3)print("L4: ",l4)l2.pop(2)l2.remove(54)print("After remove: ",l2)l2.reverse()print(l2)l2.sort()print("Sorted: ",l2)l2.sort(reverse=True)print("Sorted: ",l2)l2.clear()print(l2)## TUPLES -  immutable version of listt1 = (2,)print(type(t1))`
`l1 = ['hello',25,45,False,[2,4,6], 45]l9 = [False,[2,4,6], 45,'hello',25,45]# TUPLE - linear ordered immutable collectiont1 = ('hello',45,False,[2,4,6])print(type(t1))t2 = tuple(l1)l2 = list(t1)print(t2)print(type(t2))print(t2.count(45))print(t2.index(45))t3 = ()print("first t3: ",type(t3))t3 = (3,)print("second t3: ",type(t3))t3 = (3,5)print("third t3: ",type(t3))print(t2[2])#Dictionary - key:value mutable collectiond1 = {}print("Type of d1 is ",type(d1))d1={"First":10, 5:"Hello", "Completed":False}print(d1[5])t={"City":"Hyderabad"}d1.update(t)print(d1)t1={5:"Learn Python"}d1.update(t1)print(d1)####emp_id = [1001,1002,1009,1015]incentive = [30,32,35,39]emp_incentive = {1001:30, 1002:32,1009:35,1015:39}#How much incentive should be given to emp with id 1009print(emp_incentive[1009])print(incentive[emp_id.index(1009)])pos = emp_id.index(1009)print(incentive[pos])#keys, values, itemsprint(d1.values())print(d1.keys())print(d1.items())print("Printing values")for i in d1.values():    print(i)print("Printing keys")for i in d1.keys():    print(i)print("Printing items")for i,j in d1.items():    print("Key:",i," and value: ",j)`
`# SET - sets - linear unordered mutable collection - doesnt allow duplicateset1 = {'Apple','Grapes','Banana','Orange'}print(type(set1))set1.add('Cherry')set2 = {"Pineapple","Mango","Apple","Orange"}# two ways to removeset1.remove("Banana")set1.discard("Apple")#set1.remove("Rose") - if value isnt there throws errorset1.discard("Rose")  #doesnt throw errorprint("1. Set1: ",set1)set1.pop()set1.update(set2)  #unionprint("2. Set1: ",set1)set1.clear()print("3. Set1: ",set1)### SET FUNCTIONS  ####set1 = {'Apple','Grapes','Banana','Orange'}set2 = {"Pineapple","Mango","Apple","Orange"}#UNIONprint("UNION")print(set1 | set2)print(set1.union(set2))print("INTERSECTION")print(set1 & set2)print(set1.intersection(set2))print("DIFFERENCE")print(set1 - set2)print(set1.difference(set2))print(set2 - set1)print(set2.difference(set1))print("SYMMETRIC DIFFERENCE")print(set1 ^ set2)print(set2 ^ set1)print(set1.symmetric_difference(set2))#update() will update the values of main set# set1.union(set2) - this gives a new set as output# set1.update(set2) - set1 is updated with the values# union - update()set1.update(set2)print(set1)# intersection: intersection_update()set1.intersection_update(set2)print(set1)# difference_update()set1.difference_update(set2)print(set1)#symmetric_difference_update()set1.symmetric_difference_update(set2)print(set1)# set, list, tuple => they are inter-convertiblelist1 = [3,6,9,12,3,6,9,3,6,3]list1 = list(set(list1))print(list1)set1 = {'Apple','Grapes','Banana','Orange'}set1 = list(set1)set1.index("Grapes")set1 = set(set1)set1 = tuple(set1)set1 = set(set1)print(set1.issubset(set2))#list1 = [3,6,9,12,3,6,9,3,6,3]list2 = [3,6,9,12,15]#does all the elements of list2 present in list1?t_list1 =set(list1)if set(list1).issuperset(set(list2)):    print("yes, list2 value exists in list1")else:    print("No, list2 has additional elements")`
`# Basic data types (stores only 1 value) - int, float, str,bool and complex# Collections (stores multiple values - 1D) - list, tuple,dictionary, set# functions - own functions - user defined functions# print(), input(), type(), int(), str(), len() : in-built functions (developers of python have already written for us)# we will learn to write our own functions#first part of writting function is to Define the meaning- functiondef mytext(val1, val2,val3):#required positional argument    print("Hello How are you today?")    print("Where are you going?")    print("I am fine.",val1)def mytext2(val1=0, val2=0,val3=9):#default positional argument    print("Hello How are you today?")    print("Where are you going?")    print("I am fine.",val1)    print("Values are: ",val1,val2,val3)#demo keyword (non-positional) argumentsdef mytext3(val1, val2,val3):#default positional argument    print("Hello How are you today?")    print("Where are you going?")    print("I am fine.",val1)    print("Values are: ",val1,val2,val3)#default argument (non-required) & keyword argument (non-positional)mytext(5,10,0)print("Done with one time calling now calling second time")mytext2(20,4,10)mytext2(20,4)mytext2(10,5,1)mytext3(val3=10,val1=9,val2=8)mytext3(100, val3=9,val2=8)#print()# numpy, pandas (Multi-D)def isPositive(val1):    #result = "Positive"  # "+ve" / 1    if val1 >0:        return 1    else:        return 0  #print("Its not Positive")res = isPositive(100)if res==1:    print("Its positive, now lets go ahead building our logic")else:    print("STOP! STOP! STOP!")isPositive(-100)isPositive(90)`
`#Functions with input arguments, return values#Input arguments - required positional arguments, default, keywords argumentsdef fun1(a,b):    passa=fun1(b=3,a=2)#variable length argumentsdef myfun2(*a, **c):    print("A has: ",a)    print("C has: ",c)myfun2(5,6,100,8,11,"Hello",name="Sachin",city="Mumbai",Sports="Cricket")#lambda, annoynomous or one-line - functionsa=lambda n1,n2,n3:n1*n2+n3print(a(2,3,4))#map, filter, reduce - special properties for LISTlist_ft = [20000,29000,30000,32000,30000,25000,33000,18000,11000,19000]list_mt=[]for i in list_ft:    list_mt.append(i/3.1)print(f"Data in metres = {list_mt}")list_mt_2 = list(map(lambda i:i/3.1,list_ft))print(f"Data in metres = {list_mt_2}")#Filterlist_filter = list(filter(lambda i:i%10000==0,list_ft))print("Filtered values: ",list_filter)#Filter 2list_filter = list(filter(lambda i:i<20000,list_ft))print("Filtered values: ",list_filter)`
# reduce
import functools
list1 = [5,10,15,20,25,30,35] #140
val = functools.reduce(lambda a,b:a+b,list1)
print(“Result = “,val)

#functions – they are independent: print(), len(), input(), int()
#methods – they are part of a class: list (append,sort..), dictionary(copy…),string()
#in class, you have to first create an object
list1 = [] # create an object
#list1.append()

#function, you dont have to create any object – object of what??

# function
def onename():
print(“I am fine”)
print(“I am here”)
print(“I will stay here”)
def somename():
print(“What are you doing here?”)
print(“How are you?”)
return 100,200,300
x,y=2,3
def adding(x,y): # required positional arguments
print(“X = “,x,“y=”,y)
return x+y
def subtracting(a,b):
return a-b

result = subtracting(result,5)
#print(“Result is”,result)

b = somename()
print(“b = “,b)
a = print(“Hello”)
print(“a = “,a)
somename()

print()

def mycalc1(x,y,z): #required positional arguments
sub = z-x+y
print(“X, Y, Z are “,x,y,z)

r1,r2 = mycalc1(5,10,20)
print(“Result are”,r1,r2)

def mycalc2(x,y,z=15): # (x & y) are required, z is default (non-required): all of them are positional arguments
sub = z-x+y
print(“X, Y, Z are “,x,y,z)

r1,r2 = mycalc2(5,10,20)
print(“Result are”,r1,r2)

r1,r2 = mycalc2(5,10)
print(“Result are”,r1,r2)
#Function declaration for Required positional arguments
def myfun1(a,b,c):
print(f”A = {a}, B={b}, C={c} )
return a+b+c

def myfun2(a,b,c=25): #c is default, a and b are required, all are positional
print(f”A = {a}, B={b}, C={c} )
return a+b+c

myfun1(50,100,15) #calling required positional
myfun2(10,20) # c is default
#for non positional (keyword arguments) – depends upon the way we call
myfun1(c=50,a=100,b=15)

myfun2(b=23,a=54)

# function that will return true if a number is prime or else False
def isPrime(num):
prime = True
for i in range(2,num):
if num %i==0:
prime = False
break
return prime
result = isPrime(15)
if result:
print(“Number is Prime”)
else:
print(“Number is not a Prime”)

# generate range of prime numbers
start, end = 5000,6000
for j in range(start,end+1):
result = isPrime(j)
if result:
print(j,end=“, “)
print()

#variable length arguments
def mySum1(*var,**var2): # * to accept variable number of arguments
”’
This is a demo function to show the working of variable number of arguments
:param var: will read as tuple
:param var2: will read as dictionary
:return: sum of elements in the tuple
”’
# *var would be a tuple
sum=0
for i in var: #(5,2,1,3,8,6,4)
sum+=i # sum = sum+i
return sum

output = mySum1()
print(“Output = “, output)
output = mySum1(2,3)
print(“Output = “, output)
output = mySum1(5,10,0,10,15,20,25,30,35,40,10,20,name=“Sachin”,game=“Cricket”,fame=“Batsman”)
print(“Output = “, output)

print(mySum1.__doc__) #doc string (documentation)
print(print.__doc__)
print(input.__doc__)

#
def try_recur(n):
print(“Hello”)
if n>2:
try_recur(n-1)

try_recur(50)

##function to find factorial of a number
def myFactorial(num):
prod = 1
for i in range(1,num+1):
prod *=i # prod = prod * i
return prod

fact = myFactorial(5)
print(“Factorial = “,fact)

def myRFacto(num):
if num==1:
return 1
else:
return num*myRFacto(num-1)

fact = myRFacto(5)
print(“Factorial = “,fact)

#### Filename: P5.py

#recursive functions
def facto(n):
if n==1:
return 1
return n * facto(n-1) # 10 * 9!

#decorators
def myfunc1():
print(“This is my func1”)

def myfunc2():
print(“This is my func2”)

def myfunc3(abc):
print(“This is my func3 line 1”)
abc()
print(“This is my func3 line 2”)

if __name__ ==“__main__”:
val = facto(5)
print(“Factorial is “,val)
myfunc3(myfunc1)

#### Filename: P6.py

# import option 1
import MyPack1.modul1
import p5

val = p5.facto(5)
print(val)
# import option 2: with alias
import p5 as MyTopChoices
MyTopChoices.myfunc3(MyTopChoices.myfunc1)

# import option 3
from p5 import myfunc3,myfunc2,myfunc1
myfunc2()

# importing package
import MyPack1.modul1 as p1m1
p1m1.myfunc3(10)

from MyPack1 import *
MyPack1.modul1.myfunc2(2,5,8)

## using random module
import random
print(“Random val = “,random.random())
print(“Random integer = “,random.randint(1,100))
#Object Oriented Programming
#class & objects
#apple – class, hold it, eat it -object

# create a class – define some properties
# to use a class – you have to create an object
# object will have properties of the class and few more

class Book:
num_of_books = 0 #class variable
publisher = “Eka Publishers”
def __init__(self,book_title, pages=100,book_author=“”): #object function
self.pages = pages #object variables
self.title = book_title
self.author = book_author
Book.num_of_books +=1

def display_details(self):
print(“Title: “,self.title)
print(“Author: “,self.author)
print(“Pages: “,self.pages)
print(“Total books = “,Book.num_of_books)

@classmethod
def total_count(cls):
print(“Total books = “,cls.num_of_books)

b1 = Book(“Python Programming”, 350,“Swapnil Saurav”) #object is created – __init__() is called automatically
b2 = Book(“Machine Learning”, 550,“Swapnil Saurav”)
b3 = Book(“Data Visualization”, 250,“Swapnil Saurav”)
#b1.create_book(“Python Programming”, 350,”Swapnil Saurav”) #object function is called
b2.display_details()
print(type(b1))
class MyMathOps:
def __init__(self,n1,n2):
self.n1 = n1
self.n2 = n2
self.subtract = –1
self.multiply = –1
self.divide = –1

def mysubtract(self):
self.subtract = self.n1 – self.n2
def mymultiply(self):
self.multiply = self.n1 * self.n2
def mydivide(self):
self.divide = self.n1 / self.n2

class SpecialOps:
def __init__(self,num):
self.number = num
print(“Num = “,num)

def isPrime(self):
prime = True
for i in range(2,self.number//2 + 1):
if self.number % i ==0:
prime = False
break
return prime

if __name__ ==“__main__”:
op1 = MyMathOps(5,15)
#

op2 = MyMathOps(5,10)
print(op1.mymultiply())
op2.mydivide()
print(op1.divide)

l1 = [4,5,6,7]
l1.append(5)
sp1 = SpecialOps(11)
print(“Prime: “,sp1.isPrime())
import p3
from p3 import MyMathOps as mp

c1 =mp(10,20)

class ShoppingCart:
def __init__(self):
self.myshoppingcart = []

self.myshoppingcart.append(item)

sc1 = ShoppingCart()
while True:
print(“1. View my cart \n2. Add to my cart\n3. Remove from my cart\n4. Exit”)
if ch==“1”:
if len(sc1.myshoppingcart)==0:
else:
print(“Products in your cart are: “,sc1.myshoppingcart)
elif ch==“2”:
item = input(“Enter the product you want to add: “)
elif ch==“3”:
pass
elif ch==“4”:
break
else:
print(“Invalid option”)
class ShoppingCart:
def __init__(self):
self.myshoppingcart = []

each_item = {}
item_name = input(“Enter the product Name: “)
item_size = input(“Enter the product Size: “)
item_color = input(“Enter the product Color: “)
each_item ={“Item”:item_name,“Size”:item_size,“Color”:item_color}
self.myshoppingcart.append(each_item)
#print(self.myshoppingcart)
def display_prod(self):
print(“Item Size Color”)
for i in self.myshoppingcart:
for k,j in i.items():
if k==“Item”:
print(f”{j:<10}, end=” “)
else:
print(j,end=” “)
print()

sc1 = ShoppingCart()
while True:
print(“1. View my cart \n2. Add to my cart\n3. Remove from my cart\n4. Exit”)
if ch==“1”:
if len(sc1.myshoppingcart)==0:
else:
sc1.display_prod()
elif ch==“2”:
elif ch==“3”:
pass
elif ch==“4”:
break
else:
print(“Invalid option”)
MASTERLIST = [{“ItemCode”: 101,“Item”:“Shirt”,“Price”:28.2},
{“ItemCode”: 102,“Item”:“Bag”,“Price”:18.2},
{“ItemCode”: 103,“Item”:“Book1”,“Price”:38.2},
{“ItemCode”: 104,“Item”:“Watch”,“Price”:58.2},
{“ItemCode”: 105,“Item”:“Shoes”,“Price”:128.2},
{“ItemCode”: 106,“Item”:“Laptop”,“Price”:1028.2}]
class ShoppingCart:
def __init__(self):
self.myshoppingcart = []

each_item = {}
item_name = input(“Enter the product Name: “)
not_in_list = True
for items in MASTERLIST:
if item_name==items[“Item”]:
not_in_list = False
if not_in_list:
print(“Sorry, That Item is Out of Stock!”)
else:
item_size = input(“Enter the product Size: “)
item_color = input(“Enter the product Color: “)
item_quantity = int(input(“Enter the product Quantity: “))
each_item ={“Item”:item_name,“Size”:item_size,“Color”:item_color,“Quantity”:item_quantity}
self.myshoppingcart.append(each_item)
#print(self.myshoppingcart)
def display_prod(self):
print(“Item Size Color Quantity”)
for i in self.myshoppingcart:
for k,j in i.items():
print(f”{j:<10}, end=” “)
print()

def remove_prod(self):
item_name = input(“Enter the product name to remove: “)
not_in_list = True
for items in self.myshoppingcart:
if item_name == items[“Item”]:
self.myshoppingcart.remove(items)
not_in_list = False

if not_in_list:
print(“Sorry, That Item is not in your shopping cart!”)
else:
print(“Item is now removed from your shopping cart!”)

def generate_receipt(self):
print(“Item Size Color Quantity Price”)
print(“=======================================================”)
item_cost = 0
price = 0
grand_total = 0
for i in self.myshoppingcart:
for k,j in i.items():
for master_list in MASTERLIST:
if j==master_list[“Item”]:
price=master_list[“Price”]

print(f”{j:<10}, end=” “)
if k==“Quantity”:
item_cost = j*price
grand_total+=item_cost
print(f”{round(item_cost):<10}, end=” “)
print()
print(“——————————————————-“)

print(” TOTAL: \$”+str(round(grand_total)))
print(“=======================================================”)

if __name__==“__main__”:
sc1 = ShoppingCart()
sc2 = ShoppingCart()
while True:
print(“1. View my cart \n2. Add to my cart\n3. Remove from my cart\n4. Generate My Receipt\n5. Exit”)
if ch==“1”:
if len(sc1.myshoppingcart)==0:
else:
sc1.display_prod()
elif ch==“2”:
elif ch==“3”:
sc1.remove_prod()
elif ch==“4”:
if len(sc1.myshoppingcart)==0:
else:
sc1.generate_receipt()
elif ch==“5”:
break
else:
print(“Invalid option”)
”’
WAP to implement Stack properties:
”’
class MyStack:
def __init__(self):
self.mystack=[]
self.mystack.append(val)
def delete(self):
self.mystack.pop()
def display(self):
print(“Values in the stack are:\n,self.mystack)

# create the object
stack1 = MyStack()
stack1.display()
stack1.delete()
stack1.display()
stack1.delete()
stack1.delete()
stack1.display()

##### Data Analytics Jan 2023

https://learn.swapnil.pwLearn and Practice Python

Refer Python notes here for installation of software:   https://learn.swapnil.pw

DAY 1 Notes:

` Click here to Read the notes`

## DAY 3 VIDEO HERE

### DAY 4 Video - Range, IQR, BoxPlot, Variance, Standard Deviation

`#Scipy - scientific pythonimport scipy#Permutation & Combination## Both are about choosing r things from given n things## default case replacement is not allowed## Permutation order is important - n! / (n-r)!## Combination is where order is not important - n! /(n-r)! r!## 6 B & 4 G - I need to form a committe with 4 members, there has to be atleast a Boy## 3B - 1G  - x1## 2B - 2 G - x2## 1B - 3G - x3## 4B - x4## total= x1 + x2 + x3 + x4from scipy.special import comb, permsum = 0cnt = comb(6,3,repetition=False) * comb(4,1)sum+=cntcnt = comb(6,2) * comb(4,2)sum+=cntcnt = comb(6,1) * comb(4,3)sum+=cntcnt = comb(6,4) * comb(4,0)sum+=cntprint("Total combination possible is ",sum)#Permutation# 4 coats, 5 waist coats, 6 caps - 3 members#abcd   lmnopcnt1 = perm(4,3)cnt2 = perm(5,3)cnt3 = perm(6,3)print("Total permutation = ", cnt1*cnt2*cnt3)############################################## OPTIMIZATION PROBLEM  ########################################### There is a company that makes: laptops (profit = 750) and desktops (1000)#objective is to Maximize profit# x = no. of laptops =  750x# y = no. of desktops = 1000x#solution = 750x + 1000y## constraint 1 =Processing chips = 10,000 = requires 1 chip each## ==>   x + y  <= 10,000## Memory chipset 1 GB size - Latops need 1GB memory , Desktops need 2GB## ==>   x + 2y <= 15,000##Time to assemble 1 laptop = 4min, desktop = 3min, total time  25,000 min available## ==>  4x + 3y <=25,000##  x+y <= 10##  x+2y <=15##  4x+3y <=25`

`import numpyfrom scipy.optimize import linprog, minimize,LinearConstraintl = 1  #num of laptopsd = 1  #num of desktopsprofit_l = 750profit_d = 1000total_profit = l*profit_l + d * profit_dobjective =[-profit_l, -profit_d]  #minimization problem##  x+y <= 10##  x+2y <=15##  4x+3y <=25lhs_cons = [[1,1],            [1,2],            [4,3]]rhs_val = [10000,           15000,           25000]bnd = [(0,float("inf")),(0,float("inf"))]optimize_sol = linprog(c=objective, A_ub=lhs_cons, b_ub=rhs_val,bounds=bnd,method="revised simplex")if optimize_sol:    print(optimize_sol.x[0], optimize_sol.x[1])    print("Total profit = ",optimize_sol.fun*-1)print("==================")lhs_cons=[]rhs_val=[]while True:    l1 = int(input("Enter the value for notebook: "))    l2 = int(input("Enter the value for desktop: "))    y1 = int(input("Enter the value for Y: "))    lhs_cons.append([l1,l2])    rhs_val.append(y1)    ch=input("Do you have more constraints: ")    if ch!="y":        breakprint("LHS Constraints = ",lhs_cons)print("RHS Values = ",rhs_val)#Pandas - dataframe - is a way to read data in table format (row & column)import pandas as pddata = [["Sachin",47],["Virat",33],["Rohit",35]]df1 = pd.DataFrame(data,columns=['Name','Age'])print(df1)`

## VIDEO 7 - Watch the video here

`import pandas as pdimport sqlite3con_str = sqlite3.connect("LibraryMS.db")cursor = con_str.cursor()q1 = "select * from students"rows = cursor.execute(q1)list2 = list(rows.fetchall())con_str.close()data_df = pd.DataFrame(list2)print(data_df)list1=[["Q1 2022",2300,3400,1900],       ["Q2 2022",2300,3400,1900],       ["Q3 2022",2300,3400,1900],       ["Q4 2022",2300,3400,1900]]print(list1)columns=["Quarter","Apple","Banana","Oranges"]ind=["Jan-March","April-June","Jul-Sep","Oct-Dec"]data_df = pd.DataFrame(list1, columns=columns,index=ind)print(data_df)# df.iloc  & locprint(data_df.iloc[0:3,-3:])print(data_df.iloc[0:3,[1,3]])print(data_df.loc[['Jan-March',"Oct-Dec"],['Apple',"Oranges"]])import pandas as pddata_df1 = pd.read_csv("https://raw.githubusercontent.com/swapnilsaurav/Dataset/master/user_usage.csv")print(data_df1)data_df2 = pd.read_csv("https://raw.githubusercontent.com/swapnilsaurav/Dataset/master/user_device.csv")print(data_df2)`

## VIDEO DAY 8 - Watch the Video Here

`import pandas as pdimport unicodedataimport nltk#remove accent functionsdef remove_accent(text):    txt = unicodedata.normalize('NFKD',text).encode('ascii',errors='ignore').decode('utf-8')    return txt#getting the stop words setSTOP_WORDS = set(remove_accent(word) for word in nltk.corpus.stopwords.words('portuguese'))#defining a function to perform NLP processesdef nlp_analysis_1(comment):    #nlp 1. convert to lowercase    comments = comment.lower()    #nlp 2. remove accents    comments = remove_accent(comments)    #nl 3. tokenize the content    tokens = nltk.tokenize.word_tokenize(comments)    return tokensreviews = pd.read_csv("C:\\Users\\Hp\Downloads\\OnlineRetail-master\\order_reviews.csv")#print(reviews['review_comment_message'])#Step 1: removed the null valuescomment_text = reviews[reviews['review_comment_message'].notnull()].copy()print(comment_text.columns)comment_text['review_comment_message'] = comment_text['review_comment_message'].apply(nlp_analysis_1)print(comment_text['review_comment_message'])`

## SQL Learning

livesql.oracle.com

Select * from hr.employees;

select first_name, last_name,hire_date,salary from hr.employees;

select first_name FirstName, last_name,hire_date,salary from hr.employees;

select first_name || ‘ ‘|| last_name  FULLNAME,hire_date,salary from hr.employees;

select first_name || ‘ ‘|| last_name  FULLNAME,hire_date,salary *12 ANNUAL_SALARY from hr.employees;

select first_name || ‘ ‘|| last_name  FULLNAME,hire_date,salary *12 ANNUAL_SALARY from hr.employees order by Last_name;

select first_name || ‘ ‘|| last_name  FULLNAME,hire_date,salary *12 ANNUAL_SALARY

from hr.employees

order by Hire_date, Last_name;

select first_name || ‘ ‘|| last_name  FULLNAME,hire_date,salary *12 ANNUAL_SALARY , COMMISSION_PCT

from hr.employees

order by COMMISSION_PCT NULLS First;

select first_name “First Name”, last_name,hire_date,salary from hr.employees;

select first_name, last_name,hire_date,salary from hr.employees where salary>=9000;

select first_name, last_name,hire_date,salary from hr.employees

where salary>=9000 and salary <=12000;

select first_name, last_name,hire_date,salary from hr.employees

where salary BETWEEN 9000 and 12000;

select first_name, last_name,hire_date,salary, DEPARTMENT_ID from hr.employees

where salary>=9000 or DEPARTMENT_ID =80;

select distinct salary from hr.employees;

— Tendulkar  9000

— Tendulkar  15000

## VIDEO OF LECTURE

##### January 2023 Evening
`#interpreter: Python Rprint("Hello")print(5+4)print('5+4=',5+4,'so what even 4+5=',4+5)a=5  # variableprint("type of a in line #5 is ",type(a))print("a = ",a)#type of data (datatype) is integer - numbers without decimal point -99999,999a = 5.0  #data type is float - numbers with decimal point, -999.5, 0.0, 99.9print("type of a in line #9 is ",type(a))a = 5j # i in Maths - square root of -1print("type of a in line #11 is ",type(a))#square root of -4 = 2iprint("a*a = ",a*a) #a=9print("a = ",a)#function - print(), type()# ,#variable - constant# is comment - Python these are not for you. these for usa="HELLO" #text - in python type - string  strprint("type of a in line #21 is ",type(a))`

a = True #boolean = True or False
#print(type(a))
print(“type of a in line #24 is “,type(a))
#compiler: C. C++ Java

#Android – STORY MANTRA – after you login
#Technical -> Python, R ,

`print("Hello")  #fist lineprint('irte834t8ejviodjgiodfg0e8ruq34tuidfjgiodafjgodafbj')`

print(5+3)
print(‘5+3’)
print(‘5+3=’,5+3,“and 6+4=”,6+4)
#whatever is given to print() shall be displayed on the screen
#syntax – rules (grammar)

## DAY 1 (Second batch) - Click to Access

`#print(), type()#comments#data types: int, float, str,bool, complex#variables - will accept alphabets, numbers and _price = int(51.9876);quantity = 23;total_cost = price * quantity;print(total_cost);print("Given price is",       price,"and quantity bought is",quantity,"so total cost will be",total_cost)# f stringprint(f"Given price is {price:.2f} and quantity bought is {quantity} so total cost will be {total_cost:.2f}")player = "Sachin"country = "India"position = "Opener"print(f"{player:<15} is a/an {position:>15} and plays for {country:^15} in international matches.")player = "Mbwangebwe"country = "Zimbabwe"position = "Wicket-keeper"print(f"{player:<15} is a/an {position:>15} and plays for {country:^15} in international matches.")#Sachin     is a/an Opener        and plays for India     in international matches.#Mbwangebwe is a/an Wicket-keeper and plays for Zimbabwe  in international matches.#escape sequence  \print("abcdefghijklm\nopqrs\tuv\wx\y\z")# \n - newline# \n is used for newline in Pythonprint("\\n is used for newline in Python")# \\n is actually give you \n in Pythonprint("\\\\n is actually give you \\n in Python")`

## DAY 2 Video - format String

`# Data types - 5 main typesvar1 = 5print(type(var1))  # int - integer  -9999  0  5var1 = 5.0print(type(var1))  #float - numbers with decimalvar1 = 5jprint(type(var1))   #complex - square root of minus 1var1 = True  #False  #boolprint(type(var1))var1 = "hello"  #str - stringprint(type(var1))#input()  - is used to read a value from the usernum1 = float(input("Enter a number: "))print(f"{num1} is the number")print("Datatype of num1 is ",type(num1))var2 = "50"#implicit and explicit conversion# arithmetic Operations that can be performed on# numeric (int, float, complex): i/p and o/p both are numbersnum1 = 23num2 = 32  #assign 32 to num2print(num1 + num2) #additionprint(num1 - num2) #print(num1 * num2) #print(num1 / num2) #print(num1 // num2) #integer division: it will give you only the integer partprint(num1 ** num2) # Powerprint(num1 % num2) # mod modulus - remainder## comparison operator : input as numbers and output will be bool##  >  < == (is it equal?)  != ,  >=   <=num1 = 23num2 = 32num3 = 23print(num2 > num3)  # Tprint(num3 > num1) # Fprint(num2 >= num3)  #T - is num2 greater than or equal to num3 ?print(num3 >= num1)  # Tprint(num2 < num3)  # Fprint(num3 < num1)  # Fprint(num2 <= num3) # Fprint(num3 <= num1) #  Tprint(num2 == num3)  # Fprint(num3 != num1)  # F# Logical operator:  and or not# prediction 1:  Sachin or Saurav will open the batting - T# prediction 2:  Sachin and Saurav will open the batting  - F# actual: Sachin and Sehwag opened the batting#Truth table - on boolean values# AND Truth Table:###  T and T =>  T###  T and F => F###  F and T => F###  F and F => F# OR Truth Table:###  T or T =>  T###  T or F => T###  F or T => T###  F or F => F# NOT## not True = False## not False = True## Assignment 1: Get lenght and breadth from the user and calculate## area (l*b) and perimeter (2(l+b))## Assignment 2: Get radius of a circle from the user and calculate## area (pi r square) and curcumference (2 pi radius)`

## DAY 3 video

`#Logical operator: works on bool and returns bool only# and: all values have to be True to get the final result as True# or: anyone value is True, you get the final result as True# 5 * 99 * 7 * 151 * 45 * 0 = 0# 0 + 0 + 0 + 0+1 = 1print(True and True and False or True or True and True or False or False and True and True or False)num1 = 5num2 = 8print(num1 !=num2 and num1>num2 or num1<=num2 and num2>=num1 or num1==num2 and num1<num2)num3 = bin(18)  #0b10010print(num3)print("hex(18) = ",hex(18))   #0x12print("oct(18): ", oct(18))   #0o22print("hex(0b1101111) = ",hex(0b1101111))print("int(0b1101111) = ",int(0b1101111))#BITWISE Operators# left shift  (<<) / right shift (>>) operators work on only binary numbersprint("56 << 3 = ",56 << 3) #output  #111000000print(bin(56))print(int(0b111000000)) #448print("56 >> 4 = ",56>>7)  ## & and in bitwiseprint("23 & 12 = ",23 & 12)  #4print("23 | 12 = ",23 | 12)  #31print(bin(23))   #10111print(bin(12))   #01100#& 00100print(int(0b100))#               | 11111print(int(0b11111))# |  or in bitwisenum1 = 10#positive#negative# area of a circle = pi * r**2  (3.14 = pi)# circunference = 2 * pi * r`

## DAY 4 Video

`# Conditionsavg = 30if avg >=40:    print("Pass")  #indentation    print("Congratulations!")else: #incase of IF getting False condition    print("You have failed")    print("try again")#avg > 90 - Grade A#avg 80 to 90 - Grade B# avg 70 to 80 - Grade C#avg 60 to 70 - Grade D#avg 50 to 60 - Grade E#avg 40 to 50 - Grade F#avg <40 - Grade Gavg=30if avg>=40:    print("Pass")  # indentation    print("Congratulations!")    if avg>=90:        print("Grade A")        if avg >=95:            print("You win President Medal")    elif avg>=80:        print("Grade B")    elif avg >=70:        print("Grade C")    elif avg >=60:        print("Grade D")    elif avg >=50:        print("Grade E")    else:        print("Grade F")else:    print("You have failed")    print("try again")    print("Grade G")avg = 90if avg <40:    print("Grade G")elif avg <50:    print("Grade F")elif avg <60:    print("Grade E")elif avg <70:    print("Grade D")elif avg <80:    print("Grade C")elif avg <90:    print("Grade B")else:    print("Grade A")print("Thank you so much")`

## DAY 5 VIDEO

`num = 5if num > 0:    print("Number is positive")    if num % 2 == 1:        print("Its Odd")    else:        print("Its even")        if num % 3 == 0:            print("It is divisible by both 2 and 3. It is also divisible by 6")        else:            print("Its divisible by 2 but not 3")elif num == 0:    print("Neither Positive not negative")else:    print("Its Negative")#loops - repeating multiple lines of code#Python - 2 types of loops- one when you know how many times to repeat - FOR#repeat until some condition true  WHILE# range(a,b,c) #generates range of values - start from a, go upto b(exlusive), c=increment#range(2,6,2) = 2,4#range(5,9) = (2 val indicate a&b - c is default 1) => 5,6,7,8#range(5) = (its b, a is deafult 0 and c is default 1) = ?for i in range(3,9,2):    print("HELLO",i)for i in range(10):    print(i*2+2,end=", ")print("\n")for i in range(5):    print("*",end=" ")print("\n=================")'''* * * * * * * * * * * * * * * * * * * * * * * * * '''for j in range(5):    for i in range(5):        print("*",end=" ")    print()`

## DAY 6 VIDEO

`#for loopfor i in range(5):    print(i)print()for j in range(5):    for i in range(5):        print("*",end=" ")    print()'''*  * *  * * *  * * * * * * * * * '''for j in range(5):    for i in range(j+1):        print("*", end=" ")    print()'''* * * * * * * * * * * * * * * '''for j in range(5):    for i in range(5-j):        print("*", end=" ")    print()num,sum = 5,0while num <103:    sum+=num    print(num)    num+=5print("Sum = ",sum)i=0while True:    i=i+1    print("Hello, i is ",i)    ch=input("Enter y to stop: ")    if ch=='y':        break    print("One more hello")    if i%5==0:        continue    print("Another hello but not to print when its multiple of five")`

## Video Day 7

`a,b,c = 10,12,8if a>=b:    #either a is greater or equal    if a>=c:        print(f"{a} is greatest value")    else:        print(f"{c} is greatest value")else:    #b is greater    if b>=c:        print(f"{b} is greatest value")    else:        print(f"{c} is greatest value")#Assignmnt : Modify the above program to display 3 number is descending order#loops - repeating#FOR - how many times#range(a,b,c) - generates value from a upto b and increasing by c#range(5,19,4) - 5, 9,13,17#range(4,19,5) - 6,11,17#WHILE - repeating based on condition#############################Stringsstr1 = 'Hello how are you'str2 = "Im fine"str3 = '''How are you todayare you fine hope you feel better'''str4 = """I am fine todayexpecting to do wellI am feeling better now"""print(str3)print(str1 + " "+str2)print(str2*10)print("Lo" in str1)#indexing: slicing dicingprint(str1[0])print(str1[4])print(str2[-1])print(str1[6:9])print("->",str1[-11:-8])print("First 3 values: ",str1[:3])print("last 3 values: ",str1[-3:])#print(str1.upper())#string immutable - you cant edit the string#str1[0]="K"  TypeError: 'str' object does not support item assignmentstr1 = "K"+str1[1:]print(str1)`

## Video Day 8

`str1 = "hello how are you?"print("last 3 characters: ",str1[-3:])for i in str1:    print(i)print(str1.islower())print(str1.isupper())print(str1.isalpha()) #str1 = "509058585855"print(str1.isdigit())print(str1.isspace())str1 = "hello how are you?"print(str1.title())print(str1.lower())print(str1.upper())str2 = "I am fine how are you doing today"target = "aeiou"count=0for i in str2:    if i.lower() in target:        count+=1print("Total vowels: ",count)result = str1.split()print(result)result2 = str1.split('ow')print(result2)result3 = "OW".join(result2)print(result3)print(str1.find('o',0,5))print(str1.replace("hello","HELLO"))print(str1)#strings are immutable`

## VIDEO 9

`var1 = 5 # integerprint(type(var1))var1 = 5.0 # floatprint(type(var1))var1 = "5" # stringprint(type(var1))var1 = 5j # complexprint(type(var1))var1 = True # boolprint(type(var1))#Arithematic operationsnum1 = 5num2 = 3print(num1 + num2)print(num1 - num2)print(num1 * num2)print(num1 / num2)print(num1 // num2)  #integer divisionprint(num1 % num2)  #modulo - remainderprint(num1 ** num2)  # power##Once I had been to the post-office to buy stamps of five rupees,# two rupees and one rupee. I paid the clerk Rs. 20,# and since he did not have change, he gave me three more# stamps of one rupee. If the number of stamps of each type# that I had ordered initially was more than one,# what was the total number of stamps that I bought.total = 30stamp_5_count = 2 #>=stamp_2_count = 2 #>=stamp_1_count = 2+3 #>=total_by_now = stamp_5_count * 5 + stamp_2_count * 2 + stamp_1_count * 1print(total_by_now, "is total by now")accounted_for = total - total_by_nowstamp_5_count = stamp_5_count + accounted_for //5accounted_for = accounted_for %5stamp_2_count = stamp_2_count + accounted_for //2accounted_for = accounted_for %2stamp_1_count = stamp_1_count + accounted_forprint("You will end up getting:")print("Number of 5 Rs stamp = ",stamp_5_count)print("Number of 2 Rs stamp = ",stamp_2_count)print("Number of 1 Rs stamp = ",stamp_1_count)total_value = stamp_5_count*5 + stamp_2_count* 2+ stamp_1_count*1print("Net difference between amount and stamp value: ",total-total_value)#Comparison operators:  <   >   <=   >=   ==  !=num1 = 7num2 = 7print("is num1 equal to num2? ", num1==num2) #== ??print("is num1 not equal to num2?", num1!=num2)print("is num1 greater than num2? ", num1>num2)print("is num1 greater than or equal to num2?", num1>=num2)print("is num1 less than num2? ", num1<num2)print("is num1 less than or equal to num2?", num1<=num2)#Logical operators:  and (*)  or (+) not# pred: sachin and sehwag will open the batting# actual:  sachin and sourav opened the batting - wrong# pred: sachin or sehwag will open the batting# actual:  sachin and sourav opened the batting - rightprint(True and True) #Trueprint(True and False) #rest is all Falseprint(False and True)print(False and False)print(True or True) #Trueprint(True or False) #Trueprint(False or True)  #Trueprint(False or False)  #Falseprint(not True)  #num1 = 7num2 = 7print("=>",num1==num2 and num1!=num2 or num1>num2 or num1>=num2 and num1<num2 and num1<=num2)# F# conditional checknum1 = 100#perform check - IF conditionif num1>0:    print("Its positive")`
`#We use conditions when we need to control the flow of the programavg = 88#avg: 90 to 100: A , 80-90: B, 70-80: C ,  60-70: D#50 to 60: E, 40 to 50: F, <40: Failed# if ... elif.. elseif avg >=90:    print("Pass")    print("Grade A")elif avg>=80:    print("Pass")    print("Grade : B")elif avg>=70:    print("Pass")    print("Grade : C")elif avg>=60:    print("Pass")    print("Grade : D")elif avg>=50:    print("Pass")    print("Grade : E")elif avg >=40:    print("Pass")    print("Grade : F")else:    print("Grade : Failed")## Assignment - use Nested condition: Take 3 numbers and put them## in increasing order:##  14, 13 13 =>  13,13,14# 19, 39,29  =>  19,29,39avg = 94if avg>=40:    print("Pass")    if avg >= 90:        print("Grade A")        if avg>=95:            print("You win President's medal!")    elif avg >= 80:        print("Grade : B")    elif avg >= 70:        print("Grade : C")    elif avg >= 60:        print("Grade : D")    elif avg >= 50:        print("Grade : E")    else:        print("Grade : F")else:    print("Grade : Failed")num1= -0if num1>0:    print("Number is positive")elif num1<0:    print("Number is negative")else:    print("0 - neither positive not negative")# FOR Loop: when you know how many times to run the loop# range(a,b,c) : start from a (including), go upto b (exclusive), increment by crange(3,9,2) # 3,5,7 ... 8print("For loop example 1:")for i in range(3,9,2):    print(i)print("For loop example 2:")for i in range(3, 6): #range(a,b) => c=1 (default)    print(i)print("For loop example 3:")for i in range(3):  # range(b) => a=0 (default) c=1 (default)    print(i)# WHILE Loop: you dont know the count but you know when to stop`
`#LIST:  linear ordered mutable collectionl1 = [5,9,8.5,False,"Hello",[2,4,6,"Welcome"]]print("Length: ",len(l1))print(type(l1))print(type(l1[1]))print(l1[-3])print(l1[-2][2])print(l1[-1][-1][-1])l2 = [10,20,30]print(l1+l2)print(l2 * 3)files = ['abc.csv','xyz.csv','aaa.csv','bbb.csv','ccc.csv','ddd.csv']for i in files:    print("I have completed",i)#inbuilt methods for listprint("1. L2 = ",l2)l2.append(40)l2.append(60)  #append will add members at the end#insert()l2.insert(3,50)l2.insert(3,70)print("2. L2 = ",l2)l2.remove(50)  #remove the given elementprint("3. L2 = ",l2)l2.pop(3)#l2.clear()print("4. L2 = ",l2)l2 = [5,10,15,20,25,30,35,40]print(l2.count(5))l1 = [100,200,300]l1.extend(l2)  #  l1 = l1 + l2l1[0] = 999print("L1 = ",l1)l1.sort(reverse=True)print("A. List1: ",l1)l1.reverse()print("B. List1: ",l1)l2 = l1  #copy method 1 - deep copy: adds another name l2 to l1l3 = l1.copy()  #copy method 1print("C1. List 1: ",l1)print("C1. List 2: ",l2)print("C1. List 3: ",l3)l1.append(33)l2.append(44)l1.append(55)print("C2. List 1: ",l1)print("C2. List 2: ",l2)print("C2. List 3: ",l3)str1 = "hello"str2 = str1.upper()print(str2)print(str1)#l1m1= int(input("marks 1:"))m2= int(input("marks 1:"))m3= int(input("marks 1:"))m4= int(input("marks 1:"))m5= int(input("marks 1:"))total = m1+m2+m3+m4+m5avg = total/5print(m1,m2,m3,m4,m5)print("Total marks = ",total," and Average = ",avg)total = 0for i in range(5):    m1 = int(input("marks:"))    total+=m1avg = total/5print("Total marks = ",total," and Average = ",avg)marks=[]total = 0for i in range(5):    m1 = int(input("marks:"))    marks.append(m1)    total+=m1avg = total/5print(marks[0],marks[1],marks[2],marks[3],marks[4])for i in marks:    print(i,end="  ")print("\nTotal marks = ",total," and Average = ",avg)`

## Video lecture

`############################str1 = 'HELLO'str2 = "I am fine"str3 = '''Where are you going?How long will you be here?What are you going to do?'''str4 = """I am hereI will be here for next 7 daysI am going to just relax and chill"""print(type(str1),type(str2),type(str3),type(str4))print(str1)print(str2)print(str3)print(str4)# What's you name?str5 = "What's your name?"print(str5)#He asked,"Where are you?"str6 = 'He asked,"Where are you?"'print(str6)#He asked,"What's your name?"#escape sequence  \print('''He asked,"What's your name?"''')print("He asked,\"What's your name?\"")print('nnnnn\nnn\tnn')print("\FOlder\\newfolder")# \n is used to print newline in pythonprint("\\n is used to print newline in python")# \\n will not print newline in pythonprint("\\\\n will not print newline in python")str1 = "Hello You"str2 = "There"print(str1 + str2)print(str1 *5)for i in str1:    print("Hello")#indexingprint(str1[2])print("last element: ",str1[4])print("last element: ",str1[-1])print("second element: ",str1[-8])print("ell: ",str1[1:4])print("ell: ",str1[-8:-5])print("First 3: ",str1[:3])print("First 3: ",str1[:-6])print("Last 3: ",str1[6:])print("Last 3: ",str1[-3:])#Methods - exactly same as your functions - only difference is they are linked to a classimport timestr1 = "HELLO"print(str1.replace("L","X",1))sub_str = "LL"str2 = "HELLO HOW WELL ARE YOU LL"cnt = str2.find(sub_str)print("Count = ",cnt)if cnt<0:    print("Sorry, no matching value hence removing")else:    print("Value found, now replacing")    for i in range(5):        print(". ",end="")        time.sleep(0.5)    print("\n")    print(str2.replace(sub_str,"OOOO"))out_res = str2.split("LL")print("Output Result = ",out_res)out_str = "LL".join(out_res)print(out_str)print(str2.title())print(str2.lower())print(str2.upper())str3 = 'hello how well are you ll'print(str3.islower())print(str3.isupper())num1 = input("Enter a number: ")if num1.isdigit():    num1 = int(num1)else:    print("Invaid input")ename = input("Enter your first name: ")if ename.isalpha():    print("Your name is being saved...")else:    print("Invaid name")#WAP to count of vowels in a sentencepara1 = "Work, family, and endless to-do lists can make it tough to find the time to catch up. But you'll never regret taking a break to chat with your friend, Frost reminds us. Everything else will still be there later."sum=0for l in para1:    if l=='a' or l=='A' or l=='e' or l=='E' or l=='i' or l=='I' or l=='o' or l=='O' or l=='u' or l=='3':        sum+=1print("Total vowesl = ",sum)sum=0for l in para1.lower():    if l=='a' or l=='e'  or l=='i' or l=='o' or l=='u':        sum+=1print("Total vowesl = ",sum)sum=0for l in para1.lower():    if l in 'aeiou':        sum+=1print("Total vowesl = ",sum)##########  LIST#LIST#collection of linear ordered itemslist1 = [1,2,3,4,5]print(type(list1))print("Size = ",len(list1))print(list1[0])print(list1[-1])print(list1[3])print(list1[:3])print(list1[-3:])print(list1[1:4])for i in list1:    print(i)print([2,3,4]+[6,4,9])print([2,3,4]*3)str2 = "A B C D A  B C A B A "print(str2.count("D"))print(list1.count(3))l1 = [2,4,6,8]print(l1.append(12))print(l1)l1[0]=10print(l1)l1.insert(2,15)print(l1)# Queue: FIFO# Stack: LIFOif 16 in l1:    l1.remove(16) #takes in value to removel1.remove(15)print(l1)l1.pop(1) #indexprint(l1)#################while False:    print("Queue is: ",l1)    print("1. Add\n2. Remove\n3. Exit")    ch=input("Enter your choice: ")    if ch=="1":        val = input("Enter the value: ")        l1.append(val)    elif ch=="2":        l1.pop(0)    elif ch=="3":        break    else:        print("Try again!")while False:    print("Stack is: ",l1)    print("1. Add\n2. Remove\n3. Exit")    ch=input("Enter your choice: ")    if ch=="1":        val = input("Enter the value: ")        l1.append(val)    elif ch=="2":        l1.pop(-1)    elif ch=="3":        break    else:        print("Try again!")l2 = l1  #they become samel3 = l1.copy()print("1. List1 = ",l1)print("1. List2 = ",l2)print("1. List3 = ",l3)l1.append(33)l2.append(44)l3.append(55)print("2. List1 = ",l1)print("2. List2 = ",l2)print("2. List3 = ",l3)l1.extend(l3)print(l1)print(l1.count(6))sum=0marks=[]for i in range(3):    m = int(input("Enter marks in subject "+str(i+1)+": "))    marks.append(m)    sum+=mprint("Sum is ",sum, "and average is ",sum/3)print("Marks obtained is ",marks)#THREE STUDENTS AND THREE SUBJECTS:allmarks=[]for j in range(3):    sum=0    marks=[]    for i in range(3):        m = int(input("Enter marks in subject "+str(i+1)+": "))        marks.append(m)        sum+=m    print("Sum is ",sum, "and average is ",sum/3)    print("Marks obtained is ",marks)    allmarks.append(marks)print("All the marks are: ",allmarks)# All the marks are:  [[88, 66, 77], [99, 44, 66], [44, 99, 88]]# find the highest marks of each subject#Tuple - linear order immutable collection#strings are also immutabletuple1 = (1,3,1,4,1,5,1,6)print(type(tuple1))print(len(tuple1))print(tuple1.count(1))print(tuple1.index(4))print(tuple1[2])for i in tuple1:    print(i)t1 = list(tuple1)t1.append(55)t1=tuple(t1)t2 = (2,4,6,8)   #packing#unpackinga,b,c,d,e = t2print(a,b,c,d)#packing`

## Video Tuple

`# Dictionarydict1 = {1: "Sachin Tendulkar","Runs": 50000, 'City':'Mumbai','Teams':['Mumbai','Mumbai Indians','India']}print(dict1['Teams'])dict2 = {'100s':[50,20,1]}dict1.update(dict2)print(dict1)print(dict1.values())print(dict1.keys())print(dict1.items())#Dictionary are mutabledict1.pop('City')print(dict1)dict1.popitem()print(dict1)dict3 = dict1.copy()  #shallow copydict4 = dict1  #deep copyall_details={}while True:    roll = input("Enter Roll Number of the Student: ")    marks=[]    for i in range(3):        m = int(input("Enter the marks: "))        marks.append(m)    temp={roll:marks}    all_details.update(temp)    ch=bool(input("Enter null to continue: "))    if ch:        breakprint("All details: ",all_details)for i, j in all_details.items():    sum=0    for a in j:        sum+=a    print(f"Total marks obtained by {i} is {sum} and average is {sum/3:.1f}")###  SET'''A B C D ED E F G HHow many total (union): 8How many common(intersection): 2Remove set2 values from set1: (set1 - set2): 3'''`

## VIDEO HERE

`set1 = {2,4,6,8,10,12}  #neither have duplicate values nor there is any orderprint(type(set1))set2 = {3,6,9,12}print(set1 | set2)print(set1.union(set2))#print(set1.update(set2))  #meaning union_update#print(set1)print(set1 & set2)print(set1.intersection(set2))#print(set1.intersection_update(set2))#print(set1)print(set1 - set2)print(set1.difference(set2))#print(set1.difference_update(set2))#print(set1)print(set1^set2)print(set1.symmetric_difference(set2))#print(set1.symmetric_difference_update(set2))#print(set1)####### Functions#defining a functiondef sometxt():    print("Hello")    print("how are you?")    print("I am fine thank you!")    return "Great"print(sometxt())a= sometxt()print(a)#functions that return values v doesnt return values`

## SETS and Intro to Function Video

`# function taking input arguments /  pass - parametersdef function1(x,y,z):  #required positional arguments    print("Value of X: ",x)    print("Value of Y: ", y)    print("Value of Z: ", z)def function2(x,y=15,z=30):  #default positional arguments    print("Value of X: ",x)    print("Value of Y: ", y)    print("Value of Z: ", z)def function3(x,*y,**z):    print("Value of X: ", x)    print("Value of Y: ", y)    print("Value of Z: ", z)function3(20, 2,4,6,8,10,12,14,16,18,20, fruit="Apple",calorie=150)a=5b=6c=9function1(a,b,c)  #parametersfunction2(12)function2(z=30,x=12)  #keywords (non-positional)`

## VIDEO- Function Types Intro

`#Functionsdef func1(num1,num2):    print("Number 1 = ", num1)    print("Number 2 = ", num2)    add = num1 + num2    print("Addition = ",add)    return adddef func2(num1,num2=100):    print("Number 1 = ", num1)    print("Number 2 = ", num2)    add = num1 + num2    print("Addition = ",add)    return add#variable length argumentsdef alldata(num1, num2, *var1, **var2):    print("Number 1 = ",num1)    print("Number 2 = ", num2)    print("Variable 1 = ", var1)    print("Variable 2 = ", var2)if __name__ =="__main__":    result = func1(5, 10)  # required positional arguments    result = func2(5)  # num1 is required / num2 is default & positional arguments    print("Result of addition is", result)    result = func2(num2=5, num1=25)  # keyword arguments (non-positional)    print("Result of addition is", result)    alldata(5, 83, 12, 24, 36, 48, 60, name="Sachin", city="Pune")`

## VIDEO Functions and Module in Python

`# class - definition# class str - defining some properties to it like split(), lower()# object is the usable form of classstr1 = "hello"#creating a class called Library#in that I added a function called printinfo()# self: indicates function works at object levelclass Library:    #class level variable    myClassName = "Library"    #__init__ - it has predefined meaning (constructor), called automatically    #when you create an object    def __init__(self):        name = input("Init: What's your name?")        self.name = name  # self.name is object level    # object level method    def askinfo(self):        name = input("What's your name?")        #self.name = name #self.name is object level    #object level method    def printinfo(self):        myClassName="Temp class"        print(f"{Library.myClassName}, How are you Mr. {self.name}?")#create objectl1 = Library()l2 = Library()l3 = Library()#l1.askinfo()#l2.askinfo()#l3.askinfo()l2.printinfo()l3.printinfo()l1.printinfo()`