unorderable类型:int()>范围()

时间:2016-04-16 16:57:57

标签: python python-3.x

我有一个用Python创建战列舰的任务,当用户从5x5网格输入坐标时,我想要弹出一个声明它超出范围的弹出窗口。我的问题是我收到一条错误消息,指出“无法解决的类型:int()> range()”,我是Python的新手,所以我不知道这意味着什么。

if guess_row == ship_row and guess_col == ship_col:
    print ("Congratulations, you sank my battleship!")
else:
    if guess_row > range(5) or guess_col > range(5):
        print ("Out of Range!")
    else:
        print ("You missed my battleship")
        grid[guess_row][guess_col]="X"
        print_grid(grid)

1 个答案:

答案 0 :(得分:1)

range(5)是一个范围(实际上它是列表[0, 1, 2, 3, 4]),而不是数字。一个数字怎么能大于一个范围?它不能,因此错误。

这些将起作用并且都是等效的:

  • guess_row not in range(5)
  • guess_row not in range(0, 5)
  • not (0 <= guess_row < 5)
  • not (0 <= guess_row <= 4)
  • guess_row < 0 or guess_row >= 5
  • guess_row < 0 or guess_row > 4