Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 10 additions & 8 deletions py/p1.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,15 @@
# ***
# *****

def asterisk_tree(height,level):
if level > height:
return
for j in range(2*level-1):
print("*", end="")
print()
asterisk_tree(height, level + 1)
def asterisk_tree(height, level):
if level > height:
return
for j in range(height - level):
print(" ", end="")
for j in range(2 * level - 1):
print("*", end="")
print()
asterisk_tree(height, level + 1)

n=int(input("Enter height of tree : "))
n = int(input("Enter height of tree: "))
asterisk_tree(n, 1)
25 changes: 12 additions & 13 deletions py/p10.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
#Finding Average RGB values using the listmaker fuction to generate list of rgb values for a pixel

def listmaker(r,g,b,list1=[]):
list1.append(r)
list1.append(g)
list1.append(b)
return list1
def listmaker(r, g, b):
return [r, g, b]

pixel1=listmaker(23,78,34)
pixel2=listmaker(210,56,67)
pixel3=listmaker(23,78,248)
r=(pixel1[0]+pixel2[0]+pixel3[0])/3
g=(pixel1[1]+pixel2[1]+pixel3[1])/3
b=(pixel1[2]+pixel2[2]+pixel3[2])/3
rgb=[r,g,b]
print("Average RGB values of the pixels are",rgb)
pixel1 = listmaker(23, 78, 34)
pixel2 = listmaker(210, 56, 67)
pixel3 = listmaker(23, 78, 248)

r = (pixel1[0] + pixel2[0] + pixel3[0]) / 3
g = (pixel1[1] + pixel2[1] + pixel3[1]) / 3
b = (pixel1[2] + pixel2[2] + pixel3[2]) / 3

rgb = [r, g, b]
print("Average RGB values of the pixels are", rgb)
8 changes: 4 additions & 4 deletions py/p11.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Function to convert decimal to binary number

def binaryconversion(n):
print(n % 2,end = '')
if n > 1:
binaryconversion(n/2)
if n > 1:
binaryconversion(n // 2)
print(n % 2, end='')

number=int(input("Enter Number: "))
number = int(input("Enter Number: "))
binaryconversion(number)
print()
25 changes: 7 additions & 18 deletions py/p12.py
Original file line number Diff line number Diff line change
@@ -1,30 +1,19 @@
# Program to multiply two matrices using nested loops

import sys

A = [[1,2,3],[4,5,6],[7,8,9]]
B = [[10,11,12],[13,14,15],[16,17,18]]

p = len(A)
q = len(A[0])

t = len(B)
r = len(B[0])
if(q!=t):

if q != t:
print("Error! Matrix sizes are not compatible")
quit()
sys.exit()

C = []
for row in range(p):
curr_row = []
for col in range(r):
curr_row.append(0)
C.append(curr_row)
C = [[sum(A[i][k] * B[k][j] for k in range(q)) for j in range(r)] for i in range(p)]

for i in range(p):
for j in range(r):
curr_val = 0
for k in range(q):
curr_val += A[i][k]*B[k][j]
C[i][j] = curr_val

print(C)
12 changes: 7 additions & 5 deletions py/p2.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
#program to print an input as the only member of an array everytime the function is called
# input- 1 -> output- [1], input- 2 -> output- [2]

def add_item(item, items=[]):
items.append(item)
return items
def add_item(item, items=None):
if items is None:
items = []
items.append(item)
return items

print(add_item(1))
print(add_item(2))
print(add_item(1)) # Output: [1]
print(add_item(2)) # Output: [2]
15 changes: 6 additions & 9 deletions py/p3.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
#program to remove all even numbers from the beginning of a list
#eg: [2, 4, 6, 17, 10] -> [17, 10]

def delete_starting_evens(list):
for item in list:
if list[0] % 2 == 0:
list.pop(0)
else:
break
return list
def delete_starting_evens(lst):
while lst and isinstance(lst[0], int) and lst[0] % 2 == 0:
lst.pop(0)
return lst

list = [2, 8, 10, 11]
print(delete_starting_evens(list))
lst = [2, 8, 10, 11]
print(delete_starting_evens(lst))
17 changes: 10 additions & 7 deletions py/p4.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,20 @@

def countSort(arr):
k = max(arr)
count = [0 for i in range(k+1)]
ans = [0 for i in range(len(arr))]
count = [0 for _ in range(k + 1)]
ans = [0 for _ in range(len(arr))]

for i in arr:
count[i] += 1
for i in range(k+1):
count[i] += count[i-1]
for i in range(len(arr)-1, -1, -1):
ans[count[arr[i]]] = arr[i]
for i in range(1, k + 1):
count[i] += count[i - 1]

for i in range(len(arr) - 1, -1, -1):
ans[count[arr[i]] - 1] = arr[i]
count[arr[i]] -= 1

return ans

arr = [3, 4, 12, 2, 4, 5, 5, 6, 12, 33, 10, 1, 2, 8, 6]
ans = countSort(arr)
print (f"Sorted character array is {ans}")
print(f"Sorted array is {ans}")
5 changes: 2 additions & 3 deletions py/p5.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,9 @@ def get_number():
val1 = input('Enter a number: ')
val1 = int(val1)

str_to_print = '{:.1f}'.format(val1)
return str_to_print
return val1

except ValueError:
get_number()
return get_number()

print(get_number())
2 changes: 1 addition & 1 deletion py/p6.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ def addBinary(a: str, b: str) -> str:
i = len(a) - 1
j = len(b) - 1

while i >= 0 or j >= 0:
while i >= 0 or j >= 0 or carry:
if i >= 0:
carry += int(a[i])
i -= 1
Expand Down
22 changes: 11 additions & 11 deletions py/p7.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,21 +14,21 @@ def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
tail = dummyHead
carry = 0

while l1 is not None or l2 is not None or carry != 0:
digit1 = l1.val if l1 is not None else 0
digit2 = l2.val if l2 is not None else 0
while l1 or l2 or carry:
digit1 = l1.val if l1 else 0
digit2 = l2.val if l2 else 0

sum = digit1 + digit2 + carry
digit = sum % 10
carry = sum // 10
total_sum = digit1 + digit2 + carry
digit = total_sum % 10
carry = total_sum // 10

newNode = ListNode(digit)
tail.next = newNode
tail = tail.next

l1 = l1.next if l1 is not None else None
l2 = l2.next if l2 is not None else None
if l1:
l1 = l1.next
if l2:
l2 = l2.next

result = dummyHead.next
dummyHead.next = None
return result
return dummyHead.next
21 changes: 7 additions & 14 deletions py/p8.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,20 @@

class Node(object):
# Doubly linked node
def __init__(self, data=None, next=None, prev=None):
def _init_(self, data=None, next=None, prev=None):
self.data = data
self.next = next
self.prev = prev

class doubly_linked_list(object):
def __init__(self):
def _init_(self):
self.head = None
self.tail = None
self.count = 0

def append_item(self, data):
# Append an item
new_item = Node(data, None, None)
new_item = Node()
if self.head is None:
self.head = new_item
self.tail = self.head
Expand All @@ -26,16 +26,9 @@ def append_item(self, data):

self.count += 1

def print_foward(self):
print(self.iter())

def iter(self):
# Iterate the list
current = self.head
while current:
item_val = current.data
current = current.next
yield item_val
def print_forward(self):
for item in self.iter():
print(item)

items = doubly_linked_list()
items.append_item('C#')
Expand All @@ -45,4 +38,4 @@ def iter(self):
items.append_item('Python')

print("Print Items in the Doubly linked:")
items.print_foward()
items.print_forward()
1 change: 0 additions & 1 deletion py/p9.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
#Note : Pangrams are words or sentences containing every letter of the alphabet at least once.

import string
import sys

# Define a function named 'ispangram' that checks if a string is a pangram
def ispangram(str1, alphabet=string.ascii_lowercase):
Expand Down