def printList(numbersList: list[list[int]], symbolsList: list[str]) : for line in numbersList : print(f"{line}") print(f"{symbolsList}") def parseInput() : numbers: list[list[int]] = [[]] for colNum in range(len(rawInput[0])) : numStr = "" for rowNum in range(len(rawInput) - 1) : char = rawInput[rowNum][colNum] if char != " " : numStr += char if len(numStr) > 0 : numbers[-1].append(int(numStr)) elif len(numbers[-1]) > 0: numbers.append([]) if len(numbers[-1]) == 0 : numbers.pop() symbols: list[str] = [] for sym in rawInput[-1].split(" ") : if len(sym.replace(" ", "")) == 0: continue symbols.append(sym.replace(" ", "")) return numbers, symbols def getValue(col: list[int], symbol: str) : if symbol == "+" : value = sum(col) else : value = prod(col) print(f"list = {col}, sym = {symbol}, Value = {value}") return value def prod(list: list[int]) : if len(list) == 0 : return 0 value = 1 for val in list : value *= val return value testInput = [ "123 328 51 64 ", " 45 64 387 23 ", " 6 98 215 314", "* + * + " ] def readFile() : ary = [] with open("files/Problem6.txt", "r") as file : for line in file : ary.append(line.replace("\n", "")) return ary #rawInput = testInput rawInput = readFile() numbers, symbols = parseInput() #printList(numbers, symbols) values: list[int] = [] for colNum in range(len(numbers)) : value = getValue(numbers[colNum], symbols[colNum]) values.append(value) print(f"Sum = {sum(values)}") #Sum = 9770311947567