嗨,我无法在我的 sript 中测试非整数。我正在尝试编写一个函数,如果数独有效则返回 True,否则返回 False。数独的 2 条规则: 1) 正方形的每一列都包含从 1 到 n 的整数中的每一个恰好一次。2) 正方形的每一行包含从 1 到 n 的每个整数恰好一次。我遇到的问题是函数“incorrect4”和“incorrect5”。Incorrect4 显示 True,即使它不是整数/整数,并且不正确 5 显示错误消息:+: 'int' 和 'str' 不支持的操作数类型。我尝试了多种测试整数的方法,但不正确的“1.5”的值仍然显示为 True。此外,我寻找了一个解决方案不受支持的操作数类型错误,但无法修复它。
correct = [[1,2,3],
[2,3,1],
[3,1,2]]
incorrect4 = [['a','b','c'],
['b','c','a'],
['c','a','b']]
incorrect5 = [ [1, 1.5],
[1.5, 1]]
def check_sudoku(square):
a = 0
result = [sum(l) for l in square]
sum_list = []
all(type(item)==int for item in square)
return True
for col in range(len(square[0])):
sum_list.append(sum(row[col] for row in square))
if sum_list == result: return True
return False
for row in range(len(square)):
if sum(square[a]) == sum(square[a+1]):
a += 1
return True
return False
print check_sudoku(correct)
print check_sudoku(incorrect4)
print check_sudoku(incorrect5)