Я довольно новичок в python, и я борется с кодированием программы, которая возьмет строку в файле в качестве входных данных, чтобы проверить Lo Shu Magic Square. То, что мне нужно сделать, - это прочитать одну строку в файле за раз и с каждой строкой , например, и преобразовать ее в массив 2d, такой как [[1,2,3] , [4,5,6], [7,8,9]] Первые три числа соответствуют значениям в первой строке магического квадрата, следующие три значения соответствуют второй строке, а последние три значения соответствуют последней строке.Как превратить строку в файл в массив 2d
До сих пор я пытался
def main():
data = []
for line in open('Magic Square Input.txt'):
items = line.split(" ")
temp = 0
setOfThree = []
for item in items:
if(len(item) > 1):
item = item[0:1]
if(item != " "):
setOfThree.append(item)
temp += 1
if(temp == 3):
test = []
test = setOfThree[:]
test = [int(x) for x in test]
data.append(test)
Но это только дает мне
[[4, 3, 8]]
[[4, 3, 8], [8, 3, 4]]
[[4, 3, 8], [8, 3, 4], [6, 1, 8]]
[[4, 3, 8], [8, 3, 4], [6, 1, 8], [6, 9, 8]]
[[4, 3, 8], [8, 3, 4], [6, 1, 8], [6, 9, 8], [6, 1, 8]]
[[4, 3, 8], [8, 3, 4], [6, 1, 8], [6, 9, 8], [6, 1, 8], [6, 1, 3]]
[[4, 3, 8], [8, 3, 4], [6, 1, 8], [6, 9, 8], [6, 1, 8], [6, 1, 3], [5, 5, 5]]
Содержимое текстового файла
4 3 8 9 5 1 2 7 6
8 3 4 1 5 9 6 7 2
6 1 8 7 5 3 2 9 4
6 9 8 7 5 3 2 1 4
6 1 8 7 5 3 2 1 4
6 1 3 2 9 4 8 7 5
5 5 5 5 5 5 5 5 5
Так что я чувствую, как им на правая дорожка, но только добавляет первые три элемента каждой строки к данным, и я не могу понять, почему
Что вы пытаетесь, и с чем именно вы боретесь? Редактируя свой вопрос, чтобы мы могли видеть ваш код до сих пор и детализируя, что происходит, значительно увеличит ваши шансы получить хороший ответ. – miradulo
Программа должна быть в состоянии взять этот 2d-массив, проверить его как действительный магический квадрат или нет, а затем напечатать допустимый или недействительный для каждой строки, если это магический квадрат или нет. – TheBudderBomb
Это не касается моего вопроса - I спросил, что вы пробовали, и что происходит не так. Stack Overflow - это не программа для написания кода, и вы не получите всю свою программу для вас. – miradulo