L O A D I N G ## ACCESS ALL VIDEOS FROM HERE (YOUTUBE PLAYLIST)

Day 1:

Installation:

Python:  https://learn.swapnil.pw/python/pythoninstallation

 Pycharm:  https://learn.swapnil.pw/python/pythonides

R & RStudio:   https://swapnil.pw/uncategorized/installating-r-studio

https://www.mckinsey.com/featured-insights

`print("terterterg feererg eryey erytey eytytyt",end='\n')print(10+5);print("10+5+3+1");print(10+5+3+1)print("10+5+3+1 =",10+5+3+1, "and 5 + 4 + 95 =", 5+4+95);# \n is used to move the content to new lineprint('Hello',end='. ')print("How are you",end='. ')print("Thank you",end='\n')  #I am printing thank you here'this is a sample content print("Thank you")''''multilinetext'''print(''' this is a sample text''')print("\n is use for newline") #printing text is 2 different linesprint("\\n is use for newline") # \\ will be read as \########################################num1 = 18+4+2+10print(num1)print(num1)print(num1)print(num1)quantity = 13cost = 19total = quantity * costprint(total)#output: The cost of each pen \$19 so the total cost of 17 pens will be \$323print("The cost of each pen \$",cost,"so the total cost of",quantity,"pens will be \$",total)#using f string - use variables within strings - variable should be in {}print(f"The cost of each pen \${cost} so the total cost of {quantity} pens will be \${total}")# basic variables#integer#float#string#bool#complex` `#data typesa = 50  #int - numbers without decimalprint("a = 50 => ", type(a))a = 50.0  #float - numbers decimalprint("a = 50.0 => ", type(a))a = "50"  #str - textprint("a = '50' => ", type(a))a = True  # or False - 2 values , boolprint("a = True => ", type(a))a = 5j  #j is square root of -1print("a = 5j => ", type(a))print(a*a)#Operatorsprint("Arithematic operations")a=5b=8print(a+b)print(a-b)print(a*b)print(b/a) #float as outputprint(a**b) #** power/exponentialprint(a//b)  #integer divisionprint(b//a)  #integer divisionprint(a%b)  # 5print(b%a)print("Conditional Operators")#input as integer/float - output will be boola=8  #assignment, assigning the value 5 to ab=8print(a>b) #is a greater than bprint(a<b)print(a>=b)print(a<=b)print(a==b) # == asking a questionprint(a!=b)  #is a not equal to b`

`#Logical operators: I/P: Bool and O/P: Bool# P1: Sachin and Dravid will open the batting# P2: Sachin or Dravid will open the batting# A: Sachin and Sehwag opened the batting -#AND - even one condition is FALSE - entire thing would be False#OR - even one condition is TRUE - entire thing would be TRUEa = 10b = 20print("a>b or b>a and b!=a:  ",not(a>b or b>a and b!=a))print("not b==a:  ",not b==a)# TRUE#membership: inl1 = [3,4,5,6,7]print(l1)print(type(l1))print(5 not in l1)#convert into different number systemsa= 10 #integer - decimal number systemprint(bin(a))b=0b10print("b = ",int(b))#hex for hexadecimal (0x5050) and oct for octal (0o) - number systemsprint(oct(b))print(hex(b))###### example 1marks1 = 89marks2 = 90marks3 = 56marks4 = 67marks5 = 78sum = marks1 + marks2+marks3 + marks4 + marks5avg = sum/5print(f"Total marks obtained in 5 subjects is {sum} and average is {avg} %")###### example 2marks1 = input("Enter marks in Subject 1: ")marks1 = int(marks1)marks2 = int(input("Enter marks in Subject 2: "))marks3 = 56marks4 = 67marks5 = 78sum = marks1 + marks2+marks3 + marks4 + marks5avg = sum/5print(f"Total marks obtained in 5 subjects is {sum} and average is {avg} %")# Conditional statementsif avg>=50:    print("You have passed")    print("In IF")    print("Hello")    print("hi")else:    print("You have failed")print("Thank you")###Assignment 1: Input a number from the user and Check if the number is positive or not##Assignment 2: Input number of sides from the user and check if its triangle or not`

`n=4  #s2 = 0 s1 =5if n<3:    print("Invalid Shape")elif n==3:    print("Its a triangle")elif n==4:    s1 = int(input("Enter length: "))    s2 = int(input("Enter breadth: "))    if s1==s2:        print("Its a square")        if s1==0:            print("Area is not possible")        else:            print("Area is: ",s1*s2)    else:        print("Its a rectangle")        if s1==0:            print("Area is not possible")        else:            if s2==0:                print("Area is not possible")            else:                print("Area is: ",s1*s2)elif n==5:    print("Its a pentagon")    s1 = int(input("Enter length: "))    s2 = int(input("Enter breadth: "))    if s1 == s2:        print("Its a square")        if s1 == 0:            print("Area is not possible")        else:            print("Area is: ", s1 * s2)    else:        print("Its a rectangle")        if s1 == 0 or s2==0:            print("Area is not possible")        else:            print("Area is: ", s1 * s2)elif n==6:    print("Its a hexagon")    s1 = int(input("Enter length: "))    s2 = int(input("Enter breadth: "))    if s1 == s2:        print("Its a square")        if s1 == 0:            print("Area is not possible")        else:            print("Area is: ", s1 * s2)    else:        print("Its a rectangle")        if s1 == 0:            print("Area is not possible")        elif s2==0:            print("Area is not possible")        else:            print("Area is: ", s1 * s2)elif n==7:    print("Its a heptagon")elif n==8:    print("Its an octagon")else:    print("Its a complex shape")#Assignment: Program to find sum and avg of 5 marks# and assign grade on the basis on:# avg > 90: A#avg >75: B#avg >60: C#avg >50: D#avg >40: E#avg<40: F`

`#Loops- repeat given block of code#For loop - exactly how many times to repeatfor i in range(1,10,2):  #range(start - included,end-excluded,increment): 1,3,5,7,9    print(i,":Hello")for i in range(3, 6):  # range(start - included,end-excluded,increment=1): 3,4,5    print(i, ":Hello")for i in range(3):  # range(start=0,end-excluded,increment=1): 0,1,2    print(i, ":Hello")sum=0for i in range(5):    marks = int(input("Enter marks: "))    sum+=marksavg = sum/5for i in range(5):    print("*",end=" ")print()'''* * * * ** * * * ** * * * ** * * * ** * * * *'''for j in range(5):    for i in range(5):        print("*",end=" ")    print()print("------------------\n")'''* * * * ** * * * * * * * * * '''for j in range(5):    for i in range(5-j):        print("*",end=" ")    print()print("------------------\n")'''** ** * ** * * * * * * * *'''for j in range(5):    for i in range(1+j):        print("*",end=" ")    print()print("------------------\n")'''    *   * *  * * * * * * * * * * * *'''#Whilei=0while i<5:    print("Hello")    i+=1#adding 2 numbers till user says yesch='y'while ch=='y':    a=30    b=50    print("Sum is 80")    ch=input("type y to continue, anyother key to stop: ")#rewriting same program using While Truewhile True:    a = 30    b = 50    print("Sum is 80")    ch = input("type y to continue, anyother key to stop: ")    if ch!='y':        break#lets write a program to print addition of 2 numbers only when they are even#otherwise ignore, continue till user wantswhile True:    n1 = int(input("Enter first number: "))    if n1%2==1:        continue  #continue will take you the beginning of the loop    n2 = int(input("Enter second number: "))    if n2 % 2 == 1:        continue    sum = n1 + n2    print("Sum is ",sum)    ch=input("Hit enter to continue, anyother key to stop: ")    if len(ch)!=0:        break   #break will throw you out of the loop`

Assignments

1.     # Assignment 1: Modify the Total Avg marks calculation program to do it for 5 students
# Assignment 2: Modify your Voting program (eligible to vote or not) to a repeat it for multiple input until
# user wants to continue

1. Write a Python program that computes the factorial of an integer.
2. Program to find sum N natural numbers
3. Write code to display and count the factors of a number
4. Program to check if eligible to vote in India
5. Enter marks of 3 subjects for 5 students and grade them. Check for data validity and use BREAK and CONTINUE where necessary
6. Check the type of a Triangle: Isosceles, Equilateral, Scalene, Right Angle
7. Input 3 numbers and re-arrange them in ascending order. Use BOOLEAN
`#STRINGSname1 = "Sachin"#first characterprint(name1)  #0 is for first characterprint(name1) #3rd charactersize = len(name1)print(name1[size-1])  #last characterprint(name1[-1]) #last characterprint(name1[1:4])  #2,3,4 th charactersprint(name1[:3])  #no val on left of : means its zeroprint(name1[3:6])  #last 3 charactersprint(name1[size-3:size])  #last 3 charactersprint(name1[-6:-3])  #first 3 charactersprint(name1[-size:3-size])  #first 3 charactersprint(name1[-3:])  #last 3 char - no val on right of :mean go till lastprint("For loop")for i in name1:    print(i)for i in range(len(name1)):    print(f"the chracter at the index {i} is {name1[i]}")for i in enumerate(name1):    print(i)for i,j in enumerate(name1):    print(f"the chracter at the index {i} is {j}")print("S" in name1)name2 = "Tendulkar"print(name1 + " " + name2)print((name1 +" ")* 4)`

`#STRINGSname1 = "Sachin"#first characterprint(name1)  #0 is for first characterprint(name1) #3rd charactersize = len(name1)print(name1[size-1])  #last characterprint(name1[-1]) #last characterprint(name1[1:4])  #2,3,4 th charactersprint(name1[:3])  #no val on left of : means its zeroprint(name1[3:6])  #last 3 charactersprint(name1[size-3:size])  #last 3 charactersprint(name1[-6:-3])  #first 3 charactersprint(name1[-size:3-size])  #first 3 charactersprint(name1[-3:])  #last 3 char - no val on right of :mean go till lastprint("For loop")for i in name1:    print(i)for i in range(len(name1)):    print(f"the chracter at the index {i} is {name1[i]}")for i in enumerate(name1):    print(i)for i,j in enumerate(name1):    print(f"the chracter at the index {i} is {j}")print("S" in name1)name2 = "Tendulkar"print(name1 + " " + name2)print((name1 +" ")* 4)`
`# String methodsval1 = "Sachin 10Dulkar"print(val1.isalnum())print(val1.islower())print(val1.istitle())val2 = "12345"print(val2.isdigit())#lower upper titleprint("Second set of functions")val3 = "how ARE you doiNG todaY?"print(val3.upper())print(val3.lower())print(val3.title())#findtxt_to_search = "Are"val4 = val3.lower()print(val4.find(txt_to_search.lower()))print(val3.replace("ARE","is"))val3 = val3.lower().replace("are","is")print(val3)#split and joinval3 = "how ARE  you are doiNG todaY?"print(val3.split())val4 = "HOW|ARE|YOU|DOING|TODAY"print(val4.replace("|"," "))val4_list = val4.split("|")val6_str = " ".join(val4_list)print(val6_str)val7 = "      how ARE               you doiNG todaY?   "val7_strip = val7.strip()print(val7_strip)val_cnt = val3.lower().count("area")print(val_cnt)` `# LISTstr1 = "Hello"print(str1)# str1 = "Y" #this is not possible# strings are called as immutable data typeslist1 = [50, 4, 5.5, "Hello", True]print(type(list1))print(len(list1))print(list1)print(type(list1))for i in list1:    print(i)for i in range(len(list1)):    print(list1[i])l1 = [1, 2, 3, 4]l2 = [10, 20, 30]l3 = l1 + l2print("Adding two list: ", l3)print("Multiply: ", l2 * 3)print(30 not in l2)print(l2)l2 = "Thank You"  # lists are mutableprint(l2)sum = 0marks = []for i in range(0):    m1 = int(input("Enter marks: "))    sum += m1    marks.append(m1)print("Total marks", sum)# append will add at the end# insert - pos and value: value is added at the given posmarks.insert(2, 11)  # [11marks.insert(2, 22)  # [11,22]marks.insert(2, 33)  # [11,22,33]marks.insert(2, 44)  # [11,22,44,33]marks.insert(2, 55)  # [11,22,55,44,33]marks.insert(2, 66)  # [11,22,66,55,44,33]marks.insert(2, 77)  # [11,22,77,66,55,44,33]# marks = 100 - error since index 7 isnt thereprint("Marks obtained are: ", marks)# pop - removes from the given position# remove - removes given valueval_remove = 77if val_remove in marks:    marks.remove(val_remove)else:    print("Value is not present in the list")print("Marks obtained are: ", marks)pos_remove = 2if pos_remove < len(marks):    marks.pop(pos_remove)else:    print("List doesnt have that index")print("Marks obtained are: ", marks)marks.clear()print("Marks obtained are: ", marks)`

#### VIDEO RECORDING ACCESS HERE

Assignment

Assignments

1. Write a Python program to sum all the items in a list.

2. Write a Python program to multiplies all the items in a list.

3. Write a Python program to get the largest number from a list.

4. Write a Python program to get the smallest number from a list.

5. Write a Python program to count the number of strings where the string length is 2 or more and the first and last character are same from a given list of strings.

Sample List : [‘abc’, ‘xyz’, ‘aba’, ‘1221’]

Expected Result : 2

6. Write a Python program to get a list, sorted in increasing order by the last element in each tuple from a given list of non-empty tuples.

Sample List : [(2, 5), (1, 2), (4, 4), (2, 3), (2, 1)]

Expected Result : [(2, 1), (1, 2), (2, 3), (4, 4), (2, 5)]

7. Write a Python program to remove duplicates from a list.

8. Write a Python program to check a list is empty or not.

9. Write a Python program to clone or copy a list.

10. Write a Python program to find the list of words that are longer than n from a given list of words.

11. Write a Python function that takes two lists and returns True if they have at least one common member.

12. Write a Python program to print a specified list after removing the 0th, 4th and 5th elements.

Sample List : [‘Red’, ‘Green’, ‘White’, ‘Black’, ‘Pink’, ‘Yellow’]

Expected Output : [‘Green’, ‘White’, ‘Black’]

13. Write a Python program to generate a 3*4*6 3D array whose each element is *.

14. Write a Python program to print the numbers of a specified list after removing even numbers from it.

15. Write a Python program to shuffle and print a specified list.

16. Write a Python program to generate and print a list of first and last 5 elements where the values are square of numbers between 1 and 30 (both included).

17. Write a Python program to generate and print a list except for the first 5 elements, where the values are square of numbers between 1 and 30 (both included).

18. Write a Python program to generate all permutations of a list in Python.

19. Write a Python program to get the difference between the two lists.

20. Write a Python program access the index of a list.

DAY 8

`def myreverse(a):    print("A = ", a)    a.reverse()    return alist1 = [50, 4, 5.5, "Hello", True]list2 = [90, 20, 50, 40, 30, 70]list2.reverse()# print(list2)print("Myreverse: ", myreverse(list2))print(list2.reverse())list2.sort()# print(list2)list1.extend(list2)print("New set: ", list1)a = "5"# print(int(a))print("Learning COPY")list2 = [90, 20, 50, 40, 30, 70]list3 = list2  # shallow copylist4 = list2.copy()  # deep copyprint("list2: ", list2)print("list3: ", list3)print("list4: ", list4)list2.append(10)print("list2: ", list2)print("list3: ", list3)print("list4: ", list4)print("Stack Implementation")list_master = []while True:    print("1. Add to the stack")    print("2. Remove from the stack")    print("3. Clear the stack")    print("4. Quit")    op = int(input("Enter your option"))    if op == 1:        val = int(input("Enter the element to add: "))        list_master.append(val)        print("After adding list: ", list_master)    elif op == 2:        if len(list_master) > 0:            list_master.pop(-1)            print("After adding list: ", list_master)        else:            print("List is empty!")    elif op == 3:        list_master.clear()        print("After adding list: ", list_master)    elif op == 4:        print("Thank you for using the program.")        break    else:        print("Invalid option, Try again!")############### LIST ######################## TUPLEt2 = ()t3=(55,)t1 = (5, 4, 6, 8, 4)print(type(t1))t1 = list(t1)print(t1.count(8))`

`# Dictionary# list: linear ordered mutable collection# tuple: linear ordered immutable collection# dictionary: non-linear ordered mutable collection (unordered untill 3.7)# dictionary is made up of key & valuedict1 = {}  # empty dictionaryprint(type(dict1))dict1 = {"Name": "Sachin", "City": "Mumbai", "Runs": 12900, "IsPlaying": False}print(dict1)print(dict1["City"])print(dict1.get("City"))val = "India"key = "Country"t_dict = {key: val}dict1.update(t_dict)print("Dictionary after Update: \n", dict1)print("Size of dictionary: ", len(dict1))print("keys:", dict1.keys())for i in dict1.keys():    print(i)for i in dict1.values():    print(i)for i in dict1.keys():    print(dict1[i])for i, j in dict1.items():    print(i)if "City" in dict1:  # default it checks in keys    print("We have City")if "Mumbai" in dict1.values():    print("We have City Mumbai")else:    print("Mumbai is not there")print("Dict1: ", dict1)dict1.pop("City")  # key as inputprint("Dict1: ", dict1)dict1.popitem()  # key as inputprint("Dict1: ", dict1)print(type(dict1.values()))dict1.pop(list(dict1.keys())[list(dict1.values()).index("Sachin")])# print()print("Dict1: ", dict1)`

### Vide Recording Here

`#Set - also mutableset1 = {"New York"}print(type(set1))set1.add("Chicago")#update#unions1 = {1,3,5,7,2,4}s2 = {2,4,6,8}print("Union: ",s1.union(s2))print("Union: ",s1 | s2)#s1.update(s2)#print("Union Update: ",s1)#differenceprint("difference :",s1-s2)print("difference :",s2-s1)print("Difference: ",s1.difference(s2))#s1.difference_update(s2)#print("Difference update: ",s1)print("Symmetric Difference: ", s1 ^ s2)#intersectionprint("intersection :",s1.intersection(s2))print("intersection: ",s1 & s2)print("intersection update: ",s1.intersection_update(s2))print(s1)s1.intersection_update(s2)print("intersection update: ",s1)print(set1)l1 = [5,10,10,15,15,15,20,20,25]l1 = list(set(l1))print(l1)### Functionsdef myfunc1(name):  #which takes ONE input argument and doesnt return anything    print("Hello ",name)    print("How are you?")    print("Where are you going?")def myfunc2(name):  #which takes ONE input argument and doesnt return anything    print("Hello ",name)    print("How are you?")    print("Where are you going?")    return "Thank You", "Bye"def myfunc(): #this is an example which doesnt take any input argument and doesnt return    print("Hello")    print("How are you?")    print("Where are you going?")myfunc()print("second time: ")myfunc1("Kapil")   #1 required positional argument: 'name'print(myfunc2("Sachin"))`

`#functions#required positional arguments## Function definitiondef calculate(a,b):    print("Value of a is ",a)    print("Value of b is ",b)    sum = a+b    diff = a-b    mul = a*b    div = a/b    return sum,diff,mul,div## Function definition - Default argumentdef calculate1(a,b=50):    print("Value of a is ",a)    print("Value of b is ",b)    sum = a+b    diff = a-b    mul = a*b    div = a/b    return sum,diff,mul,divresult = calculate(30,20)print("Addition of given 2 values is ", result)result = calculate1(30,5)print("Addition of given 2 values is ", result)result = calculate1(30)print("Addition of given 2 values is ", result)#non positionalresult = calculate1(b=30,a=5)  #nonpositional => Keyword argumentsprint("Addition of given 2 values is ", result)#variable name argumentsdef mycalculation(a,c,*b,**d):  # * takes multiple values    print("A = ",a)    print("B = ", b)    print("C = ", c)    print("D = ", d)mycalculation(5,6,7,8,9,10,11,name="Sachin", runs=5000)def check_prime(a):    result1 = True    for i in range(2,a//2):        if a%i == 0:            result1 = False            break    return result1result = check_prime(1100)if result:    print("Its a prime number")else:    print("Its not a prime number")#generate prime numbers between 500 and 1000prime_num = []for i in range(500,1001):    if check_prime(i):        prime_num.append(i)print("Prime numbers are: ",prime_num)`
`#Recursive functiondef myfunc(number):    if number <1:        return 0    print(number)    myfunc(number-1)def factorial(n):    if n<1:        return 1    return n * factorial(n-1)if __name__ =="__main__":    myfunc(100)    # 5! = 5 * 4 * 3 * 2 * 1!    fact = factorial(5)    print("Factorial is ",fact)`
`class Person:    population = 0    def welcome(self,name):        self.name = name        print("Welcome to the world")        Person.population+=1    def display(self):        print("Welcome to ",self.name)        print("Total Population: ",Person.population)p1 = Person()p1.welcome("Sachin")p3 = Person()p3.welcome("Laxman")p2 = Person()p4 = Person()p5 = Person()p2.welcome("Rekha")p4.welcome("Geeta")p5.welcome("Rohit")p3.display()p4.display()`

### Video

`class Person():    def __method1(self):        print("Method 1")    def _method2(self):        print("Method 2")    def method3(self):        print("Method 3")        self.__method1()class Student(Person):    def read(self):        print("I am studying")p1 = Person()#p1.__method1() - private members cant be calledp1.method3()p1._method2()s1 = Student()s1.read()s1.method3()# public#protected  _  :practically its like public, but theoritically it cant be accessed outside the class#private  __ : members can not be used outside the class`

19 DEC 2022

`#Classstr1="555"print(type(str1))str2 = "Good day"print(str1.upper())class Apple:    loc = "World"    def getvalue(self,name):        self.name = name    def display(self):        print(f"I am {self.name}")    @classmethod    def setaddress(cls):        cls.loc = "Universe"    @classmethod    def address(cls):        print(f"Location: {cls.loc}")a1=Apple()a1.getvalue("Sachin")a2=Apple()a2.getvalue("Kapil")a3=Apple()a3.getvalue("Laxman")a4=Apple()print(type(a1))a1.display()a1.setaddress()a2.address()class MySum:    def getval(self):        self.num1 = int(input("Enter value 1: "))        self.num2 = int(input("Enter value 2: "))    def printsum(self):        self.sum = self.num1 + self.num2        print("Sum of the values: ",self.sum)m1 = MySum()m1.getval()m1.printsum()`

`class Employee:    population = 0    def __init__(self,name,age, salary):        self.name = name        self.age = age        self.__salary = salary        Employee.population +=1    def edit_details(self,name,age,salary):        self.name = name        self.age = age        self.__salary = salary    def _getsalary(self):        return self.__salary    @classmethod    def display_pop(cls):        print("Total Count of Objects = ",cls.population)p1 = Employee("Sachin",48,1500) # this is calling __init__()p2 = Employee("Virat", 29,1400)p3 = Employee("Rohit", 29,1300)#print(p1.__salary)p1.display_pop()print(p1._getsalary())#print(p2.getsalary())#print(p3.getsalary())'''Encapsulation:access modifiers:  3 types: Public (variablename), Private (__variablename) -only to class, Protected (_variablename)'''`
`word = "hello"guess = "ll"ind = 0word1 = word.replace("l","L",1)print(word1)for i in range(word.count(guess)):    ind = word.find(guess,ind)    print(ind)    ind=ind+1word3 = "How are you doing"l1 = word3.split("o")print(l1)word4 = "o".join(l1)print(word4)#Stringsword = "hEllo".lower()print(word)display_text = "* "*len(word)print(display_text)while True:    guess = input("Guess the character: ")    guess = guess.lower()    if guess.isalpha():        if guess in word:            ind = 0            for i in range(word.count(guess)):                ind = word.find(guess, ind)                #now time to reveal                #0 - 0, 1-2, 2-4                display_text = display_text[:ind*2] + guess+display_text[ind*2+1:]                ind = ind + 1            print(display_text)            if "*" not in display_text:                print("Congratulations!")                break        else:            print("Given character is not in the original word")    else:        print("Invalid character")`
`class Book:    book_count = 0    def __init__(self, author, title, book_id):        self.author = author        self.title = title        self.book_id = book_id        Book.book_count+=1    def getbook(self):        print(f"{self.title} is written by {self.author}")    @classmethod    def getBookCount(cls):        print("Total books available: ",cls.book_count)book1 = Book('Swapnil Saurav','Learn and Practice Python', 9012)book1.getbook()book1.getBookCount()`
`#Inheritanceclass School:    def __init__(self,schoolname):        self.schoolname = schoolname    def _displaydetails(self):        print("School name is ",self.schoolname)class Student (School):    def __init__(self,stname, schoolname):        School.__init__(self,schoolname)        self.stname = stname    def displaydetails1(self):        print("Student name is ",self.stname)    def displaydetails1(self,name):        print("Student name is ",self.stname)    def displaydetails1(self,name,age):            print("Student name is ", self.stname)class Teacher (School):    def __init__(self,tname):        self.tname = tname    def displaydetails(self):        print("Teacher name is ",self.tname)sc1 =School("ABC International School")st1 = Student("Sachin Tendulkar","XYZ International School")t1 = Teacher("Kapil Dev")sc1._displaydetails()st1.displaydetails1()t1.displaydetails()'''PublicProtected  _var (single underscore)Private  __var (double underscore)'''`
`#1. declare a class calc#2. initialize functon to read 3 variables#3. create another method to calculate: sum. multiply minus#4. Display the result using another method#5. Create another class to perform arithematic operators## that you have learnt in Python:  +  -  *  / %  **  //class Calc:    def __init__(self,a,b,c):        self.n1 = a        self.n2 = b        self.n3 = c        self.add = "Addition not yet done"        self.mul = "Multiplication not yet done"        self.min = "Difference not yet done"    def calc(self):        self.add = self.n1 + self.n2        self.mul = self.n1 * self.n2        self.min = self.n1 - self.n2    def display(self):        print("Sum = ",self.add)        print("Multiplication = ",self.mul)        print("Difference = ",self.min)class Arithmatic(Calc):    def __init__(self,a,b,c):        Calc.__init__(self,a,b,c)        self.n1 = a        self.n2 = b        self.n3 = c        self.div = "Division not yet done"        self.mod = "Modulus not yet done"        self.pow = "Power not yet done"        self.intdiv = "Integer Division not yet done"    def calc(self):        Calc.calc(self)        self.div = self.n1 / self.n2        self.mod = self.n1 % self.n2        self.pow = self.n1**self.n2        self.intdiv = self.n1 // self.n2    def display(self):        Calc.display(self)        print("Division = ",self.div)        print("Modulus = ",self.mod)        print("Power = ",self.pow)        print("Integer Division = ", self.intdiv)c1 = Arithmatic(10,5,12)c1.calc()c1.display()c2 = Calc(3,4,6)c2.calc()c2.display()`

### Video Lesson

TYPES OF FUNCTION

`def myfun1(a,b):    '''Example of Required Positional Argument'''    print(f"a is {a} and b is {b}")    sum = a + b    print("Sum: ",sum)    #return sumdef myfun2(a=16,b=6):    '''Example of Default Positional Argument'''    print(f"a is {a} and b is {b}")    sum = a + b    print("Sum: ",sum)    #return sumdef myfun3(a,*b,**c):  #variable length arguments    print("a = ",a)    print("b = ", b)  # * means tuple    print("c = ", c)  # **- dictionarymyfun3(50,5,6,7,8,9,9,11,14,name="sachin",game ="Cricket")#Keyword argumentn1,n2=14,26print(myfun2(a=n2,b=n1))result = myfun2(b=34)n1,n2=14,26print(myfun2(n1,n2))result = myfun2(34)#result*=2print(result)n1,n2=54,66print(myfun1(n1,n2))result = myfun1(34,76)#result*=2print(result)#Types of functions based on input parameter:## 1. Required positional arguments: YOu have to provide value and in same order (left to right)## Default (positional) arguments`
`import osprint(os.name)if os.name=="nt":    print("Its a Windows machine")elif os.name=="posix":    print("its a Linux/Mac")else:    print("Other OS")print(os.getcwd())#os.rmdir("Nov_2")#os.rename("file1.txt", "file1dec.txt")print("iterate in folder:")from pathlib import Pathpath_list = Path("C:\\Users\\Hp\\Poems\\")for i in path_list.iterdir():    print(i)os.mkdir("Test2")fp= open(r"C:\Users\Hp\Poems\Poem1.txt","r") #r for read w for write a appendcontent = fp.read(200)print(type(content))print(content)fp.seek(0)content = fp.readline(500)print(type(content))print(content)content = fp.readlines()print(type(content))print(content)fp.close()fp1 = open(r"C:\Users\Hp\Poems\testCopy\sample.txt","a")if fp1.writable():    fp1.writelines(content)fp1.close()`

## Watch the Video

`#Numpyimport numpy as npx = range(16)# range: 0 to upto 16 - 0...15x = np.reshape(x,(4,4))print(type(x))print(x)size = x.shapeprint("Total rows = ",size)print("Total columns = ",size)#indexingprint(x[1,2])print(x[3,1])print(x[0,:])print(x[:,0])print(x[1:3,1:3])#x = np.zeros((3,3))print(x)x = np.ones((3,3))print(x)x = np.full((3,3),99)print(x)x = np.random.random((3,3))print(x)l1 = [[5,10,15],[9,10,11],[2,3,1]]print(type(l1))l1 = np.array(l1, dtype=np.int8)print(l1)print(type(l1))l2 = np.array([[3,6,9],[7,14,21],[2,4,6]])print(l2)#additionprint(l1 + l2)print(np.add(l2,l1))print(l1 - l2)print(np.subtract(l2,l1))print(l1 / l2)print(np.divide(l2,l1))print("==========================")print(l1,"\n",l2)print(l1 @ l2)print(np.matmul(l2,l1))for i in l1.flat:    print(i)x = np.identity(6)print(x)print("Printing l1:\n",l1)print("Printing Transpose of l1:")l1_t = np.transpose(l1)print(l1_t)l1_det = np.linalg.det(l1)print("Determinant of L1 is ",l1_det)l1_inv = np.linalg.inv(l1)print("Inverse of L1 is ",l1_inv)#Singular matrix have determinant zero so we cant find inverse of that matrix# 2x-3y = 8# 3x-4y = 12# what is x & y?`

## Watch Video Here

`# Numpy to solve linear algebra# 2x +5y + 2z = -38# 3x - 2y + 4z = 17# -6x +y -7z = -12import numpy as npCoeff = [[2,5,2],[3,-2,4],[-6,1,-7]]Coeff_mat = np.array(Coeff)Coeff_det = np.linalg.det(Coeff_mat)if Coeff_det ==0:    print("There are no possible solution for given equations")else:    Const = [[-38],,[-12]]    Coeff_inv = np.linalg.inv(Coeff_mat)    sol = np.matmul(Coeff_inv,Const)    print("Solution is: \n",sol)    print(f"x={sol[0,0]}, y={sol[1,0]}, z={sol[2,0]}")`

## Video to solve linear Algebra equality problem `#SETSset1 = {1,5,9,10,20}print(type(set1))set1.add(22)print(set1)set2 = set1  #deep copy - set2 and set1 will point to same location in memoryset3 = set1.copy()  #shallow copy - create a duplicate copyprint("printing 1: ")print("Set 1: ",set1)print("Set 2: ",set2)print("Set 3: ",set3)set2.add(25)set2.add(29)print("printing 2: ")print("Set 1: ",set1)print("Set 2: ",set2)print("Set 3: ",set3)print("Set 1: ",id(set1))print("Set 2: ",id(set2))print("Set 3: ",id(set3))#union, intersection, difference, symmetric differenceSet2 =  {1, 20, 5, 22, 9, 10, 29, 25}Set3 =  {1, 20, 5, 22, 9, 10,31,35}print(Set2.union(Set3))print(Set2 | Set3)print(Set2.intersection(Set3))print(Set2 & Set3)print(Set2.difference(Set3))print(Set3 - Set2)print(Set2.symmetric_difference(Set3))print(Set2 ^ Set3)print("Set 2: ",Set2)print("Set 3: ",Set3)print(Set2.symmetric_difference_update(Set3))print("Set 2: ",Set2)print("Set 3: ",Set3)`

## NEXT TOPIC: DATA ANALYTICS - Click Here to Access the Page

`from datetime import datetimecurrenttime = datetime.now()print("Current time: ",currenttime)n=10000counter = 0for i in range(n):    for j in range(n):        counter+=1        if counter*100 % (n*n)==0:            print(f"{counter*100//(n*n)}% Task Completed")endtime = datetime.now()print("Total time taken by the program is ",endtime-currenttime)from datetime import datetime, timedeltaprint("Current time: ",datetime.now())print("Current date: ",datetime.now().strftime("%Y,%m-%d"))print("Current year: ",datetime.now().year)print("Current month: ",datetime.now().month)print("Current day: ",datetime.now().day)print("Current hour: ",datetime.now().hour)print("Current minute: ",datetime.now().minute)print("Current second: ",datetime.now().second)import timeprint("Current time: ",time.strftime("%Y,%m-%d"))print("Total time: ",time.time())print("Tomorrow's time: ",datetime.now()+timedelta(days=1))from pytz import timezoneprint("Current time in US Eastern is",datetime.now(timezone("US/Eastern")).strftime("%Y-%m-%d"))# random numbersimport randomrandom.seed(100)print("Random = ",random.random())  # randon no. between 0 & 1print("Random = ",int(random.random()*1000))print("Random Integer values: ",random.randint(500,9000))choices = ["ONE","TWO","THREE","FOUR","FIVE","SIX"]print("One value from the list: ",random.choice(choices))random.shuffle(choices)print("random shuffle: ",choices)#MAP - works with List where you want to apply same calculation to all the numbersdistances = [1100,1900,4500,6500,3400,2900,5400]*500dist_ft = 0 #3.1 *from datetime import datetimestart=datetime.now()dist_ft = list(map(lambda x:3.1*x,distances))end=datetime.now()print("Total time taken by MAP = ",end-start)start=datetime.now()dist_ft2 = []for i in distances:    val = i*3.1    dist_ft2.append(val)#print("Output using Loops = ",dist_ft2)end=datetime.now()print("Total time taken by LOOP = ",end-start)`