簡體   English   中英

我該怎么做才能使此代碼起作用?

[英]What can I do to make this code work?

我是一名計算機科學專業的學生,​​在我們的大多數課程中,我們都使用Java,而現在我們正在學習必須使用python的地方,所以我希望您能告訴我為什么使用grid[i][j].append('Q')永遠不會生效,而我可以做些什么才能使其生效。 此任務的目的是生成八個Queens拼圖實例,然后最終返回解決方案。 請幫助我,這是我到目前為止的內容:

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打印在單獨的列中。

所以我稍微調整了一下代碼以使其打印到列中,但問題是每次都在同一列中打印,我使用random的原因是試圖每次都獲得一個單獨的列。 這是至少讓我在一行中打印的代碼:

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'],
     ['-', '-', '-', '-', '-', '-', '-', '-'],
     ['-', '-', '-', '-', '-', '-', '-', '-'],
     ['-', '-', '-', '-', '-', '-', '-', '-'],
     ['-', '-', '-', '-', '-', '-', '-', '-']]

在您的代碼中, 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';

您可以使用該程序。

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM