Python 通过派林测试
当我对代码执行pylint检查时,它会说我的返回语句有问题。这是我的代码:Python 通过派林测试,python,Python,当我对代码执行pylint检查时,它会说我的返回语句有问题。这是我的代码: board = [['X', ' ', 'O'], ['X', 'O', ' '], ['X', ' ', ' ']] def winner(board): """noughts and crosses game and checks if a row or column or diagonal is a winner""" row_ = []
board = [['X', ' ', 'O'], ['X', 'O', ' '], ['X', ' ', ' ']]
def winner(board):
"""noughts and crosses game and checks if a row or column or diagonal is a winner"""
row_ = []
for row_number in range(3):
row_.append(board[row_number])
column_ = []
for col_number in range(3):
column_.append(list(board[0][col_number] + board[1][col_number] + board[2][col_number]))
diagonal_0 = []
diagonal_1 = []
for selected_diagonal in range(2):
if selected_diagonal == 0:
diagonal_0.append(list(board[0][0] + board[1][1] + board[2][2]))
diagonal_1.append(list(board[0][2] + board[1][1] + board[2][0]))
total = row_ + column_ + diagonal_0 + diagonal_1
for line in total:
if line[0] == line[1] == line[2]:
if line[0] == 'X':
return 'X'
elif line[0] == 'O':
return 'O'
elif line[0] == ' ':
return None
break
这就是我得到的错误
************* Module source
R: 81, 0: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
***Error***
Sorry, but your code doesn't pass the pylint style checks.
代码的最后一部分是
else:
return line[0]
break
如果删除else并保留返回行[0]
的含义相同
而在返回后,在末尾中断是没有用的#前面几行。。。
总行数:
如果第[0]行==第[1]行==第[2]行:
如果第[0]行=='X':
返回“X”
elif行[0]=“O”:
返回“O”
elif第[0]行、第[1]行和第[2]行!='':
返回行[0]
归还某物
打破
归还某物
这会奏效的。请试一试
中断
中断循环。删除else不会影响任何内容
只需正确缩进返回行[0]
运行代码并测试它
第二个错误也将被删除。尝试删除break语句,然后重试。
break
是死代码,无法到达,派林发现它希望您删除它。哈哈哈,谢谢阿尔宾·保罗!真不敢相信我错过了!!但是对于我遇到的第二个错误,你有什么建议吗?谢谢!如果可能的话,您对第二个pylint错误有什么建议吗?写一个返回行[0]的条件,不需要返回任何行```elif第[0]行、第[1]行和第[2]行=='':返回none如果我使用我在问题中输入的新代码,我仍然会得到第二个错误。我是否遗漏了什么?再次查看更新的答案。在其他情况下返回适当的内容。这取决于您在何处使用该函数