我该怎么做才能使这段代码有效?

时间:2015-06-19 05:04:34

标签: python

我是一名计算机科学专业的学生,​​对于我们的大多数课程,我们使用Java,现在我们需要使用python,所以我希望你能告诉我为什么grid[i][j].append('Q')从不生效以及我能做些什么才能使它发挥作用。这项任务背后的目的是生成八个皇后谜题实例,然后最终返回解决方案。请帮助我,这是我到目前为止所做的:

import pprint
import random
grid = [['-']*8 for n in range(8)]
insertPoint = random.randrange(1,8)
for i in grid:
    for j in grid:
        if i==insertPoint:
            grid[i][j].append('Q')
pprint.pprint(grid)

修改:我希望每次都在单独的列中打印Q.

所以我稍微调整了代码以将其打印到列中,但问题是它每次都在同一列中打印,我使用随机的原因是每次尝试单独进行。这是至少让我在一栏中打印的代码:

import pprint
import random
grid = [['-']*8 for n in range(8)]
insertPoint = random.randrange(1,8)
for i in range(8):
    for j in range(8):
        if j==insertPoint:
            grid[i][j]=('Q')


pprint.pprint(grid)     

我假设我必须在两个循环之间的某处增加j,并且我已经尝试将它放在不同的地方,但它不起作用。

我认为我得到它,只是将insertpoint变量移动到for循环

由于下面的Dave代码,我真的很接近我想要的东西,但我更喜欢输出不要让'Q'全部在同一行。你可以帮助我吗,我尝试了一些不同的东西,但只是为了远离它

以下是代码和输出:

import pprint
import random
grid = [['-']*8 for n in range(8)]
insertPoint = random.randrange(1,8)
for i in range(0,8):
    for j in range(0,8):
        if i==insertPoint:
            grid[i][j] = 'Q'
pprint.pprint(grid)

    [['-', '-', '-', '-', '-', '-', '-', '-'],
     ['-', '-', '-', '-', '-', '-', '-', '-'],
     ['-', '-', '-', '-', '-', '-', '-', '-'],
     ['Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q'],
     ['-', '-', '-', '-', '-', '-', '-', '-'],
     ['-', '-', '-', '-', '-', '-', '-', '-'],
     ['-', '-', '-', '-', '-', '-', '-', '-'],
     ['-', '-', '-', '-', '-', '-', '-', '-']]

2 个答案:

答案 0 :(得分:2)

在您的代码中,ij不会迭代整数,因此它们不能用于索引数组。

你可以尝试:

grid = [['-']*8 for n in range(8)]
insertPoint = random.randrange(1,8)
for i in range(8):
    for j in range(8):
        if i==insertPoint:
            grid[i][j] = 'Q';

答案 1 :(得分:0)

你可以使用这个程序。

uasort(
    $i,
   function($value1, $value2) {
       return count($value2['quotes']) - count($value1['quotes']);
    }
);