#!/usr/bin/env python3 # -*- coding: utf-8 -*- part_sum = 0 matrix = [] input_file = open("input-ex.txt", "r") for line in input_file: matrix.append(line.strip()) input_file.close() zeilen = len(matrix) spalten = len(matrix[0]) num_list = [] for z in range(zeilen): pre_is_num = False num_start, num_end = 0, 0 num = "" for s in range(spalten): if matrix[z][s].isdigit() and s == spalten - 1: num += matrix[z][s] if num_start == 0: num_start = s num_end = s num_list.append([int(num), z, num_start, num_end]) elif pre_is_num and not matrix[z][s].isdigit(): num_end = s - 1 num_list.append([int(num), z, num_start, num_end]) pre_is_num = False elif not pre_is_num and matrix[z][s].isdigit(): num = matrix[z][s] num_start = s pre_is_num = True elif pre_is_num: num += matrix[z][s] for nu in num_list: ist_teil = False for z in range(nu[1]-1, nu[1]+2): for s in range(nu[2]-1, nu[3]+2): try: if matrix[z][s] != "." and not matrix[z][s].isdigit(): ist_teil = True except IndexError: pass if ist_teil: part_sum += nu[0] # ######### AUSGABE ######################################################### # Matrix-Ausgabe for x in matrix: print(x) print() print(f"Zeilen: {zeilen}") print(f"Spalten: {spalten}") print() # num_list ausgabe for n in num_list: print(n) # Solution: print(f"Lösung: {part_sum}")