我正在研究代码学院战舰代码,我需要找到一种方法将其转换为python 3.2它在2.7中工作得很好,但在3.2中不起作用 这是我到目前为止所做的:
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_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)
guess_row = input("Guess Row:")
guess_col = 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:
if guess_row < 0 or guess_row >= len(board) or guess_col < 0 or guess_col >= len(board):
print ("Oops, that’s not even in the ocean.")
else:
print ("You missed my battleship!")
guess_row = ("X")
guess_col = ("X")
print_board(board)
if board[guess_row][guess_col] == ("X"):
print ("You guessed that one already.")
就像我说的那样,它适用于2.7但不适用于3.2 在3.2中,我收到打印ship_row的语法错误 有什么想法吗?
答案 0 :(得分:3)
Print语句被替换为3.x
中的print()函数Old: print "The answer is", 2*2
New: print("The answer is", 2*2)
Old: print x, # Trailing comma suppresses newline
New: print(x, end=" ") # Appends a space instead of a newline
Old: print # Prints a newline
New: print() # You must call the function!
Old: print >>sys.stderr, "fatal error"
New: print("fatal error", file=sys.stderr)
Old: print (x, y) # prints repr((x, y))
New: print((x, y)) # Not the same as print(x, y)!
答案 1 :(得分:0)