如何在python3打印功能的for循环结束时打印新行?

时间:2015-10-18 09:12:20

标签: python python-3.x

我正在尝试为给定的输入n打印每个案例的N-queen。为此,我必须明确地为j = n-1写条件,以便在每个'n'列之后得到一个新行。

for i in range(n):
    for j in range(n):
        if j!=n-1:
            if j==a[i]-1:
                print('Q',end=' ')
            else:
                print('-',end=' ')
        else:
            if j==a[i]-1:
                print('Q')
            else:
                print('-')  

输出:

#One case in n=5

- - Q - -
Q - - - -
- - - Q -
- Q - - -
- - - - Q

如果没有明确使用条件,我会在一行中得到输出,这很明显。

- - Q - - Q - - - - - - - Q - - Q - - - - - - - Q

有没有办法在end =''的位置隐式写入print函数中的条件?

for i in range(n):
    for j in range(n):
        if j==a[i]-1:
            print('Q',(end=' ' if j!=n-1)) #this is not correct
        else:
            print('-',if j!=n-1: end=' ' ) #also not correct

我正在使用IDLE for python 3.4.2。

1 个答案:

答案 0 :(得分:2)

只需在外循环结束时打印换行符。

for i in range(n):
    for j in range(n):
         ...
    print()