【问题标题】:python - battleship game - guidance needed for errors [duplicate]python - 战舰游戏 - 错误所需的指导[重复]
【发布时间】:2016-08-10 06:52:33
【问题描述】:

这是我的战舰游戏代码,我不断收到错误消息 "Type error: unorderable types: str() < int()"

这条消息出现在行

if (guess_row < 0 or guess_row > 4) or (guess_col < 0 or guess_col > 4):

完整代码如下:

import random

board = []

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

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

print ("Let's play Battleship!")
print_board(board)

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

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

ship_row = random_row(board)
ship_col = random_col(board)
print (ship_row)
print (ship_col)

for turn in range(4):
    guess_row = input("Guess Row:")
    guess_col = input("Guess Col:")

    if guess_row == ship_row and guess_col == ship_col:
      print ("Congratulations! You sunk my battleship!")
      break
    else:
        if turn == 3:
            board[guess_row][guess_col] = "X"
            print_board(board)
            print ("Game Over")
            print ("My ship was here: [" + str(ship_row) + "][" + str(ship_col) + "]")
        else:
            if (guess_row < 0 or guess_row > 4) or (guess_col < 0 or guess_col > 4):
                print ("Oops, that's not even in the ocean.")
            elif(board[guess_row][guess_col] == "X"):
                print ("You guessed that one already.")
            else:
                print ("You missed my battleship!")
                board[guess_row][guess_col] = "X"
            print (turn + 1)
            print_board(board)

【问题讨论】:

  • 请修正您的格式,谢谢!
  • 看到错误信息,你的guess_row和guess_col有可能是字符串吗?然后把它们变成整数就可以了: if (int(guess_row) 4) or (int(guess_col) 4):
  • 当您 inputguess_rowguess_col 的值是字符串时。将它们转换为整数。

标签: python


【解决方案1】:

input 将输入读取为字符串。您必须将其转换为 int:

guess_row = int(input("Guess Row:"))
guess_col = int(input("Guess Col:"))

【讨论】:

  • 我爱你,你救了我的凯文培根
【解决方案2】:

此错误表示您的变量 guess_rowguess_col 是字符串而不是整数,您正在尝试将它们与整数进行比较。

进行比较时,只需使用int(guess_row)int(guess_col) 将它们转换为整数即可。

【讨论】:

    猜你喜欢
    • 2018-01-05
    • 2014-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多