Swapnil Saurav

Machine Learning with Python – 01M0

DAY 1 Intro Video

print('5+3=',5+3)  #comment 1
#practice day 1
var1 = 45
print(type(var1)) #<class 'int'> integer
# we have 5 basic types of data (datatypes)

var1=55.0
print(type(var1)) #<class 'float'>

var1 = 3j
print(type(var1)) #<class 'complex'>
print(3j * 3j) #(-9+0j)

var1="Hello"
print(type(var1)) #<class 'str'> string

var1=True #False
print(type(var1))

quantity = 53
price = 119.77
total_cost = quantity * price
#The total cost of 50 pens costing 119 is total_cost
print("The total cost of",quantity,"pens costing",price,"is",total_cost)
#format string - f string
print(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
print("I am here");print("Hello \\\n Ok \tfine",end=". ")
print("How are you?" );

#str, float, int, bool, complex
# \ is called escape character
num1 = 55
name1 = "Sachin"
#whenever you read as input, the data type will always be string
name2 = input("Enter your name: ")
print(name2)
num2 = input("Enter radius: ")
num2 = int(num2)
print(num2)
area = 3.14*num2*num2
print("Area = ",area)

# + / - *
# // (integer division - this will give you only integer part of the division)
# ** power
# %(modulo -remainder)
num1 = 13
num2 = 5
#Arithematic/math operations
print(num1 + num2)
print(num1 - num2)
print(num1 * num2)
print(num1 / num2) #output wll always be float
print(num1 // num2) #output will always be int
print(num1 ** num2) # 10 to the power 5
print(num1 % num2) #modulo -
#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 = False
print(True and False)
print(False or False)
print(not False)
num1 = 9
num2 = 13
print("Logical operator")
print(num1 > num2 or num1 < num1 and num2 == num1 or num1 != num2 or num1!=num2)
#(T)


#comaprison operators: < > <= >= == != : True/False
num1 = 9
num2 = 13
print("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=5
pi=3.14
print("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 output
x = 72
y = 9
if x%y==0:
print(f"{x} is perfectly divisible by {y}")
print("PERFECT DIVISIBLE")
else:
print(f"{x} is NOT divisible by {y}")
num1 = 0
if num1 >0:
print("Its positive")
else:
print("Its not positive")

num1 = 0
if num1 >0:
print("Its positive")
elif num1<0:
print("Its negative")
else:
print("Its not positive")

sum=448
avg=sum/5
print("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 - Fail
if 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 conditions
if 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,20
if num1>=num2:
print(f"{num1} >= {num2}")
else:
print(f"{num2} >= {num1}")
#Repeating - loops in programming language
# range(a,b,c): a-start number (including), b-end number (excluding), c-increment
range(3,15,4) # 3, 7, 11,
range(3,7) # c is default 1: 3,4,5,6
range(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 run
for counter in range(1,11):
print(counter)
#odd numbers between 1 and 10
for i in range(1,11,2):
print(i)
# even numbers between 1 and 10
for 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
num = 51
isPrime = True
for i in range(2, num):
if num % i == 0:
isPrime = False
break
if isPrime:
print("Its a prime number ")
else:
print("Its not a prime number ")

# print prime numbers between 1000 and 5000
start, end = 1000, 5000
for 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 10
i = 1
while i <=10:
print(i)
i+=1

choice = True
while choice:
print("Hello")
ch = input("Press n to stop")
if ch=='n':
choice = False


while True:
print("Hello")
ch = input("Press n to stop")
if ch == 'n':
break
#Strings
str1 = 'Hello'
str2 = "Hi there"
str3 = '''Hi there
how are you
Where are you?'''
str4 = """I am fine
I am here
How 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'))
#Sets
#data structures - collections: String, List, Tuple, Dictionary
#SETS - A B M O C - there is no order
# doesnt allow duplicate

set1 = {2,4,6,8}
print(set1)
#union intersection minus
set2 = {6,8,10,12}
#union
print(set1.union(set2))
print(set1 | set2)
#intersection
print(set1.intersection(set2))
print(set1 & set2)

#difference
print(set1.difference(set2))
print(set1 - set2)
print(set2.difference(set1))
print(set2 - set1)

#symmetric difference
#union of 2 differences
print(set1.symmetric_difference(set2))
print(set1 ^ set2)
print(set1, set2)

#update doesnt give new set, it changes the main set
set1.update(set2)

#union -> update
# {intersection_update, difference_update, symm_diff_update}
print(set1, set2)

set3 = {2,4,10,12}

# sets to list and to tuple
set1 = tuple(set1)
list(set1)
set()
#List - linear ordered mutable
list1 = []
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 marks
list_of_marks=[]
sum = 0
for i in range(0):
m=int(input("Enter marks: "))
list_of_marks.append(m)
sum+=m
print("Sum = ",sum)
print("List of marks = ",list_of_marks)

## 2 ways to add values to an existing list: append, insert
list_of_marks.insert(1,100)#index, value
print("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 = 80
if 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 = 80
if 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 = 3
inx_found=0
for i in range(list1.count(element_search)):
print(list1.index(element_search, inx_found), end=" ,")
inx_found = list1.index(element_search, inx_found) + 1
print()
list1 = [1,3,5,7]
list2 = list1 #they are same , just have 2 names
list3 = list1.copy() #copy - creates a different copy
print("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 List
t1 = ()
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 access
t2 = (1,2,3) #packing
a,b,c = t2 #unpacking
print(a,b,c)

#Dictionary - uses its own key to track values
#list, tuple, sets - linear

list1 = [2,3,4,5,2,3,4,2,3,2]
list1=list(set(list1))
print(list1)

#Dictionary: key:value pairs
d1 = {}
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 copy
d3 = d1 # deep - creates another name for d1
d4 = 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 input
print("D1 after pop: ", d1)
d1.popitem() #last added value is removed - remeber last added is not same as last updated
print("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")
# SET - sets - linear unordered mutable collection - doesnt allow duplicate
set1 = {'Apple','Grapes','Banana','Orange'}
print(type(set1))
set1.add('Cherry')
set2 = {"Pineapple","Mango","Apple","Orange"}
# two ways to remove
set1.remove("Banana")
set1.discard("Apple")
#set1.remove("Rose") - if value isnt there throws error
set1.discard("Rose") #doesnt throw error
print("1. Set1: ",set1)
set1.pop()
set1.update(set2) #union
print("2. Set1: ",set1)
set1.clear()
print("3. Set1: ",set1)
### SET FUNCTIONS ####
set1 = {'Apple','Grapes','Banana','Orange'}
set2 = {"Pineapple","Mango","Apple","Orange"}
#UNION
print("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-convertible
list1 = [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- function
def 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) arguments
def 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)
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 argument
def myfun3(val1,val2=100,val3="New York"): #Required positional argument
print(val1, val2,val3)
return val1+val2

myfun3(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, hexagon

def 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 #positive

res = 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")
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 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

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 = []

#add product to the cart
def add_prod(self):
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”)
ch=input(“Enter your option: “)
if ch==“1”:
if len(sc1.myshoppingcart)==0:
print(“Your shopping cart is empty!”)
else:
sc1.display_prod()
elif ch==“2”:
sc1.add_prod()
elif ch==“3”:
sc1.remove_prod()
elif ch==“4”:
if len(sc1.myshoppingcart)==0:
print(“Your shopping cart is empty!”)
else:
sc1.generate_receipt()
elif ch==“5”:
break
else:
print(“Invalid option”)

DATABASE TUTORIAL

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

 

•WEIGHT: FREQUENCY TABLE & HISTOGRAM
•MARKS: FREQUENCY TABLE & HISTOGRAM
•GENDER: BAR GRAPH / PIE CHART
•REGIONS: BAR GRAPH / PIE CHART
•COURSE RATING: BAR GRAPH / PIE CHART/LINE GRAPH (IN A PARTICULAR ORDER)
•TEMPERATURE: FREQUENCY TABLE & HISTOGRAM
•SALES: LINE GRAPH
 

 

Lecture Notes – I
text1 = 'Hello' \
'World'
text2 = "hi there"

text3 = '''How are you
where are you
what do you want?'''
text4 = """I am fine"""
#I am just trying to run few programs

print(text1,end=' ') #printing first text print("Hello")
print(text2)
print(text3)
print(text4)
'''this is a
multi line text
please ignore'''

print(type(True))

cost = 60
quantity = 212
total_cost = cost * quantity
print("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 = 5
b1 = False
#user input- will provide the value
inp1 = input("Enter your name:")
print(inp1)
inp2 = int(input("Enter your age:"))
print(type(inp2))
print(inp2)

num1 = 10
num2 = 20
#ArithmeticOperations
print(num1 + num2)
print(num1 - num2)
print(num1 * num2)
print(num1 / num2)
print(num1 // num2) #integer division - ignores the decimal part
print(num1 ** num2) #power - exponent
print(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 = 56
num2 = 56
num3 = 57
print(num1 <= num2) # less than or equal - T
print(num1 <= num3) # T
print(num1 < num2) # F
print(num1 >= num2) #T
print(num1 > num2) #F
print(num1 > num3) #F
print(num1 == num2) #T
print(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 not
num1 = 56
num2 = 56
num3 = 57
print(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 statements
num1 = -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 A
avg>70: Grade B
:avg >60: Grade C
avg >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,3
for 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=0
while True:
num1 = int(input("Enter a number (-999 to stop):"))
if num1==-999:
break #throw us out of the current loop
sum+=num1


print("Sum of the given numbers are: ",sum)


## check if prime number

while 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 number
num1=0
while 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 average

total = 0

while 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 repeat
while 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 here
I will be here for next 7 days
I 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 python
print("\\n is used to print newline in python")

# \\n will not print newline in python
print("\\\\n will not print newline in python")

str1 = "Hello You"
str2 = "There"
print(str1 + str2)
print(str1 *5)
for i in str1:
print("Hello")

#indexing
print(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 class
import time
str1 = "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 sentence
para1 = "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=0
for 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+=1
print("Total vowesl = ",sum)
sum=0
for l in para1.lower():
if l=='a' or l=='e' or l=='i' or l=='o' or l=='u':
sum+=1
print("Total vowesl = ",sum)

sum=0
for l in para1.lower():
if l in 'aeiou':
sum+=1
print("Total vowesl = ",sum)

########## LIST
#LIST
#collection of linear ordered items
list1 = [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]=10
print(l1)

l1.insert(2,15)
print(l1)

# Queue: FIFO
# Stack: LIFO

if 16 in l1:
l1.remove(16) #takes in value to remove
l1.remove(15)
print(l1)
l1.pop(1) #index
print(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 same
l3 = 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=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)

#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 = 51
isPrime = True
for i in range(2,num):
if num%i==0:
isPrime = False
break
if isPrime:
print("Its a Prime number")
else:
print("Its not a prime number")

###
start1,end1= 500,5000
for 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 loop
i=1
while i<=10:
print(i)
i+=1

ch=True
while 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=False


while 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':
break


import random

n=1
total_attempts = 0
max=0
min=99999999
for 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.384
Max attempts = 529 and Minimum attempts = 1
'''

#######
import random

n=500
total_attempts = 0
max=0
min=99999999
for 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-1

print("Avg attempts = ",total_attempts/n)
print("Max attempts =",max,"and Minimum attempts = ",min)

'''
Avg attempts = 7.522
Max 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 fine
I am here
I want nothing"""
print(txt4)

for ch in txt1:
print(ch)
print(txt1+" "+txt2)
print(txt1*10)

#indexing
print(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 CLASS
print(txt1.lower())
print(txt2.upper())
#String - class
# functions specific to classes are called methods

str1 = "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 = 0
print("Num1 = ",num1)

#create username with only alphabets and numbers
username = 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 = 0
for i in range(num_pos):
nxt_val = str1.find(char,start_pos)
print(nxt_val,end= " , ")
start_pos = nxt_val+1

print(str1.replace("ee","EE"))

words = str1.split("I")
print(words)
str6 = "I".join(words)
print(str6)
#LIST
l1 = [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" 99
print("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 asks
print(list1)
# let's simulate Queue behavior: FIFO
list2 = []
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 - FILO
list2 = []
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 = 3
num_subjects = 3

all_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 mutable
l1[2]=50
print(l1)
count = l1.count(7)
print("Count = ", count)
print("Index = ", l1.index(7))

#deep copy v shallow copy
print("1. Before")
print(l1)
l2 = l1 # deep copy
l3 = l1.copy()#shallow copy
print("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 + l1
print(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 List
t1 = (2,4,6,8,10,12,14,16,18,20) #packing
print(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 = t2
print(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 key
dict1 ={"Name": "Rohit","Sport":"Cricket",1:"Captain",1:100}
print(type(dict1))
print(dict1['Name'])
print(dict1[1])

#Immutable: String, Tuple
#Mutable: List, Dictuinary, Sets
t_dict = {'City':'Mumbai'}
dict1.update(t_dict)
print(dict1)

dict2 = dict1
dict3 = 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]=marks

print("All marks are: ",all_marks)
#Basic data types
val1 = 5 #int
print(type(val1))

val1 = '5' #str
print(type(val1))

val1 = 5.0 #float
print(type(val1))

val1 = True #bool - True / False
print(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 conditions
val1 = 185

if 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 difference
set1 = {2,4,6,8}
set2 = {1,3,5,7,6,8}
# union - it puts all the values together
set3 = set1.union(set2)
print("Set 3 = ", set3)
#SETS
set1 = {1,2,3,10,20}
set2 = {1,2,3, 50,60}
print("UNION: ")#union
set3 = 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 code
def 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 value
def 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 arguments
def add_2_num_arg(num1, num2):
sum = num1 + num2
#print("total value is",sum)
return sum

#TYPE 2: Default (opp of Required) positional arguments
def 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 right
output = 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 arguments
def myfun1(*var1, **var2):
print("Var 1 = ",var1) #Tuple
print("Var 2 = ", var2) #Dictionary

myfun1(2,4,99,"hello",False,[2,3,4],num2 = "15",num1 = "89")
#WAP to count positive numbers entered by a user
def checkPositive(*num): #variable length arguments
total=0
for i in num:
if i >0:
total+=1
return total

def 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 0

val1 = [13,35,90,-9,0,8]
tot = checkPositive(13,35,90,-9,0,8,-8,-6,6)
print("Number of positive values = ",tot)

val2 = -9
result = checkPositive3(val2)
if result==1:
print("Number is positive")
else:
print("Number is not positive")


total = 0
val1 = [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!
val = 5
aList = [2,4,5,3,5,6,7,5]
count = 0
for item in aList:

if item==val:
count=count+1

print("Count = ",count)


'''
import random
a = random.random() # random value between 0 and 1
print(a)
b = random.randint(1,3)
print(b)

a <- 5 #assignment in APSC exam language, in Python: a =5
a = 5 # is a equal to 5? in Python a ==5

aList <- [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 lang
FOR EACH item in aLists
{

}


def fun1(n1,n2):

return 1

PROCEDURE fun1(n1,n2)
{

RETURN (1)
}
'''
Learn Python

DAY 1

#interpreter - Python, R
#compiler - Java, C C++
print(5-3) #adding 5 and 3
print()
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 text
print("Hi")
print('''How
are
you?''')
print("""I am fine""") #multi line
num1 = 4
print("Data type of num1 is ",type(num1))
'''variable names has to begin with either an alphabet
or with _. It can contain, numbers, alphabets and _ '''

num2 = 3
print(4+3)
print("5+4=",5+4)
''' how
are
you
i am fine'''
# Five basic datatypes in Python
num1 = 4
print("Data type of num1 is ",type(num1))
num1 = 4.0
print("Data type of num1 is ",type(num1))
num1 = 4j
print("Data type of num1 is ",type(num1))
num1 = "4"
print("Data type of num1 is ",type(num1))
num1 = True
print("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 string

pl = "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 space
print("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 operator
num2 = 20
print(num1 + num2)
print(num1 - num2)
print(num1 * num2)
print(num1 / num2)
print(num1 // num2) #integer division
print(num1 ** num2) # exponent-power
print(num1 % num2) # modulus - remainder

#Comparison operators - can take any value but output is always bool
# == != < > <= >=
num1 = 10
num2 = 20
print(num1 == num2) #F
print(num1 != num2) #T
print(num1 > num2) #F
print(num1 < num2) #T
print(num1 >= num2) #F
print(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 False
print(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 = 41

avg=4
if avg>=50:
print("Result: PASS")
print("i m still in if")
else:
print("Result: FAIL")

num1 = -99
if 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 A
avg>=80: Grade B
avg>=70: Grade C
avg>=60: Grade D
avg>=50: Grade E
avg<50: Grade F

'''
a,b,c = 10,12,8
if 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 ELSE
avg = 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 - Pass
avg=55
if 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 once
print("Hello")
# print(), type(), input(), int()- str(), bool(),float()

sum = 5+3
print(type(sum))
sum = str(sum)
print(type(sum))

#range(a,b,c) = a:start number (including) b:ending (excluding) c:increment
range(3,9,2) # 3,5,7
range(3,7) # c is default =1: 3,4,5,6
range(4) #a=0, c=1 (default): 0,1,2,3

#For: exactly how many times
for 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 10
i=1
while i<=10:
print(i)
i+=1 #i=i+1

i=1
ch="y"
while ch=="y":
print(i)
i+=1 #i=i+1
ch=input("Hit y to continue or anyother key to stop: ")

total = 0
for i in range(3):
marks = int(input("Enter marks: "))
total+=marks

print("Total marks = ",total,"and average is: ",total/3)

#

ch="y"
total=0
counter = 0
while 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=0
counter = 0
while True: #infinite
marks =int(input("Enter the marks: "))
counter+=1
total+=marks
ch=input("Enter y to continue")
if ch!='y':
break

print("Total marks = ",total,"and average is: ",total/counter)

#

total=0
counter = 0
while 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:
break

print("Total marks = ",total,"and average is: ",total/counter)

#Strings

str1 = "Hello"
str2 = 'hi there'
print(str1)
print(str2)
str3 = '''good evening
how 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 text
print(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 edited
print(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 immutable
str3 = "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 datatype

l1 = [5,10,15,"Hello", False, [4,5,6]] #list
print(type(l1))
print(l1[1]) #second member
print(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=0
for i in l2:
sum+=i
print("Sum of the values in the list = ",sum)
l2 = [12,34,23,54,55,76,55,29]
l2[1]=55
print(l2)

print(l2.count(55))

ind=0
print("Indices: ",end=" ")
for i in range(l2.count(55)):
index = l2.index(55,ind)
print(index,end=" , ")
ind = index+1
print()
l3 = l2 # copy by = DEEP COPY
l4 = l2.copy() #copy by copy method - SHALLOW COPY
print("1. Copying")
print("L2: ",l2)
print("L3: ",l3)
print("L4: ",l4)
l2.append(99) #append adds element at the end
l2.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 list
t1 = (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 collection
t1 = ('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 collection

d1 = {}
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 1009
print(emp_incentive[1009])
print(incentive[emp_id.index(1009)])

pos = emp_id.index(1009)
print(incentive[pos])

#keys, values, items
print(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 duplicate
set1 = {'Apple','Grapes','Banana','Orange'}
print(type(set1))
set1.add('Cherry')
set2 = {"Pineapple","Mango","Apple","Orange"}
# two ways to remove
set1.remove("Banana")
set1.discard("Apple")
#set1.remove("Rose") - if value isnt there throws error
set1.discard("Rose") #doesnt throw error
print("1. Set1: ",set1)
set1.pop()
set1.update(set2) #union
print("2. Set1: ",set1)
set1.clear()
print("3. Set1: ",set1)
### SET FUNCTIONS ####
set1 = {'Apple','Grapes','Banana','Orange'}
set2 = {"Pineapple","Mango","Apple","Orange"}
#UNION
print("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-convertible
list1 = [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- function
def 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) arguments
def 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 arguments
def fun1(a,b):
pass

a=fun1(b=3,a=2)

#variable length arguments
def 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 - functions

a=lambda n1,n2,n3:n1*n2+n3
print(a(2,3,4))

#map, filter, reduce - special properties for LIST
list_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}")

#Filter
list_filter = list(filter(lambda i:i%10000==0,list_ft))
print("Filtered values: ",list_filter)

#Filter 2
list_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(“Whats your name?”)
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 = adding(5,7)

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
add = x+y+z
sub = z-x+y
print(“X, Y, Z are “,x,y,z)
return add,sub

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
add = x+y+z
sub = z-x+y
print(“X, Y, Z are “,x,y,z)
return add,sub

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
”’
print(var2) #read as dictionary
# *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.add = –1
self.subtract = –1
self.multiply = –1
self.divide = –1

def myadd(self):
self.add= self.n1 + self.n2
return self.add
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.myadd()) #1. class Abstraction
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)
c1.myadd()
print(“Add = “,c1.add)

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

#add product to the cart
def add_prod(self,item):
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”)
ch=input(“Enter your option: “)
if ch==“1”:
if len(sc1.myshoppingcart)==0:
print(“Your shopping cart is empty!”)
else:
print(“Products in your cart are: “,sc1.myshoppingcart)
elif ch==“2”:
item = input(“Enter the product you want to add: “)
sc1.add_prod(item)
elif ch==“3”:
pass
elif ch==“4”:
break
else:
print(“Invalid option”)
class ShoppingCart:
def __init__(self):
self.myshoppingcart = []

#add product to the cart
def add_prod(self):
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”)
ch=input(“Enter your option: “)
if ch==“1”:
if len(sc1.myshoppingcart)==0:
print(“Your shopping cart is empty!”)
else:
sc1.display_prod()
elif ch==“2”:
sc1.add_prod()
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 = []

#add product to the cart
def add_prod(self):
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”)
ch=input(“Enter your option: “)
if ch==“1”:
if len(sc1.myshoppingcart)==0:
print(“Your shopping cart is empty!”)
else:
sc1.display_prod()
elif ch==“2”:
sc1.add_prod()
elif ch==“3”:
sc1.remove_prod()
elif ch==“4”:
if len(sc1.myshoppingcart)==0:
print(“Your shopping cart is empty!”)
else:
sc1.generate_receipt()
elif ch==“5”:
break
else:
print(“Invalid option”)
”’
WAP to implement Stack properties:
add, delete: LIFO
”’
class MyStack:
def __init__(self):
self.mystack=[]
def add(self,val):
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.add(40)
stack1.add(10)
stack1.add(20)
stack1.add(60)
stack1.add(50)
stack1.add(80)
stack1.display()
stack1.delete()
stack1.display()
stack1.delete()
stack1.delete()
stack1.display()


January 2023 Evening
#interpreter: Python R
print("Hello")
print(5+4)
print('5+4=',5+4,'so what even 4+5=',4+5)
a=5 # variable
print("type of a in line #5 is ",type(a))
print("a = ",a)
#type of data (datatype) is integer - numbers without decimal point -99999,999
a = 5.0 #data type is float - numbers with decimal point, -999.5, 0.0, 99.9
print("type of a in line #9 is ",type(a))
a = 5j # i in Maths - square root of -1
print("type of a in line #11 is ",type(a))
#square root of -4 = 2i
print("a*a = ",a*a) #
a=9
print("a = ",a)
#function - print(), type()
# ,
#variable - constant
# is comment - Python these are not for you. these for us
a="HELLO" #text - in python type - string str
print("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
#on the home page you will see- CATEGORIES -> Technical
#Technical -> Python, R ,

print("Hello")  #fist line
print('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)
#COMMENTS

#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 string
print(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 Python
print("\\n is used for newline in Python")

# \\n is actually give you \n in Python
print("\\\\n is actually give you \\n in Python")


# Data types - 5 main types
var1 = 5
print(type(var1)) # int - integer -9999 0 5

var1 = 5.0
print(type(var1)) #float - numbers with decimal

var1 = 5j
print(type(var1)) #complex - square root of minus 1

var1 = True #False #bool
print(type(var1))

var1 = "hello" #str - string
print(type(var1))

#input() - is used to read a value from the user
num1 = 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 numbers
num1 = 23
num2 = 32 #assign 32 to num2
print(num1 + num2) #addition
print(num1 - num2) #
print(num1 * num2) #
print(num1 / num2) #
print(num1 // num2) #integer division: it will give you only the integer part
print(num1 ** num2) # Power
print(num1 % num2) # mod modulus - remainder

## comparison operator : input as numbers and output will be bool
## > < == (is it equal?) != , >= <=
num1 = 23
num2 = 32
num3 = 23
print(num2 > num3) # T
print(num3 > num1) # F
print(num2 >= num3) #T - is num2 greater than or equal to num3 ?
print(num3 >= num1) # T
print(num2 < num3) # F
print(num3 < num1) # F
print(num2 <= num3) # F
print(num3 <= num1) # T
print(num2 == num3) # F
print(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)
#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 = 1

print(True and True and False or True or True and True or False or False and True and True or False)
num1 = 5
num2 = 8
print(num1 !=num2 and num1>num2 or num1<=num2 and num2>=num1 or num1==num2 and num1<num2)

num3 = bin(18) #0b10010
print(num3)
print("hex(18) = ",hex(18)) #0x12
print("oct(18): ", oct(18)) #0o22

print("hex(0b1101111) = ",hex(0b1101111))
print("int(0b1101111) = ",int(0b1101111))

#BITWISE Operators
# left shift (<<) / right shift (>>) operators work on only binary numbers
print("56 << 3 = ",56 << 3) #output #111000000
print(bin(56))
print(int(0b111000000)) #448

print("56 >> 4 = ",56>>7) #

# & and in bitwise
print("23 & 12 = ",23 & 12) #4
print("23 | 12 = ",23 | 12) #31
print(bin(23)) #10111
print(bin(12)) #01100
#& 00100
print(int(0b100))
# | 11111
print(int(0b11111))

# | or in bitwise

num1 = 10
#positive
#negative

# area of a circle = pi * r**2 (3.14 = pi)
# circunference = 2 * pi * r

# Conditions
avg = 30
if 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 G

avg=30
if 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 = 90
if 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")

num = 5
if 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()

#for loop
for 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,0
while num <103:
sum+=num
print(num)
num+=5

print("Sum = ",sum)
i=0
while 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")
a,b,c = 10,12,8
if 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

############################
#Strings
str1 = 'Hello how are you'
str2 = "Im fine"
str3 = '''How are you today
are you fine
hope you feel better'''
str4 = """I am fine today
expecting to do well
I am feeling better now"""
print(str3)

print(str1 + " "+str2)
print(str2*10)
print("Lo" in str1)

#indexing: slicing dicing
print(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 assignment
str1 = "K"+str1[1:]
print(str1)
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=0
for i in str2:
if i.lower() in target:
count+=1
print("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
var1 = 5 # integer
print(type(var1))
var1 = 5.0 # float
print(type(var1))
var1 = "5" # string
print(type(var1))
var1 = 5j # complex
print(type(var1))
var1 = True # bool
print(type(var1))

#Arithematic operations
num1 = 5
num2 = 3
print(num1 + num2)
print(num1 - num2)
print(num1 * num2)
print(num1 / num2)
print(num1 // num2) #integer division
print(num1 % num2) #modulo - remainder
print(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 = 30
stamp_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 * 1
print(total_by_now, "is total by now")
accounted_for = total - total_by_now

stamp_5_count = stamp_5_count + accounted_for //5
accounted_for = accounted_for %5

stamp_2_count = stamp_2_count + accounted_for //2
accounted_for = accounted_for %2

stamp_1_count = stamp_1_count + accounted_for

print("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*1
print("Net difference between amount and stamp value: ",total-total_value)

#Comparison operators: < > <= >= == !=
num1 = 7
num2 = 7
print("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 - right

print(True and True) #True
print(True and False) #rest is all False
print(False and True)
print(False and False)

print(True or True) #True
print(True or False) #True
print(False or True) #True
print(False or False) #False

print(not True) #

num1 = 7
num2 = 7
print("=>",num1==num2 and num1!=num2 or num1>num2 or num1>=num2 and num1<num2 and num1<=num2)
# F
# conditional check
num1 = 100
#perform check - IF condition
if num1>0:
print("Its positive")
#We use conditions when we need to control the flow of the program
avg = 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.. else

if 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,39
avg = 94
if 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= -0
if 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 c
range(3,9,2) # 3,5,7 ... 8
print("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 collection

l1 = [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 list
print("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 element
print("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 + l2
l1[0] = 999
print("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 l1
l3 = l1.copy() #copy method 1
print("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)
#l1

m1= 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+m5
avg = total/5
print(m1,m2,m3,m4,m5)
print("Total marks = ",total," and Average = ",avg)

total = 0
for i in range(5):
m1 = int(input("marks:"))
total+=m1
avg = total/5
print("Total marks = ",total," and Average = ",avg)

marks=[]
total = 0
for i in range(5):
m1 = int(input("marks:"))
marks.append(m1)
total+=m1
avg = total/5
print(marks[0],marks[1],marks[2],marks[3],marks[4])
for i in marks:
print(i,end=" ")
print("\nTotal marks = ",total," and Average = ",avg)
########################
####
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 here
I will be here for next 7 days
I 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 python
print("\\n is used to print newline in python")

# \\n will not print newline in python
print("\\\\n will not print newline in python")

str1 = "Hello You"
str2 = "There"
print(str1 + str2)
print(str1 *5)
for i in str1:
print("Hello")

#indexing
print(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 class
import time
str1 = "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 sentence
para1 = "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=0
for 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+=1
print("Total vowesl = ",sum)
sum=0
for l in para1.lower():
if l=='a' or l=='e' or l=='i' or l=='o' or l=='u':
sum+=1
print("Total vowesl = ",sum)

sum=0
for l in para1.lower():
if l in 'aeiou':
sum+=1
print("Total vowesl = ",sum)

########## LIST
#LIST
#collection of linear ordered items
list1 = [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]=10
print(l1)

l1.insert(2,15)
print(l1)

# Queue: FIFO
# Stack: LIFO

if 16 in l1:
l1.remove(16) #takes in value to remove
l1.remove(15)
print(l1)
l1.pop(1) #index
print(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 same
l3 = 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=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)

#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 immutable

tuple1 = (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
#unpacking
a,b,c,d,e = t2
print(a,b,c,d)
#packing
# Dictionary
dict1 = {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 mutable
dict1.pop('City')
print(dict1)
dict1.popitem()
print(dict1)

dict3 = dict1.copy() #shallow copy
dict4 = dict1 #deep copy

all_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:
break

print("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 E
D E F G H
How many total (union): 8
How many common(intersection): 2
Remove set2 values from set1: (set1 - set2): 3

'''
set1 = {2,4,6,8,10,12}  #neither have duplicate values nor there is any order
print(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 function
def 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
# function taking input arguments /  pass - parameters
def 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=5
b=6
c=9
function1(a,b,c) #parameters
function2(12)

function2(z=30,x=12) #keywords (non-positional)

VIDEO- Function Types Intro

#Functions

def func1(num1,num2):
print("Number 1 = ", num1)
print("Number 2 = ", num2)
add = num1 + num2
print("Addition = ",add)
return add



def func2(num1,num2=100):
print("Number 1 = ", num1)
print("Number 2 = ", num2)
add = num1 + num2
print("Addition = ",add)
return add


#variable length arguments

def 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")

# class - definition
# class str - defining some properties to it like split(), lower()
# object is the usable form of class
str1 = "hello"

#creating a class called Library
#in that I added a function called printinfo()
# self: indicates function works at object level
class 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 object
l1 = Library()
l2 = Library()
l3 = Library()
#l1.askinfo()
#l2.askinfo()
#l3.askinfo()

l2.printinfo()
l3.printinfo()
l1.printinfo()
Learn with Ray

DAY 1:

 

print("Hello")
print('how are you today?')
print(5+4)
print('5+4')
print('5+4=',5+4,'and 6+4=',6+4)
var_1 = 5 #datatype is implicit
print(var_1+10)
#variable naming rule: It shouldnt start with a number, only _ is a allowerd special character
var_1 = 15
print(var_1+10)
#comments are for human
#print() - functions are written to perform certain task

#interpreter (Python R) or compiler (C C++ Java...)

# 5 basic datatypes:
## int - integer - numeric values without decimal part: -999, -99, 0,1,2,99
## float - float - numeric values with decimal part: -5.5, 5.0, 0.0
## complex - complex - numeric values that represent square root of minus 1 (i)
## str - string - text data
## bool - boolean - just two values: True / False

var_1 = 5j
print(var_1 * var_1) #25*-1= -25
print(type(var_1))

#operators & operation
#Arithmetic operators: + - * / // (integer division) ** % (modulus - mod)
num1 = 7
num2 = 3
print(num1/num2)
print(50 // 6)
print(num1 ** num2)
print(50 % 6)

#Comparison operators: == > >= < <= != Will always result in bool values
num1 = 10
num2 = 10
num3 = 15
print(num1 == num2) #is num1 equal to num2 ? True
print(num1 != num3) #is num1 not equal to num2? True
print(num1 > num2) # False
print(num1 >= num2) #True
print(num1 < num2) # False
print(num1 <= num2) #True

#Logical operators = and / or = they work only on boolean value and given bool as result
#prediction1: Argentina and France will play in the Soccar world cup final - True
#prediction2: Argentina or Brazil will play in the Soccar world cup final- True
#actual: Argentina and France actually played in the finals

#and truth table:
# True and True = True
# False and False = False and True = True and False = False

#or truth table:
# False or False = False
# True or True= False or True = True or False = True

a,b,c=5, 10,10
print(a > b and b<c and c==a or c==b or a>c and c<a and b==b and c<a or c==b)

#Conditions
# I want to check if a number is positive or not
num1 = 0
if num1 >0:
print("Number is positive")
print("Line 2 for positive")
elif num1<0:
print("Number is negative")
print("Line 2 for negative")
else:
print("Number is neither positive nor negative")
print("Thank you")


#conditions
#if - elif - else
###
# When +ve: case 1 = 3 , case 2 =3
# When -ve: case 1 = 3 , case 2 =2
# When 0: case 1 = 3 , case 2 = 1
##
num = -50

#case 1
if num==0:
print("Its Zero")
if num <0:
print("Its negative")
if num >0:
print("Its positive")

#case 2
if num==0:
print("Its Zero")
elif num <0:
print("Its negative")
else:
print("Its positive")
#converting one datatype to another - str(), int(),float(),complex(),bool()
marks_in_subject1 = int(input("Enter marks in Subject 1:"))

print(type(marks_in_subject1))
marks_in_subject2 = 8.0
marks_in_subject3 = 88
marks_in_subject4 = 8
marks_in_subject5 = 8
total = marks_in_subject1 + marks_in_subject2 + marks_in_subject3+marks_in_subject4+marks_in_subject5
avg = total/5
print("Average = ",avg)
#avg > 85 - A
# avg>70 - B
# avg > 60 - C
#avg >50 - D
#avg >40 - E
#avg < 40 - F
#avg >=90 - special award
if avg >=85:
print("You got grade A")
if avg>=90:
print("You win Special award")
if avg>=95:
print("You get a Scholarship")
elif avg >=70:
print("You got grade B")
elif avg>=60:
print("You got grade C")
elif avg>=50:
print("You got grade D")
elif avg>=40:
print("You got grade E")
else:
print("You got grade F")


print("Thank You")

#nested

#LOOPS - Repeat
print("Hello")
# Loops - For loop and While loop
#For loop is used when you know how many times you need to repeat
#While loop is used when you dont know exactly how many times but you know the condition
#when to stop

#print hello 5 times
# range(a,b,c) : a=start (inclusive), b = end (exclusive), c=increment
# range(2,8,3) : 2,5
# range(a,b) : a=start, b=end, default increment = 1
# range(2,5) : 2,3,4
# range(b): default start = 0, end=b, default increment of 1
# range(5): 0,1,2,3,4
print("For loop 1:")
for var in range(5):
#print("Value of var is ",var)
print("Hello")

print("Using while: ")

counter = 1
while counter <=5:
counter = counter + 1
print("Hello")
print("Thank You")

DAY 3:

 

#Day 3: Loops
#For loop - along with range() , how many times the loop has to run

for i in range(1,101):
print(i,end="\t")
print()
print("Hello")
#by default print will give us a newline

n,m=5,6
for j in range(m):
for i in range(n):
print("*",end=" ")
print()
'''
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
'''

n=5
for j in range(n):
for i in range(j+1):
print("*",end=" ")
print()
'''
*
* *
* * *
* * * *
* * * * *
'''

n=5
for j in range(n):
for i in range(n-j):
print("*",end=" ")
print()
'''
* * * * *
* * * *
* * *
* *
*
'''
print("-----")
for j in range(n):
for k in range(n-j-1):
print(" ",end="")
for i in range(j+1):
print("*",end=" ")
print()
'''
*
* *
* * *
* * * *
* * * * *
'''
# check if a number is prime or not
number = 51
# 51 - 1, 51
isPrime = True
for i in range(2,number//2):
if number%i==0:
isPrime=False
break
#break will throw you out of current loop

if isPrime:
print("Number is prime")
else:
print("Number is not Prime")


total = 0
for i in range(1,101):
total=total+i
print("\n total is ",total)

#1: total= 0 + 1 = 1
#2: total = 1 + 2 = 3
#3: total = 3 + 3 = 6

#While
while True:
print("Hello")
if True:
break

import random
random.seed(10)
num = random.random() #generates random number between 0 and 1
print("num = ",num)
num1 = random.randint(1,10) # integer values - between 1 and 10 (both inclusive)
print("num1 = ",num1)
attempts = 0
actual = 45 #random.randint(1,100)
while True:
guess = int(input("Enter your guess number:"))
attempts=attempts+1
if actual == guess:
print(f"Congratulations! You have guessed it correctly in {attempts} attempts")
break
elif actual < guess:
print("You missed it! Your Guess is higher")
else: #actual >guess
print("You missed it! Your Guess is lower")
#Strings
var1 = 'hello'
print(type(var1))
var2 = "good morning"
print(type(var2))
var3 = '''Hi there
where are you going
I am here till you come'''
print(type(var3))
var4 ="""Hows going
I was waiting to talk to you
see you soon"""
print(type(var4))
print(var3)
print(var4)

# What's your name?
var5 = "What's your name?"
print(var5)

# He asked,"How are you"?
print('He asked,"How are you"?')

# He asked,"What's your name"?
print('''He asked,"What's your name"?''')
print("He asked,\"What\'s your name\"?")
var1 = 'hello'
print('H' in var1)
for i in var1:
print(i)
# 'y' 'a' "yes" "no" "name"

# ' or " can only take one line of text
#''' or """ can take multi line text

# [] square brackets are used for indexing
print("=====> 1. ",var1[4])
print("=====> 1. ",var1[-1])
print("=====> 2. ",var1[0:4])
print("=====> 3. ",var1[:4])
print("=====> 3. ",var1[-5:-1])
print("=====> 3. ",var1[:-1])
print("=====> 4. ",var1[-3:])

#len()
print("Length = ",len(var1))

for i in range(len(var1)):
print(var1[i])

var1 = "hello"
var2 = "Good Morning"
print(var1,var2)
print(var1 + " and "+(var2+ " ")*3)
#Strings
str1 = "hellothere" #str1 is an object of class str
str2 = "49534095834"
print("str2.isdigit(): ",str2.isdigit())
print("str1.isdigit(): ",str1.isdigit())
print("str1.isalpha()",str1.isalpha())
print(" ".isspace())
str1.isalnum()
str1 = "hello there 123"
print("str1.islower(): ",str1.islower())
str1.isupper()
str1.istitle()

ch=input("Enter Y to continue: ")

#username - username can have only alphabet and/or number

#first name - ABC XYZ

#methods (function in a class) v functions -independent

num1 = input("Enter a number: ")
if num1.isdigit():
num1=int(num1)
else:
print("You have not entered a valid number hence setting num1 to zero")
num1 = 0
print("num1 = ",num1)

# Exception Handling - to handle runtime errors - preferred

str1 = "HELLO"
#strings are immutable
print(str1[0])
#str1[0] = "K" #TypeError: 'str' object does not support item assignment
#str1 = "KELLO"
str1 = "K"+str1[1:]
print(str1)

str2="How are YOU? your Where are you? you are welcome"
str3 = str2.lower().replace("you","they",2) #old,new,count
print("After Replace: ",str3)
print("you" in str2)
print(str2.lower().find("you",9)) #find: substring, start, end

var1 = str2.split("o")
print(var1)
str5 = "o".join(var1)
print(str5)

#abc => abcing
#abing = abingly
inp_txt = input("Enter the word: ")
output=""
if inp_txt[-3:].lower()=="ing":
output= inp_txt+"ly"
else:
output = inp_txt+"ing"
print("Output text is",output)


str1 = "How are you doing today and whats plan for tomorrow"
l_str = ""
curr_str = ""
inx = 0
for c in str1:
inx+=1
if inx==len(str1):
curr_str = curr_str + c
if c.isspace() or inx==len(str1):
if len(curr_str) > len(l_str):
l_str=curr_str
curr_str=""
else:
curr_str=curr_str+c

print("Largest text is",l_str)
Python Zero to Hero
### DAY 1
print("Welcome")

val1 = 5
#val1 is a variable in this case
print("val1")
print("Value of variable val1 =",val1)

#type() - it gives the datatype of variable
print(type(val1)) # <class 'int'> integer: nondecimal value- -5, -99,0,9999999

val1 = 5.8
print("Value of variable val1 =",val1)
print(type(val1)) # <class 'float'> float: number with decimal value- -5.0, -99.1,0.0,9999999.5

val1 = 5j #it is same as i of Maths, square root of -1
print("Value of variable val1 =",val1)
print(type(val1)) # <class 'complex'>
print(val1 * val1)

val1 = "Good evening"
print("Value of variable val1 =",val1)
print(type(val1)) #<class 'str'> string - all kinds of text
val1 = "55"
val2 = 55
val3 = 44;val4 = "44";print(val1 + val4);
print(val2 + val3)

val1 = True #/ False
print("Value of variable val1 =",val1)
print(type(val1)) #<class 'bool'> - boolean just 2 values: True and False

# input() - used to read value from the user

name = input("Enter your name: ")
print(name)

## DAY 2: 11 DEC 2022
name = input("Enter your name: ") #automatically its gets converted into str - implicit conversion
marks1 = input("Enter marks in Subject 1: ")
marks1 = int(marks1) #explicit conversion
marks2 = int(input("Enter marks in Subject 2: "))
marks3 = int(input("Enter marks in Subject 3: "))
print(type(name))
print(type(marks1))

sum = marks1 + marks2 + marks3
avg = sum / 3
print(name, "scored a total of",sum,"marks at an average of",avg)

# f string - format string
print(f"{name} scored a total of {sum} marks at an average of {avg:.2f}%")

# <class 'str'> str()
# <class 'int'> int()
# <class 'float'> float()
# <class 'complex'> complex()
# <class 'bool'> bool()

length = int(input("Enter the length of the rectangle: "))
breadth = int(input("Enter the breadth of the rectangle: "))
area = length * breadth
perimeter = 2* (length + breadth)
print(f"The rectangle with dimensions {length} and {breadth} has an area of {area} and perimeter of {perimeter}")

#Operators
#math operations - Arithmetic operations
val1 = 10
val2 = 3
print(val1 + val2)
print(val1 - val2)
print(val1 * val2)
print(val1 / val2)
print(val1 ** val2) #power of val2
print(val1 // val2) #integer division -will result in integer only
print(val1 % val2) #modulo - remainder
print(16 ** 0.5)

#Comparison operators: == != < <= > >=
# input can be anything but output will always be BOOL value
a=10
b=3
c=10
print(a==b) #False
print(a!=b) #True
print(a==c) #True
print(a!=c) #False

print(a>b) #True
print(a>=c) #True
print(a<=c) #True
print(a<c) #False

#logical operators : AND OR NOT
#input has to be bool and output is also bool
#prediction; Sachin and Sehwag will open the batting for India
#actual: Sachin and Dravid opened the batting for India
# result - prediction is wrong

#prediction; Sachin or Sehwag will open the batting for India
#actual: Sachin and Dravid opened the batting for India
# result - prediction is Correct
print("Logical Operator:")
print(5>3 and 2 <6 or 8==9 and 7!=9 or 5!=7 and 10==10 or 4<5)

#T and T or F and T or T and T or T

#DAY 2: 12 DEC 2022
#########################
## Quadratic equation is of form: ax^2 + bx + c

# Discriminant: D = b^2-4ac
# (-b +/- sq root(D)) / 2a

# 3 x2 +x+5 = 0
a=3
b=1
c=5
D = b**2 - 4 * a * c
sol1 = (-b - D**0.5)/(2*a)
sol2 = (-b + D**0.5)/(2*a)

if D<0:
print("Discriminat: ",D)
print("Discriminant is -ve hence we have imaginary values for the x")
print(f"The value of x for the given quadratic equation is {sol1} and {sol2}")

#Prob 2: 2x2 -12x - 54 = 0
#sol1 = -3, 18 +36 - 54 = 0
#sol2 = 9: 162 -108 -54 = 0
a = 2
b = -12
c = -54
D = b**2 - 4 * a * c
sol1 = (-b - D**0.5)/(2*a)
sol2 = (-b + D**0.5)/(2*a)
if D<0:
print("Discriminant is -ve hence we have imaginary values for the x")
elif D>0:
print("Dicriminant is real and has 2 unique solutions")
print("Discriminat: ", D)
print(f"The value of x for the given quadratic equation is {sol1} and {sol2}")
else:
print("Dicriminant is real")
print("Dicriminant is real and has only one unique solution")
print(f"The value of x for the given quadratic equation is {sol1}")

number =-6
if number<0:
print("Its a negative number")
elif number>0:
print("Its positive number")
if number %2==0:
print("Its an even number")
if number%3==0:
print("The number is divisble by both 2 and 3")
else:
print("The number is divisble by 2 but not by 3")
else:
print("Its an odd number")
if number%3==0:
print("The number is divisble by only 3")
else:
print("The number is neither divisble by 2 nor by 3")
else:
print("Its zero")

marks1 =98
marks2 = 88
marks3 = 99
sum= marks1 + marks2 + marks3
avg = sum/3
print("Average marks obstained is :",avg)
if avg >=80:
print("Grade A")
if avg >=90:
print("You win President award")
elif avg >=70:
print("Grade B")
elif avg >=60:
print("Grade C")
elif avg >=50:
print("Grade D")
elif avg >=40:
print("Grade E")
else:
print("Grade F")

### DAY 4:
###################
#LOOPS - While loop - until condition is true
choice = "y"
while choice=="y" or choice=="Y":
print("Hello")
choice = input("Please type y to continue or anyother key to stop: ")



# For loop -
#range(a,b,c) : a=start value (inclusive), b=ending value(exclusive), c=increment value
# range() generates a range of values
# range(3,8,2) = 3,5,7
# range(3,9,2) = 3,5,7
# range(a,b) => c is default 1 (increment is 1)
# range(3,7) => 3, 4,5,6
# range(b) => default a = 0 , default c = 1
# range(4) => 0,1,2,3

for i in range(4):
print("Hello: ",i)

for i in range(3,8,2):
print("Hello: ",i)

print("hello",end=" ")
print("how",end=" ")
print("are",end=" ")
print("you")

for i in range(5):
print("*")

for i in range(5):
print("*",end=" ")
print()
start = 1
end = 10
for i in range(start,end+1):
if i ==end:
print(i)
else:
print(i,end=", ")

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()

k = 1
for j in range(5):
for i in range(k):
print("*", end=" ")
print()
k += 1 # k = k+1

### Assignment
'''
*
* *
* * * *
* *


'''

### DAY 5: 14 DEC 2022
### ###############
#While
# if marks <0 and >100 it should ignore it


while True:
name = input("Enter the name of the student: ")
sum = 0
sub_count = 0
while sub_count <=2:
marks = int(input("Enter marks in subject "+str(sub_count+1)+": ",))
if marks >100 or marks <0:
print("Invalid marks try again!")
continue
sub_count+=1
sum+=marks
avg = sum/3
print(f"The total marks obtained is {sum} and the average is {avg:.2f}")
choice = input("Please enter y to continue or anyother key to stop: ")
if choice !="y" and choice!="Y": #y
break #it throws you out of the current loop

#continue is a command that will take you to the beginning of the loop
#WAP to guess the number between 1 and 100
num = 50
count = 0
max_try = 10
while True:
guess=int(input("Guess the number: "))

if guess<0 or guess>100:
print("Invalid option try again!")
continue
count+=1
if guess == num:
print(f"Congratulations, you have guessed it right in {count} steps!")
break
elif guess < num:
print("The actual number is higher!")
else:
print("The actual number is lower!")
if count >=max_try:
print("You have reached the maximum tries. Please stop")
break

#WAP to guess the number between 1 and 100
import random
num = random.randint(1,100)
count = 0
max_try = 10
while True:
guess=int(input("Guess the number: "))

if guess<0 or guess>100:
print("Invalid option try again!")
continue
count+=1
if guess == num:
print(f"Congratulations, you have guessed it right in {count} steps!")
break
elif guess < num:
print("The actual number is higher!")
else:
print("The actual number is lower!")
if count >=max_try:
print("You have reached the maximum tries. Please stop")
break

####
number = 50
steps=0
print("Number Guessing Game! Guess the Number Between 1 and 100.")
while True:
check = int(input("Enter the value to check: "))
if check<1 or check>100:
print("Invalid Value. Please Try Again!")
continue
steps+=1
if check==number:
print(f"Value Matched! You got it right in {steps} steps.")
break
elif check <number:
print("Value is smaller. Please Try Again!")
else:
print("Value is greater. Please Try Again!")

list_of_value = [5,10,15,20,25,30,35] #LIST
print(type(list_of_value))
print(list_of_value)
print(list_of_value[2])

l1 = [5,10,15,20,25,30,35]
print(l1*3)

#append
list_of_value.append(45)
list_of_value.insert(2,12)
print(list_of_value)
#insert

# Battleship Challenge
import random
battle_pattern = []

total_rows = 5
total_cols = 5
for i in range(total_rows):
battle_pattern.append(['0 ']*5)

# created a function named display_battle() - user defined function
def display_battle(pattern):
for p in pattern:
print(" ".join(p))

display_battle(battle_pattern)
missle_row = random.randint(0,total_rows-1)
missle_col = random.randint(0,total_cols-1)
print(f"HINT: Missile is at Row: {missle_row} column {missle_col}")

#Try to attack
for y in range(4):
pred_row = int(input("Input the x corrodinate: "))
pred_col = int(input("Input the y corrodinate: "))

if pred_row == missle_row and pred_col ==missle_col:
print("Congratulations ! Missle destroyed")
break
elif pred_row >4 or pred_col > 4:
print("What are you doing? Where are you shooting?")
elif battle_pattern[pred_row][pred_col] =="X ":
print("You have already got that wrong! A chance wasted!")
else:
print("Missle not found at the location")
battle_pattern[pred_row][pred_col] = "X "
display_battle(battle_pattern)


#While loop

while True:
sum = 0
for i in range(3):
marks1 = int(input("Enter the marks: "))
sum+=marks1
avg = sum/3
print("Average of marks is:",avg)
ch = input("Press Y to continue or any other key to stop: ")
if ch!='y':
break #it breaks the loop - throw you out of the loop

# we find sum of all positive numbers that are entered, enter -999 to stop accepting

sum=0
while True:
value = int(input("Enter the value:"))
if value==-999:
print("Sum of all the positive numbers that you have entered = ",sum)
break
if value<=0:
print("Negative value hence ignoring!")
continue #you will be pushed to the beginning of the loop
sum+=value

#Strings
val1 = "Hello" # str with "
print(type(val1))
val1 = 'Welcome'
print(type(val1))
val1 = '''How are you?
where are you?
How long will you be there?'''
print(type(val1))
print(val1)
val1 = """I am fine
I am in your city
I will be here for next 7 days"""
print(type(val1))
print(val1)

# What's your name?
val2 = "What's your name?"
print(val2)
# He asked,"Where are you going?"
val2='He asked,"Where are you going?"'
print(val2)
# He asked,"What's your name?"

print('''He asked,"What's your name?"''')
print("He asked,\"What's your name?\"")

val1 = "Good"
val2 = "Evening"
print(val1+val2)
print(val1*3)
sum=0
for i in val2:
if i=='a' or i=="e" or i=='i' or i=="o" or i=="u":
sum+=1
print(f"Given text has {sum} vowels")

sum=0
for i in val2.lower(): #lower() converts into lowercase
if i=='a' or i=="e" or i=='i' or i=="o" or i=="u":
sum+=1
print(f"Given text has {sum} vowels")

#in - membership test - left side value is present in the right side or not
sum=0
for i in val2.lower(): #lower() converts into lowercase
if i in "aeiou": #True only if i value is present in right side text
sum+=1
print(f"Given text has {sum} vowels")

text1 = "Hello all"
#len() - counts the number of characters
print("Total characters in text1 is",len(text1))

#indexing - extracting portion of the data - subset
# [] is used for indexing
print(text1[0]) #first member of text1
print(text1[2]) #third member of text1
print(text1[len(text1)-1]) #last member
print(text1[len(text1)-3]) #third last member

print(text1[-1]) #last member
print(text1[-3]) #third last member

###### 17 DECEMBER 2022 ##########
str1 = 'Hello'
str2 = "Good"
str3 = '''How are you?
Where are you?'''
str4 = """I am fine"""
str5 = "What's your name?"
print(str5)
str6 = 'He asked,"How are you?"'
print(str6)

#He asked,"What's your name?"
print('''He asked,"What's your name?"''')
print('He asked,"What\'s your name?"')

text1 = "Good Evening"
print(text1[0])
print(text1[-1])
print(text1[1:4]) #from second character to 5th (upto)
tot_chars = len(text1)
print(text1[tot_chars-3:tot_chars]) # 9 to 12
print(text1[tot_chars-3:])
print(text1[:])
print(text1[-11:-8])
print(text1[-3:])

print("Good"+"Morning"*3)
for i in text1:
print(i,end="")
print()
txt1 = "how are you?"
print(txt1.lower())
print(txt1.upper())

print(txt1.islower())

txt3="GoOD mOrNIng"
txt4 = ""
#lowercase to upper and uppercase to lowe
for i in txt3:
if i.islower():
txt4=txt4+i.upper()
else:
txt4 = txt4 + i.lower()
print(txt4)
#want to count the number of spaces a text has
txt3="Go OD mOrN I n g "
count=0
for i in txt3:
if i.isspace():
count+=1

print("Total spaces: ",count)
cnt = txt3.count("O")
print("Total spaces = ",cnt)

cnt = txt3.lower().count("o")
print("Total spaces = ",cnt)
txt4 = "How are you doing and where are you going"
print(txt4.split())
txt6 = " - ".join(['How', 'are', 'you', 'doing', 'and', 'where', 'are', 'you', 'going'])

print(txt6)

marks = input("Enter marks: ")
if marks.isdigit():
marks = int(marks)
else:
print("Invalid marks")

# username can have only alphabet or number
marks = input("Enter username: ")
if marks.isalnum():
print("Username accepted")
else:
print("Invalid username")

######### 28 DEC 2022 - LIST
#List
l1 = [50,30,40.5,"Hello",[4,6,8]]
print(type(l1))
print(len(l1))
print(l1[0])
print(type(l1[0]))
l2 = l1[-1]
print(type(l2))
print(l1[-1][1])
print([10,20,30]+[4,5,6])
print([10,20,30] * 3)

a=5
#print(a[0])
val = [10,20,30]
for i in val:
print(i)

#methods of list
val = [10,20,30]
val.append(40)
val[0] = 100
print(val)

str1="hello"
#str1[0]= "H"
str1 = str1.upper()
print(str1)

# strings are immutable whereas Lists are mutable (editable)
val.insert(1,200)
print(val)
val.pop(2) #takes index
print(val)
val.remove(200)
print(val)
val1 = [6,12,18,24]
val2 = val+val1
print(val2)
val.extend(val1) # val = val + val1
print(val)

for i in range(3):
val.pop(1)
print(val)
val = [100, 30, 40, 6, 12, 18, 24]
print(val)
#remove position 2,4,6 = [2,3,5] [6,4,2]
for i in [6,4,2]:
val.pop(i)
print(val)
val = [100, 30, 40, 6, 12, 18, 24]
print(val)
#remove values 100, 40, 12
for i in [100, 40, 12]:
val.remove(i)
print(val)
val = [100, 30, 40, 6, 12, 18, 24]
val.sort()
val.reverse()
print(val)

## get marks of 5 subjects and do the sum and avg
master_list = []
while True:
sum = 0
marks_list = []
for i in range(5):
marks = int(input("Enter the marks in subject "+str(i+1)+": "))
sum+=marks
marks_list.append(marks)
avg = sum/5
print(f"Marks entered are: {marks_list} \nThe total marks obtained is {sum} and average is {avg}")
ch = bool(input("Enter any key to continue or blank to stop: "))
master_list.append(marks_list)
if not ch:
break


print("Master List: ",master_list)


'''
[[99, 88, 77, 66, 55],
[75, 86, 97, 58, 69],
[59, 74, 68, 78, 76]]

list[0][0]
'''
master_list = [[99, 88, 77, 66, 55], [75, 86, 97, 58, 69], [59, 74, 68, 78, 76]]
students = ["Kapil","Sunil","Dhoni"]
subjects = ["English","Hindi","Maths","Science","Social"]

'''
Kapil Sunil Dhoni
English
Hindi
Maths
Science
Social
'''

print(end="\t\t")
for i in range(len(students)):
print(students[i],end="\t\t")
print()

#col_ind = 0
for col_ind in range(5):
print(subjects[col_ind],end="\t")
for row_ind in range(3):
print(master_list[row_ind][col_ind],end="\t\t\t")
print()


################
'''
Input:
Year: 2022
Month: 12
Date: 19
Output:
19th December 2022
'''
Months = ['January','February','March','April','May','June','July','August','September',
'October','November','December']
ending = ['st','nd','rd'] + 17*['th'] + ['st','nd','rd'] + 7*['th'] + ['st']
year= input("Year: ")
month_num = int(input("Month: "))
date_num = int(input("Date: "))
result = str(date_num)+ ending[date_num-1]+' '+Months[month_num-1]+' '+year
print(result)

# Tuple
#Same as list - linear but difference is its immutable
t1 = (2,4,6,7,8,9,2,4,2,4,2,4)
print(type(t1))
print(t1.count(2))
print(t1.index(6))
print(t1[-1])
for i in t1:
print(i, end=", ")
print()
#Lists can be converted to Tuple and vice versa
t1 = list(t1)
print(type(t1))
t1 = tuple(t1)

t1 = ()
t1 = (1,)
print(type(t1))
t1 = (1,2,3,4,5) #packing
a,b,c,d,e = t1 #unpacking

val1 = (3,4,6)
val2 = (3,1,88)


#packing and unpacking

#Dictionary
details = {
"name": "Sachin T", "Runs": 15000, "Runs_desc": "Too many","City" : "Mumbai"
}
print(type(details))
print(details)
print(details["City"])
details2 = {
"team1":"Mumbai", "team2":"Mumbai Indias","team3": "India"
}
details.update(details2)
print(details)


## get marks of 5 subjects and do the sum and avg
master_list = {}
while True:
sum = 0
marks_list = []
name=input("Name of the student: ")
for i in range(5):
marks = int(input("Enter the marks in subject "+str(i+1)+": "))
sum+=marks
marks_list.append(marks)
avg = sum/5
print(f"Marks entered are: {marks_list} \nThe total marks obtained is {sum} and average is {avg}")
ch = bool(input("Enter any key to continue or blank to stop: "))
master_list.update({name:marks_list})
if not ch:
break

print("All information: \n",master_list)

t1 = (2,4,6,8)
print(t1)
t1=list(t1)
t1.append(10)
t1 = tuple(t1)
print(t1)

# Dictionary
dict1 = {"name": "Sachin",101: "Mumbai","Teams":["India","Mumbai","Mumbai Indians"]}
dict2 = {"Runs": 15000}
print(type(dict1))
print(dict1['name'])
dict1.update(dict2)
print(dict1)
print(dict1.keys())
for i in dict1.keys():
print(i, "->",dict1[i])

for i,k in dict1.items():
print(i,"->",k)
for j in dict1.values():
print(j,end=", ")
print()
dict1.popitem()
dict1.pop(101)
print(dict1)


boys = {1:"Rohit",2:"Rahul",3:"Kohli", 4:"Surya"}
girls = {11:"Harmanpreet", 21:"Smriti",31:"Poonam",41:"Taniya"}

#equal to = points to same value
dict1 = boys
print(dict1)
#copy - creates duplicate copy
players = dict1.copy()
print(players)
players.update(girls)
print(players)

p_type = []
for i, j in players.items():
if j in boys.values():
p_type.append("Boy")
elif j in girls.values():
p_type.append("Girl")
else:
p_type.append("NA")
print("Final list: ",p_type)

#Set
# D M C K P
# P D M K C
# P P P P P
set1 = {"Pune","Pune","Pune","Pune","Pune"}
print(type(set1))
print(set1)

list1 = [4,5,6,4,5,6,7,8,7,8,8,8,8]
print(list1)
list1 = set(list1)
list1 = list(list1)
print(list1)

#SET THEORY
set1 = {2,4,6,8}
set2 = {1,3,5,7,2,6,8,4}
print(type(set1))
for i in set1:
print(i)

#UNION: combine all the values
print(set1|set2)
print(set1.union(set2))

#INTERSECTION
print(set1 & set2)
print(set1.intersection(set2))

#DIFFERENCE
print(set1 - set2)
print(set1.difference(set2))

print(set2 - set1)
print(set2.difference(set1))

print(set1.symmetric_difference(set2))

print(set2.issuperset(set1))


#Functions: user defined functions
def myfunction1(a,b,c):
"""This is my own function to do something something
to just implement the function concept
@a: just a number
@b: another number
@c: another number
return: it returns the sum of a b and c"""
print(f"a={a}, b={b},c={c}")
print(a+b+c)
return a+b+c

def myfunction2(a,b=100,c=50): #default arguments
print(f"a={a}, b={b},c={c}")
print(a+b+c)

#keyword arguments (non-positional)
def myfunction3(a,b,c):
print(f"a={a}, b={b},c={c}")
print(a+b+c)

print("Here are a list of questions you need to ask:")
output = myfunction1(5,15,25)
print("Result is ",output)

myfunction2(20,30)
myfunction3(c=30,a=20,b=10) #keyword
l1 = [2,4,6]
putput = l1.append(8)
print(putput)
print(l1)

#1 required positional argument
print(myfunction1.__doc__)

import random
word_list = ["hello", "python","computer","india"]
word = random.choice(word_list)
#print(word.find("l"))
display_txt = "* "*len(word)
print("HINT: ",display_txt)
while True:
guess = input("Guess the character (a-z):")
guess = guess[0].lower()
if guess in word:
cnt_guess = word.count(guess)
st = 0
for i in range(cnt_guess):
idx = word.find(guess,st)
#0 -0 1 - 2 2 -4
display_txt = display_txt[:2*idx] + guess + display_txt[2*idx+1:]
st = idx+1
else:
print(f"{guess} not in the given word")
print(display_txt)
if "*" not in display_txt:
print("Congratulations! You have correctly guessed the word")
break

def input_num(n=0):
""" This function take number of elements for the size of list
and then takes the values, and returns list of values after using input"""
list1 = []
for i in range(n):
num = int(input("Enter number "+str(i+1)+": "))
list1.append(num)
return list1

def checkPrime(num):
isPrime = True
for i in range(2,num):
if num%i==0:
isPrime = False
return isPrime

def list_factors(num):
list_all_factors=[]
for i in range(1,num+1):
if num%i==0:
list_all_factors.append(i)
return list_all_factors

def create_fibo(n):
list_fibo = []
prev1,prev2=0,1
for i in range(n):
if i==0:
list_fibo.append(0)

elif i==1:
list_fibo.append(1)

else:
list_fibo.append(prev1+prev2)
prev1,prev2=prev2, prev1+prev2
return list_fibo

def sorting_val(type,*numbers, **address):
numbers=list(numbers)
if type==1: #bubble sort
for i in range(len(numbers)-1):
for j in range(len(numbers)-1-i):
if numbers[j]>numbers[j+1]:
numbers[j],numbers[j+1] = numbers[j+1], numbers[j]
print("Sorted elements are: ",numbers)
print("Address: \n",address)

items = int(input("Enter the number of elements to be declared: "))
values = input_num(items)
for value in values:
res = checkPrime(value)
if res:
print(f"The element {value} is a Prime,")
else:
print(f"The element {value} is not a Prime number.")
print(f"Factors of element {value} are: {list_factors(value)}")

values = create_fibo(items)
print("Values are: ",values)

sorting_val(1,12,5,17,18,7,19,3,4,7,name="Sachin", sports = "Cricket",city="Mumbai")


Access All the content on your Android Phone - Download Story Mantra App today!
OSError errno22 invalid argument in Python

What is OSError?
OSError is the type of error in OSError : [errno22] invalid argument. OSError is an error class for the OS module. It is a built-in exception in python, which is raised. It is raised when the error occurs due to some system failure. I/O failures also give rise to OSErrors.

When the disk is full, or the file cannot be found, OSError is raised. The subclasses of OSError are BlockingIOError, ChildProcessError, ConnectionError, FileExistsError, FileNotFoundError, etc. OSError itself is derived from the EnvironmentError.

What is errorno22 invalid argument?
As the name suggests, invalid argument errors occur when an invalid argument is passed to a function. If a function was expecting an argument of a particular data type but instead received an argument of a different data type, it will throw an invalid argument error.

import tensorflow as tf
tf.reshape(1,2)

This code will raise invalid argument error. The tf.reshape() function was expecting a tensor as an argument. But instead, it received 1 and 2 as the argument.

‘OSError : [errno22] invalid argument’ while using read_csv()
Read_csv() is a function in pandas which is used to read a csv file in python. We can read a csv file by accessing it through a URL or even locally. While reading a csv file using read_csv, python can throw OSError : [errno22] invalid argument error.

Let us try to understand it with the help of an example. The below code has been executed in python shell to access local files. First, we shall import the pandas file to use read_csv()

import pandas as pd
file = read_csv(“C:\textfile.csv”)

The above line of code will raise the below error.

OSError: [Errno 22] Invalid argument: ‘C:\textfile.csv’
The reason behind the error is that python does not consider the backslash. Because of that, it showed oserror invalid argument. So what we have to do is that instead of a backslash, we have to replace it with a forwarding slash.

Correct method:
file = read_csv(“C:/textfile.csv”)

‘OSError : [errno22] invalid argument’ while using open()
We can get OSError : [errno22] invalid argument error while opening files with the open() function. The open() function in python is used for opening a file. It returns a file object. Thus, we can open the file in read, write, create or append mode.
Let us understand the error by taking an example. We shall try to open a .txt file in read mode using open(). The file would be returned as an object and saved in variable ‘f’.

f = open(“C:\textfile.txt”,”r”)

The code will throw the below error.

Traceback (most recent call last):
File “”, line 1, in
f = open(“C:\textfile.txt”,”r”)
OSError: [Errno 22] Invalid argument: ‘C:\textfile.

The OSError : [errno22] invalid argument error has been thrown because of the same reason as before. Here also, python fails to recognize the backslash symbol. On replacing backslash with forward slash, the error will be resolved.

Correct format:
f = open(“C:/textfile.txt”,”r”)

‘OSError : [errno22] invalid argument’ while reading image using open()
The above error can appear while opening an image using the open() function even though the backslash character has been replaced with forward slash. Let us see the error using an example.

image = open(“C:/image1.jpg”)

The error thrown would be:

Traceback (most recent call last):
File “”, line 1, in
image = open(“‪C:/image1.jpg”)
OSError: [Errno 22] Invalid argument: ‘\u202aC:/image1.jpg’

This error mainly occurs because of the copying of the file path. The Unicode characters also get copied sometimes when we copy the file path from our local system or the internet.

The Unicode character, ‘\u202a’ in the above example, is not visible in the file pathname. ‘\u202a’ is the Unicode control character from left to right embedding. So, it causes the above oserror invalid arguments.

The solution to this is straightforward. We simply have to type the URL manually instead of copying it. Thus, the Unicode character will no longer be in the URL and the error will be resolved.

What do you think? Please share in the comment section.

Installation of Anaconda for Python on Local Machine

Installing on Windows

  1. Download the installer:

  2. Verify your installer hashes.

  3. Double-click the .exe file.

  4. Follow the instructions on the screen.

    If you are unsure about any setting, accept the defaults. You can change them later.

    When installation is finished, from the Start menu, open the Anaconda Prompt.

  5. Test your installation. In your terminal window or Anaconda Prompt, run the command conda list. A list of installed packages appears if it has been installed correctly.

Installing in silent mode

Note

The following instructions are for Miniconda. For Anaconda, substitute Anaconda for Miniconda in all of the commands.

To run the the Windows installer for Miniconda in silent mode, use the /S argument. The following optional arguments are supported:

  • /InstallationType=[JustMe|AllUsers]—Default is JustMe.

  • /AddToPath=[0|1]—Default is 0

  • /RegisterPython=[0|1]—Make this the system’s default Python. 0 indicates JustMe, which is the default. 1 indicates AllUsers.

  • /S—Install in silent mode.

  • /D=<installation path>—Destination installation path. Must be the last argument. Do not wrap in quotation marks. Required if you use /S.

All arguments are case-sensitive.

EXAMPLE: The following command installs Miniconda for the current user without registering Python as the system’s default:

start /wait "" Miniconda3-latest-Windows-x86_64.exe /InstallationType=JustMe /RegisterPython=0 /S /D=%UserProfile%\Miniconda3

Updating conda

  1. Open your Anaconda Prompt from the start menu.

  2. Navigate to the anaconda directory.

  3. Run conda update conda.

Uninstalling conda

  1. In the Windows Control Panel, click Add or Remove Program.

  2. Select Python X.X (Miniconda), where X.X is your version of Python.

  3. Click Remove Program.


Information is shared here from the official Anaconda website: 
https://docs.conda.io/projects/conda/en/latest/user-guide/install/windows.html
Refer this website to install on Linus, Mac etc
How to get date and time in Python

Python has a module called as datetime which gives the current date and time in Python. Datetime module comes with pre-built so we dont have to install it explicitly but we do need to import the module. datetime module provide some functions to get the current date as well as time. You can get complete information from the document website here. In this article, we will look at the some of the important functions and implement with examples. Let’s look at them.

date.today():
today() method of date class under datetime module returns a date object which contains the value of Today’s date.

Syntax: date.today()
Returns: Return the current local date.

Implementation of datetime

# Import the module datetime
import datetime as dt

# Returns the current local date using class date
today_date = dt.date.today()
print("Today's date: ", today_date)
# We can extract date, month and year separately too
print("Today's date: ", today_date.day,"-",today_date.month,"-",today_date.year)

To know what is inside datetime, we can use dir() function to get a list containing all attributes of a module.

import datetime
print(dir(datetime))

Output:

['MAXYEAR', 'MINYEAR', 'builtins', 'cached', 'doc', 'file', 'loader', 'name', 'package', 'spec', 'date', 'datetime', 'datetime_CAPI', 'sys', 'time', 'timedelta', 'timezone', 'tzinfo']

We have already seen the date class. Other commonly used classes are: time, datetime, timedelta

We can create object of Time class to represent time. example:

from datetime import time
import datetime as dt
from time import strftime

current_time = dt.datetime.now()
print("current_time =", current_time.time())
#change the format
print(dt.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))

# time(hour, minute and second)
time1 = time(11, 34, 56)
print("Given time =", time1)

time2 = time(hour = 11, minute = 34, second = 56)
print("Given time =", time2)

# time(hour, minute, second, microsecond)
time3 = time(11, 34, 56, 234566)
print("Given time =", time3)
How classes and objects are used in Python

Python is said to be a pure object oriented programming language and almost everything you come across in Python is an object. A class can be defined as a user-defined type that, by having its own methods (functions) and property (variables), define what object will look like. An object is a single instance of a class. You can create many objects from the same class type.

Creating a class in Python
class keyword is used in Python to create a class, an example is shown below. We create a class named Books with a property named total_count:

class Books:
total_count = 5

Creating an object
class is just a blueprint. In order to use the class, we need to create an object. In below example, lets create an object called learn_python and using this we will print the value of total_count:

class Books:
total_count = 5
python_book = Books()
print(python_book.total_count)

The init() Function
Let’s look at an important member of the class. We are talking about init() function. Infact all classes have this function, which is always called an object of the class in being created. This function is called automatically so you dont have to specifically call this. We use the init() function to initialize values or properties that needs to be assigned to the object immediately when created. In the below example, we create a class Books and using the init() function, we have automatically assigning title and the cost to the object:

class Books:
def __init__(self, title, cost):
self.title = title
self.cost = cost

python_book = Books("Learn and Practice Python Programming", 136)
print(python_book.title)
print(python_book.cost)

Object Functions
A class will also have object functions or methods. Functions that are defined in objects, belong to object (and not to the class). It means that the objects will use these functions and the result returned will be specific to the objects. These are characterised by self keyword as first parameter being passed. Let’s add a function to our class Books which will print the title of the book. This is called object function because it knows which objects are referencing and the title value is linked to that object only.
Example:

class Books:
def __init__(self, title, cost):
self.title = title
self.cost = cost
def gettitle(self):
print("Title of the book is: "+self.title)

python_book = Books("Learn and Practice Python Programming", 136)
print(python_book.title)
print(python_book.cost)
python_book.gettitle()

The self parameter used in object functions is to show the reference to the current object associated to the class.
Please note, it does not have to be named self, we can use any name we like it but whatever name we choose, that has to be the first parameter of the object functions.

We will end our discussion here. We will develop a mini application using classes in next article.