import streamlit as st import inspect from numpy.random.mtrand import vonmises # ========================================================= # PAGE CONFIG # ========================================================= st.set_page_config( page_title="Ranadeep Python Function Viewer", page_icon="๐ป", layout="wide" ) # ========================================================= # CUSTOM CSS # ========================================================= st.markdown(""" """, unsafe_allow_html=True) # ========================================================= # CLASS OPERATIONS # ========================================================= class Operations: # BASIC FUNCTIONS def add(self, x, y): """Adds two numbers""" return x + y def subtract(self, x, y): """Subtracts second number from first number""" return x - y def multiply(self, a, b): """Multiplies two numbers""" return a * b def divide(self, x, y): """Divides two numbers""" if y == 0: return "Cannot divide by zero" return x / y # POWER FUNCTIONS def square(self, numbers): """Returns square of numbers""" result = [] for i in numbers: result.append(i * i) return result def cube(self, numbers): """Returns cube of numbers""" result = [] for i in numbers: result.append(i * i * i) return result def power(self, numbers, p): """Returns power of numbers""" result = [] for i in numbers: result.append(i ** p) return result def sqrt(self, numbers): """Returns square root of numbers""" result = [] for i in numbers: result.append(i ** 0.5) return result # ARRAY FUNCTIONS def maximum(self, numbers): """Returns maximum number""" return max(numbers) def minimum(self, numbers): """Returns minimum number""" return min(numbers) def sort(self, numbers): """Sorts array""" n = len(numbers) for i in range(n): for j in range(0, n - i - 1): if numbers[j] > numbers[j + 1]: numbers[j], numbers[j + 1] = numbers[j + 1], numbers[j] return numbers def unique(self, numbers): """Removes duplicate values""" result = [] for i in numbers: if i not in result: result.append(i) return result def reverse_array(self, numbers): """Reverses list""" result = [] for i in range(len(numbers)-1, -1, -1): result.append(numbers[i]) return result def even(self, numbers): """Returns even numbers""" result = [] for i in numbers: if i % 2 == 0: result.append(i) return result def odd(self, numbers): """Returns odd numbers""" result = [] for i in numbers: if i % 2 != 0: result.append(i) return result def count(self,numbers): """ This function returns the number of numbers """ total = 0 for i in numbers: total += 1 return total def remove_duplicates(self,numbers): """ This function removes duplicate numbers """ result = [] for i in numbers: if i not in result: result.append(i) return result def frequency(self,numbers): """ This function returns the frequency of numbers """ result = {} for i in numbers: if i in result: result[i] += 1 else: result[i] = 1 return result def remove_negative(self,numbers): """ This function removes negative numbers """ result = [] for i in numbers: if i >= 0: result.append(i) return result def find_index(self,numbers, value): """ This function returns the index of a number """ for i in range(len(numbers)): if numbers[i] == value: return i return -1 def concatenate(self,a, b): """ This function concatenates a list of numbers """ result = [] for i in a: result.append(i) for j in b: result.append(j) return result def repeat(self,numbers, times): """ This function repeats a list of numbers """ result = [] for i in numbers: for j in range(int(times)): result.append(i) return result def equal(self,a, b): """ This function returns the equal arrays """ if len(a) != len(b): return False for i in range(len(a)): if a[i] != b[i]: return False return True def bubble_sort(self,numbers): """ This function returns the bubble sort """ n = len(numbers) for i in range(n): for j in range(0, n - i - 1): if numbers[j] > numbers[j + 1]: numbers[j], numbers[j + 1] = numbers[j + 1], numbers[j] return numbers def linear_search(self,numbers, target): """ This function returns the linear search """ for i in range(len(numbers)): if numbers[i] == target: return i return -1 def zeros(self,size): """ Returns a list of zeros """ result = [] size = int(size) for i in range(size): result.append(0) return result def standardize(self,numbers): """ Standardizes array values """ mean_value = sum(numbers) / len(numbers) variance = 0 for i in numbers: variance += (i - mean_value) ** 2 variance /= len(numbers) std = variance ** 0.5 result = [] for i in numbers: result.append((i - mean_value) / std) return result def slice(self,numbers, start, end): """ Returns sliced array """ start = int(start) end = int(end) result = [] for i in range(start, end): result.append(numbers[i]) return result def sorted(self,numbers): """ Checks if array is sorted """ for i in range(len(numbers) - 1): if numbers[i] > numbers[i + 1]: return False return True def padding(self,numbers, size, value): """ Pads array with a value """ numbers = list(numbers) size = int(size) result = numbers[:] while len(result) < size: result.append(value) return result # NUMBER FUNCTIONS def factorial(self, number): """Returns factorial""" number = int(number) result = 1 for i in range(1, number + 1): result *= i return result def fibonacci(self, limit): """Returns fibonacci series""" limit = int(limit) a = 0 b = 1 result = [] for i in range(limit): result.append(a) c = a + b a = b b = c return result def prime(self, number): """Checks prime number""" number = int(number) if number <= 1: return False for i in range(2, number): if number % i == 0: return False return True def armstrong(self, number): """Checks armstrong number""" total = 0 temp = number digits = len(str(number)) while temp > 0: digit = temp % 10 total += digit ** digits temp = temp // 10 return total == number # STRING FUNCTIONS def palindrome(self, value): """Checks palindrome""" text = str(value) return text == text[::-1] def reverse_string(self, text): """Reverses string""" result = "" for i in text: result = i + result return result def vowels(self, text): """Counts vowels""" count = 0 for i in text.lower(): if i in "aeiou": count += 1 return count # MATRIX FUNCTIONS def matrix_addition(self, a, b): """Adds matrices""" result = [] for i in range(len(a)): row = [] for j in range(len(a[0])): row.append(a[i][j] + b[i][j]) result.append(row) return result def matrix_subtract(self, a, b): """Subtracts matrices""" result = [] for i in range(len(a)): row = [] for j in range(len(a[0])): row.append(a[i][j] - b[i][j]) result.append(row) return result def transpose(self, matrix): """Returns transpose matrix""" result = [] rows = len(matrix) cols = len(matrix[0]) for i in range(cols): row = [] for j in range(rows): row.append(matrix[j][i]) result.append(row) return result def matrix_multiplication(self,a, b): """ This function multiplies two matrices """ result = [[0 for j in range(len(b[0]))] for i in range(len(a))] for i in range(len(a)): for j in range(len(b[0])): for k in range(len(b)): result[i][j] += a[i][k] * b[k][j] return result def shape(self,matrix): """ This function returns the shape of a matrix """ rows = len(matrix) cols = len(matrix[0]) return (rows, cols) def flatten(self,matrix): """ Converts matrix into single list """ result = [] for row in matrix: for item in row: result.append(item) return result def trace(self,matrix): """ This function returns the trace """ total = 0 for i in range(len(matrix)): total += matrix[i][i] return total def scalar_multiply(self,matrix, scalar): """ This function returns the scalar multiplication """ result = [] for row in matrix: new_row = [] for value in row: new_row.append(value * scalar) result.append(new_row) return result def reverse_rows(self,matrix): """ This function returns the reverse rows """ result = [] for row in matrix: result.append(row[::-1]) return result def reshape(self,numbers, rows, cols): """ Reshapes a list into matrix form """ result = [] index = 0 for i in range(rows): row = [] for j in range(cols): row.append(numbers[index]) index += 1 result.append(row) return result def row_sum(self,matrix): """ Returns sum of each row """ result = [] for row in matrix: total = 0 for value in row: total += value result.append(total) return result def column_sum(self,matrix): """ Returns sum of each column """ result = [] cols = len(matrix[0]) for i in range(cols): total = 0 for j in range(len(matrix)): total += matrix[j][i] result.append(total) return result # Statistics def mean(self,numbers): """ This function returns the mean of a list of numbers """ total = sum(numbers) count = len(numbers) result = total / count return result def median(self,numbers): """ This function returns the median of a list of numbers """ numbers = sorted(numbers) n = len(numbers) middle = n // 2 if n % 2 == 0: return (numbers[middle - 1] + numbers[middle]) / 2 else: return numbers[middle] def mode(self,numbers): """ This function returns the mode of a list of numbers """ frequency = {} for i in numbers: if i in frequency: frequency[i] += 1 else: frequency[i] = 1 max_count = 0 mode_value = None for key in frequency: if frequency[key] > max_count: max_count = frequency[key] mode_value = key return mode_value def variance(self,numbers): """ This function returns the variance """ mean = sum(numbers) / len(numbers) total = 0 for i in numbers: total += (i - mean) ** 2 return total / len(numbers) def standard_deviation(self,numbers): """ This function returns the standard deviation """ mean = sum(numbers) / len(numbers) total = 0 for i in numbers: total += (i - mean) ** 2 variance = total / len(numbers) return variance ** 0.5 def mean_absolute_difference(self,numbers): """ This function returns the mean absolute difference """ avg = sum(numbers) / len(numbers) total = 0 for i in numbers: total += abs(i - avg) return total / len(numbers) def normalize(self,numbers): """ This function normalizes a list of numbers """ min_value = min(numbers) max_value = max(numbers) result = [] for i in numbers: value = (i - min_value) / (max_value - min_value) result.append(value) return result # Linear/Vector Algebra Functions def dot_product(self,a, b): """ This function returns the dot product """ result = 0 for i in range(len(a)): result += a[i] * b[i] return result def add_arrays(self,a, b): """ This function adds two arrays """ result = [] for i in range(len(a)): result.append(a[i] + b[i]) return result def multiply_arrays(self,a, b): """ This function multiply two arrays """ result = [] for i in range(len(a)): result.append(a[i] * b[i]) return result # ========================================================= # OBJECT # ========================================================= obj = Operations() # ========================================================= # FUNCTION CATEGORIES # ========================================================= categories = { "โ Basic Functions": [ ("โ add", "add"), ("โ subtract", "subtract"), ("โ multiply", "multiply"), ("โ divide", "divide") ], "โก Power Functions": [ ("โฌ square", "square"), ("๐ง cube", "cube"), ("โก power", "power"), ("โ sqrt", "sqrt") ], "๐ Array Functions": [ ("๐ maximum", "maximum"), ("๐ minimum", "minimum"), ("๐ sort", "sort"), ("โป unique", "unique"), ("๐ reverse_array", "reverse_array"), ("2๏ธโฃ even", "even"), ("1๏ธโฃ odd", "odd"), ("๐ข count", "count"), ("โป remove_duplicates", "remove_duplicates"), ("๐ frequency", "frequency"), ("๐ซ remove_negative", "remove_negative"), ("๐ find_index", "find_index"), ("๐ concatenate", "concatenate"), ("๐ repeat", "repeat"), ("โ equal", "equal"), ("๐ซง bubble_sort", "bubble_sort"), ("๐ linear_search", "linear_search"), ("0๏ธโฃ zeros", "zeros"), ("โ๏ธ standardize", "standardize"), ("โ๏ธ slice", "slice"), ("โ sorted", "sorted"), ("๐งฉ padding", "padding"), ], "๐ข Number Functions": [ ("โ factorial", "factorial"), ("๐ fibonacci", "fibonacci"), ("๐ prime", "prime"), ("๐ช armstrong", "armstrong") ], "๐ค String Functions": [ ("๐ช palindrome", "palindrome"), ("๐ reverse_string", "reverse_string"), ("๐ ฐ vowels", "vowels") ], "๐งฎ Matrix Functions": [ ("โ matrix_addition", "matrix_addition"), ("โ matrix_subtract", "matrix_subtract"), ("๐ transpose", "transpose"), ("โ matrix_multiplication", "matrix_multiplication"), ("๐ shape", "shape"), ("๐งพ flatten", "flatten"), ("๐บ trace", "trace"), ("๐ข scalar_multiply", "scalar_multiply"), ("๐ reverse_rows", "reverse_rows"), ("๐ reshape", "reshape"), ("๐ row_sum", "row_sum"), ("๐ column_sum", "column_sum"), ], "๐ Statistics": [ ("๐ mean", "mean"), ("๐ median", "median"), ("๐ mode", "mode"), ("๐ variance", "variance"), ("๐ standard_deviation", "standard_deviation"), ("โ mean_absolute_difference", "mean_absolute_difference"), ("โ normalize", "normalize"), ], "๐งฎ Linear/Vector Algebra Functions": [ ("๐งฒ dot_product", "dot_product"), ("โ add_arrays", "add_arrays"), ("โ multiply_arrays", "multiply_arrays"), ] } # ========================================================= # FUNCTIONS DICTIONARY # ========================================================= functions = { name: getattr(obj, name) for name in dir(obj) if callable(getattr(obj, name)) and not name.startswith("__") } # ========================================================= # HEADER BANNER # ========================================================= st.markdown("""