2013-01-06 126 views
0

我刚刚在Python中编写了一个简单的战舰游戏。在终端中,它运行完美,但是当我尝试在线运行它作为cgi-bin脚本时,存在问题。 我的代码是:Python脚本中脚本标题的提前结束

#!/usr/bin/python 

print "Content-type: text/html\n\n" 
print "<html>" 

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 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 = raw_input("Guess Row:") 
guess_col = 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!<br/>" 
else: 
if board[guess_row][guess_col] == "X": 
print "You guessed that one already.<br/>" 
if not (0 <= guess_row < len(board)) or not (0 <= guess_col < len(board)): 
print "Oops, that’s not even in the ocean.<br/>" 
else: 
print "You missed my battleship!<br/>" 
board[guess_row][guess_col] == "X" 
print_board(board) 

print "</html>" 

我应该指出,其他简单的hello世界脚本的网页好吗运行。 错误日志根据这个返回的线路:

[Sun Jan 06 20:34:26 2013] [error] [client xxx] File " 
[Sun Jan 06 20:34:26 2013] [error] [client xxx] /usr/lib/cgi-bin/game.py 
[Sun Jan 06 20:34:26 2013] [error] [client xxx] ", line 
[Sun Jan 06 20:34:26 2013] [error] [client xxx] 34 
[Sun Jan 06 20:34:26 2013] [error] [client xxx] 
[Sun Jan 06 20:34:26 2013] [error] [client xxx] 
[Sun Jan 06 20:34:26 2013] [error] [client xxx] print "Congratulations! You sank my battleship!<br/>" 
[Sun Jan 06 20:34:26 2013] [error] [client xxx] 
[Sun Jan 06 20:34:26 2013] [error] [client xxx] 
[Sun Jan 06 20:34:26 2013] [error] [client xxx] 
[Sun Jan 06 20:34:26 2013] [error] [client xxx] 
[Sun Jan 06 20:34:26 2013] [error] [client xxx] 
[Sun Jan 06 20:34:26 2013] [error] [client xxx]^
[Sun Jan 06 20:34:26 2013] [error] [client xxx] IndentationError 
[Sun Jan 06 20:34:26 2013] [error] [client xxx] : 
[Sun Jan 06 20:34:26 2013] [error] [client xxx] expected an indented block 
[Sun Jan 06 20:34:26 2013] [error] [client xxx] 
[Sun Jan 06 20:34:26 2013] [error] [client xxx] Premature end of script headers: game.py 

你能帮助我在这里?

在此先感谢!

PS:我在蟒蛇是新:d

+0

您发布的代码在终端中运行得并不顺利 - 您确定修复缩进后无法正常工作吗? –

+0

是的,我敢肯定,现在它不能在终端工作:( –

+1

你需要比“它不工作”更明确...... –

回答

0

试试这个:

#!/usr/bin/python 

print "Content-type: text/html\n\n" 
print "<html>" 

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 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 = raw_input("Guess Row:") 
guess_col = 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!<br/>" 
elif board[guess_row][guess_col] == "X": 
    print "You guessed that one already.<br/>" 
if not (0 <= guess_row < len(board)) or not (0 <= guess_col < len(board)): 
    print "Oops, that’s not even in the ocean.<br/>" 
else: 
    print "You missed my battleship!<br/>" 
board[guess_row][guess_col] == "X" 
print_board(board) 

print "</html>" 
+0

同样的事情.. –

0

帖子是有点老了,但如果别人期待:

尝试运行这个(从你的浏览器),看看它是否工作:

#!/usr/bin/python 
import cgi 
cgi.test() 

如果这不会给出错误,然后尝试删除文件,金钥匙g一个新的和复制/粘贴代码回来。

我刚刚解决了我的问题做到这一点。

相关问题