繁体   English   中英

将Code Academy Battleship Code转换为python 3.2

[英]Convert Code Academy Battleship Code to python 3.2

我正在研究代码学院战舰代码,我需要找到一种方法将其转换为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 In 3.2我得到一个语法错误打印ship_row任何想法?

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)!

是文档的摘录。 http://docs.python.org/3.0/whatsnew/3.0.html

在python 3中, print语句已被print()函数替换。

print(ship_row)

print ship_row

请参阅: Python 3.0中的新功能

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM