Нен работает
This commit is contained in:
77
2025/day06/part2_lexx.py
Normal file
77
2025/day06/part2_lexx.py
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
from functools import reduce
|
||||||
|
from pprint import pprint
|
||||||
|
# обрабатывваем инпут, возвращает karta.
|
||||||
|
# karta: list[list] = [[123,328,51,64],
|
||||||
|
# [45,64,387,23],
|
||||||
|
# [6,98,215,314],
|
||||||
|
# ['*','+','*','+']]
|
||||||
|
input = """123 328 51 64
|
||||||
|
45 64 387 23
|
||||||
|
6 98 215 314
|
||||||
|
* + * +
|
||||||
|
"""
|
||||||
|
with open("input_lexx.txt", "r") as file:
|
||||||
|
input = file.read()
|
||||||
|
karta = []
|
||||||
|
for row in input.splitlines():
|
||||||
|
karta.append([])
|
||||||
|
for elemet in row.split(' '):
|
||||||
|
# print(elemet)
|
||||||
|
if elemet == '':
|
||||||
|
pass
|
||||||
|
elif elemet == '*':
|
||||||
|
# print("elemet == '*'",type(elemet))
|
||||||
|
karta[-1].append(str(elemet))
|
||||||
|
elif elemet == '+':
|
||||||
|
# print("elemet == '+'",type(elemet))
|
||||||
|
karta[-1].append(str(elemet))
|
||||||
|
else:
|
||||||
|
# print(type(elemet))
|
||||||
|
karta[-1].append(int(elemet))
|
||||||
|
# print("end of row")
|
||||||
|
|
||||||
|
# функция собирающая строчку из списка
|
||||||
|
stroka: list[int]= []
|
||||||
|
move: str = ""
|
||||||
|
final_result: int = 0
|
||||||
|
new_karta:list[list[str]] = [ [''] * (len(karta[0])-1) for i in range((len(karta)-1)* len(karta[0]))]
|
||||||
|
# print("new_karta",new_karta)
|
||||||
|
print("="*10)
|
||||||
|
print(f"Предстоит создать и обрабоать {len(karta[0])} строк")
|
||||||
|
counter: int = (len(karta) - 1 )* len(karta[0])
|
||||||
|
while counter >= 1:
|
||||||
|
for y in range(len(karta[0])):
|
||||||
|
print("="*10)
|
||||||
|
print(f"Обработака строки {y+1}")
|
||||||
|
for x in range(len(karta)):
|
||||||
|
if isinstance(karta[x][y],int):
|
||||||
|
print("digit",karta[x][y])
|
||||||
|
adres:int = (len(karta) - 1 )* len(karta[0]) - counter
|
||||||
|
print(f"new_karta[{adres}]")
|
||||||
|
print("slise - 1",str(karta[x][y])[-1:])
|
||||||
|
print("slise - 2",str(karta[x][y])[-2:-1])
|
||||||
|
print("slise - 3",str(karta[x][y])[-3:-2])
|
||||||
|
print("slise - 4",str(karta[x][y])[-4:-3])
|
||||||
|
new_karta[adres][0] = str(karta[x][y])[-1:]
|
||||||
|
new_karta[adres][1] = str(karta[x][y])[-2:-1]
|
||||||
|
new_karta[adres][2] = str(karta[x][y])[-3:-2]
|
||||||
|
new_karta[adres][3] = str(karta[x][y])[-4:-3]
|
||||||
|
counter -= 1
|
||||||
|
# print(new_karta)
|
||||||
|
else:
|
||||||
|
pass
|
||||||
|
pprint(karta)
|
||||||
|
# move = karta[x][y]
|
||||||
|
# print(stroka)
|
||||||
|
# print("Действие",move)
|
||||||
|
# if move == "+":
|
||||||
|
# result: int= sum(stroka)
|
||||||
|
# print("Результат",result)
|
||||||
|
# elif move == "*":
|
||||||
|
# result: int = reduce((lambda x, y: x * y), stroka)
|
||||||
|
# print("Результат",result)
|
||||||
|
# final_result += result
|
||||||
|
# if y == len(karta[0])-1:
|
||||||
|
# print("="*10)
|
||||||
|
# print("Сумма всех строк",final_result)
|
||||||
|
# stroka: list[int]= []
|
||||||
Reference in New Issue
Block a user