python脚本中的脚本头过早结束

python脚本中的脚本头过早结束,python,cgi,cgi-bin,Python,Cgi,Cgi Bin,我刚刚用Python编写了一个简单的战舰游戏。在终端中,它运行得非常完美,但当我尝试将其作为CGIBIN脚本在线运行时,出现了一些问题。 我的代码是: #!/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

我刚刚用Python编写了一个简单的战舰游戏。在终端中,它运行得非常完美,但当我尝试将其作为CGIBIN脚本在线运行时,出现了一些问题。 我的代码是:

#!/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>"
#/usr/bin/python
打印“内容类型:text/html\n\n”
打印“”
从随机导入randint
董事会=[]
对于范围(0,5)内的x:
董事会追加([“O”]*5)
def打印板(板):
对于板中的行:
打印“”连接(行)
印刷电路板
def随机_行(板):
返回random.randint(0,len(板)-1)
def随机_柱(板):
返回random.randint(0,len(board[0])-1)
船行=随机船行(板)
船列=随机列(船列)
猜测行=原始输入(“猜测行:”)
猜测列=原始输入(“猜测列:”)
打印发货行
打印船型
如果(guess_row==ship_row和guess_col==ship_col):
打印“恭喜!你击沉了我的战舰!”
其他:
如果电路板[guess\u row][guess\u col]=“X”:
打印“你已经猜到了。”
如果不是(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>"
!/usr/bin/python
打印“内容类型:text/html\n\n”
打印“”
从随机导入randint
董事会=[]
对于范围(0,5)内的x:
董事会追加([“O”]*5)
def打印板(板):
对于板中的行:
打印“”连接(行)
印刷电路板
def随机_行(板):
返回random.randint(0,len(板)-1)
def随机_柱(板):
返回random.randint(0,len(board[0])-1)
船行=随机船行(板)
船列=随机列(船列)
猜测行=原始输入(“猜测行:”)
猜测列=原始输入(“猜测列:”)
打印发货行
打印船型
如果(guess_row==ship_row和guess_col==ship_col):
打印“恭喜!你击沉了我的战舰!”
elif板[guess\u row][guess\u col]=“X”:
打印“你已经猜到了。”

如果不是(0Post有点旧,但如果其他人正在查看:

请尝试(从浏览器中)运行此命令,以查看其是否有效:

#!/usr/bin/python
import cgi
cgi.test()
如果没有出现错误,则尝试删除该文件,创建一个新文件并将代码复制/粘贴回


我这样做就解决了我的问题。

您发布的代码在终端中运行得不太好-您确定在修复缩进后它不工作吗?是的,我确定,现在它在终端中也不工作了:(您需要比“它不工作”更明确……当我在没有打印“”和打印“”的情况下运行代码时标签,它运行。使用这些标签,它也不会在终端中运行。此外,当我尝试联机运行它时,它会返回500个内部错误。
#!/usr/bin/python
import cgi
cgi.test()