用于检查Magic Square python

用于检查Magic Square python,python,Python,我正在尝试使用python创建一个程序,该程序将根据文本文件确定正方形是否为幻方 def getRowsAndColumns(user2DimensionalList): numberOfRows=len(user2DimensionalList) numberOfColumns=len(user2DimensionalList[0]) 返回numberOfRows,numberOfColumns def getFirstRowSum(user2DimensionalList,numberOf

我正在尝试使用python创建一个程序,该程序将根据文本文件确定正方形是否为幻方

def getRowsAndColumns(user2DimensionalList):
numberOfRows=len(user2DimensionalList)
numberOfColumns=len(user2DimensionalList[0])
返回numberOfRows,numberOfColumns
def getFirstRowSum(user2DimensionalList,numberOfColumns):
firstRowSum=0
对于范围(1)中的currentRowIndex:
对于范围内的currentColumnIndex(numberOfColumns):
firstRowSum=firstRowSum+user2DimensionalList[currentRowIndex][currentColumnIndex]
返回第一行和
def具有相等行和(user2DimensionalList、firstRowSum、numberOfRows、numberOfColumns):
行和=0
对于范围内的currentRowIndex(numberOfRows):
对于范围内的currentColumnIndex(numberOfColumns):
rowSum=rowSum+user2DimensionalList[currentRowIndex][currentColumnIndex]
如果行和!=第一行和:
返回错误
行和=0
返回真值
def hasEqualColumnSums(user2DimensionalList、firstRowSum、numberOfRows、numberOfColumns):
columnSum=0
对于范围内的currentColumnIndex(numberOfColumns):
对于范围内的currentRowIndex(numberOfRows):
columnSum=columnSum+User2DimensionAllList[currentRowIndex][currentColumnIndex]
如果列和!=第一行和:
返回错误
columnSum=0
返回真值
def具有相等的行和列总和(user2DimensionalList、firstRowSum、numberOfRows、numberOfColumns):
如果hasEqualRowSums(user2DimensionalList、firstRowSum、numberOfRows、numberOfColumns)和hasEqualColumnSums(user2DimensionalList、firstRowSum、numberOfRows、numberOfColumns):
返回真值
其他:
返回错误
def hasFromLeftEqualDiagonalSum(user2DimensionalList,LengthoFanyRowWorColumn,firstRowSum):
FromLeft对角线和=0
对于范围内的currentDiagonalNumberIndex(长度列):
fromLeftDiagonalSum=fromLeftDiagonalSum+user2DimensionalList[currentDiagonalNumberIndex][currentDiagonalNumberIndex]
如果来自左对角和!=第一行和:
返回错误
其他:
返回真值
def hasFromRightEqualDiagonalSum(user2DimensionalList,LengthoFanyRowWorColumn,firstRowSum):
fromRightDiagonalSum=0
currentDiagonalNumberColumnIndex=lengthOfAnyRowOrColumn-1
对于范围内的currentDiagonalNumberRowIndex(lengthOfAnyRowOrColumn):
fromRightDiagonalSum=fromRightDiagonalSum+user2DimensionalList[CurrentDiagonalNumberRorWindex][currentDiagonalNumberColumnIndex]
currentDiagonalNumberColumnIndex=currentDiagonalNumberColumnIndex-1
如果来自右对角和!=第一行和:
返回错误
其他:
返回真值
def具有相等的对角线和(user2DimensionalList、LengthoFanyRowWorColumn、firstRowSum):
如果hasFromLeftEqualDiagonalSum(用户2DimensionAllist,LengthoFanyRowWorColumn,firstRowSum)和hasFromRightEqualDiagonalSum(用户2DimensionAllist,LengthoFanRowWorColumn,firstRowSum):
返回真值
其他:
返回错误
def isLoShuMagicSquare(用户2维度列表、第一行和、numberOfRows、numberOfColumns、LengthoFanRowRowColumn):
如果具有相等的行和列总和(user2DimensionalList、firstRowSum、numberOfRows、numberOfColumns)和相等的对角线总和(user2DimensionalList、LengthoFanRowRowColumn、firstRowSum):
返回真值
其他:
返回错误
def main():
user2DimensionalList=打开(“input.txt”、“r”)
user2DimensionalList=user2DimensionalList.read()
numberOfRows,numberOfColumns=getRowsAndColumns(user2DimensionalList)
lengthOfAnyRowOrColumn=行数
firstRowSum=getFirstRowSum(user2DimensionalList,numberOfColumns)
如果为isLoShuMagicSquare(用户2DimensionAllist、firstRowSum、numberOfRows、numberOfColumns、LengthoFanRowColumn):
打印(“有效”)
其他:
打印(“无效”)
main()

非常简单,您可以读取一组字符数据,而不必转换为整数。然后尝试对数据执行算术运算,从整数值0开始

在某些时候,您必须转换您的值。目前,您有一个126x1“2Dim列表”。尝试对行求和时,首先尝试添加
0+“4”


我强烈建议您恢复到增量编程。您发布了100行代码,但没有测试为程序其余部分提供信息的输入。

请将整个错误消息与回溯一起发布。我添加了您需要的内容