首页 > 一道python练习题的debug,求各位大侠帮忙,问题出在倒数第二行

一道python练习题的debug,求各位大侠帮忙,问题出在倒数第二行

这是codecademy上的一个练习,一切进展顺利,直到这一部分的最后一步:



from random import randint

board = []

for x in range(0, 5):
    board.append(["O"] * 5)

def print_board(board):
    for row in board:
        print " ".join(row)

print_board(board)

def random_row(board):
    return randint(0, len(board) - 1)

def random_col(board):
    return randint(0, len(board[0]) - 1)

ship_row = random_row(board)
ship_col = random_col(board)
guess_row = int(raw_input("Guess Row:"))
guess_col=int(raw_input("Guess Col:"))

print ship_row
print ship_col


if guess_row == ship_row and guess_col == ship_col:
    print "Congratulations! You sank my battleship!" 
else:
    print "You missed my battleship!"
    board[guess_row][guess_col] = "x" 
print_board(board)

倒数第二行,其实就是如果猜错了,就把这个错误的位置的O换成X。
我这个说有问题。分别减一,也不行。 求帮忙!


debug结果出来了:倒数第二行的x是小写。codecademy非要要求大写!就这么个小区别!哎。。。。。。


已帮你把代码编辑了一下, 运行之后没有问题呀?

你是想说 它标的位置不对? 不是第三行, 第一列? 而是第四行第二列?

如果是这样的话,你可能还没明白 数组的下标是从 0 开始的, 如果你要标到你所要的位置上, 可能要在原来的数字上 减 1.

还有在标 X 的时候 判断一下输入的数字 是不是超过 你的数组的大小了.


下面为减1后的效果:

再次提醒一下, 在设置 X 之前, 先检测 输入的数字是否超过board的范围了, 你这里的是5,
你需要判断 guess_rowguess_col 的值是否在 1到5之间(含1和5).
只有在这个范围内的数字才是有效的.

【热门文章】
【热门文章】