Форум сайта python.su
Доброго времени суток.
Это мой первый проект на питоне, столкнулся с проблемой. При записи данных а матрицу и контрольном считывании из нее, записанные и считываемые данные не совпадают. Прикрепленный файл- не проект целиком, а пример, иллюстрирующий проблему. Очевидно, есть какая то тонкость, которую я пока не понимаю. Может кто нить сталкивался с подобным и знает решение проблемы?
Версия питона 3.13.2
Отредактировано DelayLama (Март 23, 2025 12:32:24)
Прикреплённый файлы: matrix_001.py (1,4 KБ)
Офлайн
from dataclasses import dataclass,field
@dataclass
class TestData: #пользовательский тип данных
feld_00: str=""
feld_01: int=0
data=TestData() # создание переменной пользовательского типа
nof_zeilen: int =4 #число строк
nof_spalten:int =3 #число столбцов
A=[[TestData() for _ in range(nof_spalten)] for _ in range(nof_zeilen)] # создание матрицы
# заполнение матрицы тестовыми данными
for i in range(0,nof_zeilen):
for j in range(0,nof_spalten):
data = A[i][j]
# запись данных в матрицу через переменную соответствующего типа
data.feld_00="Zeile:"+ str(i)+" Spalte:"+str(j) # Генерация и запись тестовых данных
#A[i][j]=data
print("Запись:", data.feld_00) # контрольный вывод записываемых данных
# контрольное считывание данных
for i in range(0,nof_zeilen):
for j in range(0,nof_spalten):
data=A[i][j]
print("Lesen:", data.feld_00) # Записанные ранее данные не соответствуют считанным!!
[guest@localhost py]$ python matrix_001.py
Запись: Zeile:0 Spalte:0
Запись: Zeile:0 Spalte:1
Запись: Zeile:0 Spalte:2
Запись: Zeile:1 Spalte:0
Запись: Zeile:1 Spalte:1
Запись: Zeile:1 Spalte:2
Запись: Zeile:2 Spalte:0
Запись: Zeile:2 Spalte:1
Запись: Zeile:2 Spalte:2
Запись: Zeile:3 Spalte:0
Запись: Zeile:3 Spalte:1
Запись: Zeile:3 Spalte:2
Lesen: Zeile:0 Spalte:0
Lesen: Zeile:0 Spalte:1
Lesen: Zeile:0 Spalte:2
Lesen: Zeile:1 Spalte:0
Lesen: Zeile:1 Spalte:1
Lesen: Zeile:1 Spalte:2
Lesen: Zeile:2 Spalte:0
Lesen: Zeile:2 Spalte:1
Lesen: Zeile:2 Spalte:2
Lesen: Zeile:3 Spalte:0
Lesen: Zeile:3 Spalte:1
Lesen: Zeile:3 Spalte:2
[guest@localhost py]$
Офлайн