diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..ebc23f8 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1 @@ +[AKG1301](https://github.com/AKG1301) diff --git a/easyPythonpi/easyPythonpi.py b/easyPythonpi/easyPythonpi.py index 98a64ce..003b874 100644 --- a/easyPythonpi/easyPythonpi.py +++ b/easyPythonpi/easyPythonpi.py @@ -54,248 +54,272 @@ def sort(list): # To bubble sort and array or list #method to print the 1st prime number between the range def printprime(start,end): - if start<=0: - start=1 - for i in range(start,end+1): - j=0 - for k in range(2,i): - if i%k==0: - j=1 - if j==0: - return i + if start<=0: + start=1 + for i in range(start,end+1): + j=0 + for k in range(2,i): + if i%k==0: + j=1 + if j==0: + return i #A method to convert Hexadecimal input to binary numbers def hex2bin(x): - x=str(x) - r='' - for i in x: - if i=='A': - r=r+'1010' - elif i=='B': - r=r+'1011' - elif i=='C': - r=r+'1100' - elif i=='D': - r=r+'1101' - elif i=='E': - r=r+'1110' - elif i=='F': - r=r+'1111' - else: - h=bin(int(i)) - n=h[2:] - for j in range(4): - if len(n)<4: - n='0'+n - - r=r+n - return r - + x=str(x) + r='' + for i in x: + if i=='A': + r=r+'1010' + elif i=='B': + r=r+'1011' + elif i=='C': + r=r+'1100' + elif i=='D': + r=r+'1101' + elif i=='E': + r=r+'1110' + elif i=='F': + r=r+'1111' + else: + h=bin(int(i)) + n=h[2:] + for j in range(4): + if len(n)<4: + n='0'+n + + r=r+n + return r + #A method to convert Octal input to binary numbers def oct2bin(x): - r='' - x=str(x) - for i in x: - h=bin(int(i)) - n=h[2:] - for i in range(3): - if len(n)<3: - n='0'+n - r=r+n - return r + r='' + x=str(x) + for i in x: + h=bin(int(i)) + n=h[2:] + for i in range(3): + if len(n)<3: + n='0'+n + r=r+n + return r #A method to convert binary input to decimal numbers def bin2dec(x): - x=list(str(x)) - l=len(x) - a=0 - r=0 - for i in range(l-1,-1,-1): - - r=r+(int(x[i])*(2**a)) - - a=a+1 - return r + x=list(str(x)) + l=len(x) + a=0 + r=0 + for i in range(l-1,-1,-1): + + r=r+(int(x[i])*(2**a)) + + a=a+1 + return r def createarray(length,dtype='int'): # To create an array of entered length and entered data type(interger data type is a default data type) - import numpy as np - a=[] #empty list - for i in range(length): - # if entered dtype is an interger - if dtype=='int': - e=int(input(f"Enter {i+1} element : ")) - a.append(e) - # if entered dtype is a string - elif dtype=='str' or dtype=='string': - e=str(input("Enter {i+1} element : ")) - a.append(e) - # if entered dtype is a float - elif dtype=='float': - e=float(input("Enter {i+1} element : ")) - a.append(e) - - - b=np.array(a) - return b + import numpy as np + a=[] #empty list + for i in range(length): + # if entered dtype is an interger + if dtype=='int': + e=int(input(f"Enter {i+1} element : ")) + a.append(e) + # if entered dtype is a string + elif dtype=='str' or dtype=='string': + e=str(input("Enter {i+1} element : ")) + a.append(e) + # if entered dtype is a float + elif dtype=='float': + e=float(input("Enter {i+1} element : ")) + a.append(e) + + + b=np.array(a) + return b def arrayrev(array): # To reverese the array elements - import numpy as np - r=[] - for i in range(len(array)-1,-1,-1): - r.append(array[i]) - a=np.array(r) - return a + import numpy as np + r=[] + for i in range(len(array)-1,-1,-1): + r.append(array[i]) + a=np.array(r) + return a def ispalindrome(x): # To check if the given parameter is palindrome or not - x=str(x) #explicitly convert into string data type so as to iterate through each character - r='' - for i in range(len(x)-1,-1,-1): - r=r+x[i] - if x==r: # if the parameter get matched with its reverse then returns true othewise false - return True - else: - return False + x=str(x) #explicitly convert into string data type so as to iterate through each character + r='' + for i in range(len(x)-1,-1,-1): + r=r+x[i] + if x==r: # if the parameter get matched with its reverse then returns true othewise false + return True + else: + return False def even_or_odd(data): - try : + try : if data%2==0: - return 'even' + return 'even' else: - return 'odd' - - except: - print("\nError occured, parameter passed should be purely numeric") + return 'odd' + + except: + print("\nError occured, parameter passed should be purely numeric") #Linked list def create_node(data): - class node: - def __init__(self,data): - self.data=data - self.next=None - - a=node(data) - return a + class node: + def __init__(self,data): + self.data=data + self.next=None + + a=node(data) + return a # to link a node with another node def node_link(a,b): - a.next=b - b.next=None - #a=node(data1) + a.next=b + b.next=None + #a=node(data1) # to count number of nodes def count_node(head): - if head is None: - return 0 - else: - temp=head - count=0 - while(temp!=None): - count=count+1 - temp=temp.next - return count + if head is None: + return 0 + else: + temp=head + count=0 + while(temp!=None): + count=count+1 + temp=temp.next + return count # to diplay a linked list whose header node is passed as an argument def display_nodes(head): - t=head - while t is not None: - print(t.data,"->",end="") - t=t.next - print("NULL") - + t=head + while t is not None: + print(t.data,"->",end="") + t=t.next + print("NULL") + # Matrix problems def matrix_add(array1,array2): - import numpy as np - - result=np.array(array1)+np.array(array2) - return result + import numpy as np + + result=np.array(array1)+np.array(array2) + return result def matrix_sub(array1,array2): - import numpy as np - - result=np.array(array1)-np.array(array2) - return result - + import numpy as np + + result=np.array(array1)-np.array(array2) + return result + # Multiplication of two def matrix_mul(matrix1,matrix2): - import numpy as np - matrix1=np.array(matrix1) # converting list into array - matrix2=np.array(matrix2) - a=list(matrix1.shape) # getting the shape of the array - b=list(matrix2.shape) - if len(a)==1: - k=a[0] # suppose if row is one , for eg [1,2,3] ,then shape returns (3,) instead of [1,3].. - a[1]=k - a[0]=1 # here first element becomes last element and in place of first element , 1 is appended.. - if a[1]==b[0]: # from matrix multiplication convention, number of columns of first matrix needs to be equal to number of rows of second matrix - tt=[] - for i in range(b[0]): - u=[] - for j in range(b[0]): - u.append(matrix2[j][i]) - tt.append(u) - t=np.array(tt) # arrays of coloumn of second matrix - pp=[] - - for k in range(b[0]): - ar=[] - for l in range(b[0]): - y=matrix1[k]*t[l] # multiplication of rows and columns - ar.append(list(y)) # appending the result into a list - pp.append(ar) - l=[] - for i in pp: - zz=[] - for j in i: - sum1=0 - for c in j: - sum1=sum1+c # sum all the element of each row each column - zz.append(sum1) - l.append(zz) # appending the sum of each row and column of result matrix into a list - l=np.array(l) # convert the list of result matrix into array - return l - - + import numpy as np + matrix1=np.array(matrix1) # converting list into array + matrix2=np.array(matrix2) + a=list(matrix1.shape) # getting the shape of the array + b=list(matrix2.shape) + if len(a)==1: + k=a[0] # suppose if row is one , for eg [1,2,3] ,then shape returns (3,) instead of [1,3].. + a[1]=k + a[0]=1 # here first element becomes last element and in place of first element , 1 is appended.. + if a[1]==b[0]: # from matrix multiplication convention, number of columns of first matrix needs to be equal to number of rows of second matrix + tt=[] + for i in range(b[0]): + u=[] + for j in range(b[0]): + u.append(matrix2[j][i]) + tt.append(u) + t=np.array(tt) # arrays of coloumn of second matrix + pp=[] + + for k in range(b[0]): + ar=[] + for l in range(b[0]): + y=matrix1[k]*t[l] # multiplication of rows and columns + ar.append(list(y)) # appending the result into a list + pp.append(ar) + l=[] + for i in pp: + zz=[] + for j in i: + sum1=0 + for c in j: + sum1=sum1+c # sum all the element of each row each column + zz.append(sum1) + l.append(zz) # appending the sum of each row and column of result matrix into a list + l=np.array(l) # convert the list of result matrix into array + return l + + def matrix_shape(matrix1): - import numpy as np - matrix1=np.array(matrix1) - a=list(matrix1.shape) - if len(a)==1: - k=a[0] - a[1]=k - a[0]=1 - return a #returns shape of a matrix + import numpy as np + matrix1=np.array(matrix1) + a=list(matrix1.shape) + if len(a)==1: + k=a[0] + a[1]=k + a[0]=1 + return a #returns shape of a matrix def matrix_transpose(matrix1): - import numpy as np - matrix1=np.array(matrix1) # converting list into array - a=list(matrix1.shape) # getting the shape of the array - tt=[] - for i in range(a[0]): - u=[] - for j in range(len(a)): - u.append(matrix1[j][i]) - tt.append(u) - t=np.array(tt) # get a transpose of matrix1 - return t - + import numpy as np + matrix1=np.array(matrix1) # converting list into array + a=list(matrix1.shape) # getting the shape of the array + tt=[] + for i in range(a[0]): + u=[] + for j in range(len(a)): + u.append(matrix1[j][i]) + tt.append(u) + t=np.array(tt) # get a transpose of matrix1 + return t + +def remove_punctuation(my_str): + punctuations = '''!()-[]{};:'"\,<>./?@#$%^&*_~''' + # remove punctuations from the string + no_punct = "" + #run a for loop and traverse every element in a string and check ,if char is not match with punctuations char then it will add in no_punct + for char in my_str: + if char not in punctuations: + no_punct = no_punct + char + #return no_punct + return no_punct + +def count_vowels(ip_str): + # string of vowels + vowels = 'aeiou' + # make it suitable for comparisions + ip_str = ip_str.casefold() + + # make a dictionary with each vowel a key and value 0 + count = {}.fromkeys(vowels,0) + + # count the vowels + for char in ip_str: + if char in count: + count[char] += 1 + + #return the count dictionary + return count - - -