import ast # Press Shift+F10 to execute it or replace it with your code. # Press Double Shift to search everywhere for classes, files, tool windows, actions, and settings. VERSION = "0.0.0" sContinue = True state = [] def show_help(): print("vector [5,6,7...] - set the current dataset to the given vector") print("stdd - get the standard deviation of the current dataset") print("mean - get the mean of the current dataset") print("median - get the median of the current dataset") print("mode - get the mode of the current dataset") print("var - get the variance of the current dataset") print("print - prints the current dataset") print("clear - clears the current dataset") print("clr - clears the screen") def get_mean(): """ Get the mean value of the state vector. :return: The average value of the state vector. """ global state mean = sum(state) / len(state) return mean def get_median(): """ This function calculates the median of the state vector. The implementation uses the algorithm based on sorting. :return: The median value of the sorted `state` list. """ global state state.sort() n = len(state) median = 0 if n % 2 == 0: median = (state[n // 2 - 1] + state[n // 2]) / 2 else: median = state[n // 2] return median def start_shell(): global state state = [] print(f'Welcome to math-shell v{VERSION}') handle_input() def handle_input(): global state value = [] print('>>>', end=' ') i = input() should_split = i.__contains__(' ') if should_split: command, value = i.split(sep=' ', maxsplit=1) value = ast.literal_eval(value) else: command = i match command.lower(): case 'vector': state = value print(f"Set state to: {value}") case 'mean': print(get_mean()) case 'print': if state is not None: print(f"{state}") else: print("No state") case 'exit': return False case other: show_help() return True if __name__ == '__main__': start_shell() while sContinue: sContinue = handle_input()