# data = "xmul(2,4)&mul[3,7]!^don't()_mul(5,5)+mul(32,64](mul(11,8)undo()?mul(8,5))" PART1 = False with open('day3.txt') as f: l = [line.rstrip() for line in f] data = "" for line in l: data += line mul = [] if PART1: for i in range(len(data)): window = data[i:i+4] print("window=",window) if window == "mul(": for j in range(i+4,min(i+4+8,len(data))): print(data[j]) if data[j]==")": to_test = data[i+4:j] # print("to_test=", to_test) to_test = to_test.split(",") # print("to_test=", to_test) if len(to_test)==2: try : a,b = int(to_test[0]),int(to_test[1]) print("ab = ", a, b) mul.append(a*b) except : # print("not int") pass else : do = True for i in range(len(data)): window_do = data[i:i+7] print("window_do=",window_do) if window_do == "don't()": do = False elif "do()" in window_do: do = True window = data[i:i+4] print("window=",window) if window== "mul(": for j in range(i+4,min(i+4+8,len(data))): print(data[j]) if data[j]==")": to_test = data[i+4:j] # print("to_test=", to_test) to_test = to_test.split(",") # print("to_test=", to_test) if len(to_test)==2 and do: try : a,b = int(to_test[0]),int(to_test[1]) print("ab = ", a, b) mul.append(a*b) except : print("not int") pass print(mul) tot = sum(mul) print(tot)